Hi there,
during the last days I worked on fixing the Shark compiler for Hotspot
to get it to build and run again, with the latest Hotspot code and LLVM.
Here are some details:
- A lot of changes are just to make it build and the compiler happy. For
example, I had to remove a lot of 'const' qualifiers because of API
changes in LLVM.
- Most other changes have to do with the split of the oop and metadata
class hierarchies in Hotspot.
- Then there have been a few changes caused by LLVM changes and
improvements, most notably the LLVM intrinsics for atomic operations
(memory barrier and cmpxchg) have been removed and now have a
representation directly in LLVM's IR. This makes our code a little
nicer.
I tested this by running a number of applications, most notably Eclipse
(which is notoriously difficult on VMs), Java2Demo, SwingSet2 and a
bunch of other stuff.
I would like to get this integrated into OpenJDK now if possible. You
can find the full webrev here:
http://cr.openjdk.java.net/~rkennke/shark/webrev.00/
There are also a very minor change required in JDK:
http://cr.openjdk.java.net/~rkennke/shark/webrev-jdk-00/
In order to build it, apply the patches on hsx/hotspot-comp 's hotspot
and jdk repositories respectivly. Find my build script here:
http://cr.openjdk.java.net/~rkennke/shark/Build8-zero-shark
(Review and adjust variables to your settings, most notably you will
need to change LLVM_CONFIG to point to your LLVM 3.1 installation.)
Please let me know if there are any issues or how we can get this
integrated into Hotspot.
Best regards,
Roman