I am wondering how the JikesRVM baseline compiler is handling the
so-called JSR problem which is about how GC maps inside subroutines are
There are several techniques in the literature on how to handle this:
1. Inline/Copy the subroutine code for each JSR site - I believe the
JikesRVM optimizing compiler chose this.
2. Split the local variables so that each variable can ever contain
either reference-type values or non-reference-type values.
3. At GC time, by looking up the GC map at the return site (where you go
after executing RET from the subroutine), determine where the references
4. other techniques that I am not aware of...
I spent a while looking at the baseline compiler code but couldn't
figure out how it is actually handling this. I assume it does not take
option 1 above from some of the comments in the code.
What does it do?