- Loading...
During our development phase, we build a Sumatra JDK using the two-step process outlined in Sumatra JDK build instructions
We wanted to estimate the footprint of including the graal functionality directly into the Sumatra JDK build. That is, to add enough classes to sumatra-dev/jdk and sumatra-dev/hotspot so that we could skip step 2 above but still build a functional sumatra JDK able to offload to hsail. So the necessary classes from graal.jar would be built into rt.jar
Ideally this would include only that part of graal java and graal hotspot that would be necessary for an HSAIL backend. A webrev from before vs. after then would let us see what the hsail/graal additional footprint would be. For a first cut, we wouldn't spend too much time getting down to the absolute minimum footprint.
So far we have some success.
With the above we are able to build the release build and execute HSAIL offloads there. (there is some problem with building the fastdebug build involving libjsig.so).
All changes are in either sumatra-dev/jdk, or in sumatra-dev/hotspot
The changes are the addition of the src files that made up the abbreviated graal.jar. As mentioned earlier this includes the graal AMD64 backend because of the way we do deoptimization thru trampoline code.and the way the hsail backend defers to the host backend for things that it doesn't override. It is possible that some of the files in core graal are not really used by the HSAIL backend of the AMD64 bakckend trampoline code but this fine tuning has not been done yet.
hg diff-stat of sumatra-dev/jdk with added graal files
The changes are the changes that the graal project for their own hotspot fork. At the time of this experiment, graal was still forked off of hs25-b63 so I used that as a starting point for this diff.
hg diff-stat of sumatra-dev/hotspot vanilla hs25-b63