Request for reviews (XXL): 6961697: move nmethod constants section before instruction section

Christian Thalinger christian.thalinger at oracle.com
Wed Jul 7 09:43:00 PDT 2010


http://cr.openjdk.java.net/~twisti/6961697/webrev.01/

6961697: move nmethod constants section before instruction section
Summary: This is a preparation for 6961690.
Reviewed-by:

To better support PC-relative addressing of nmethod constant table
entries on SPARC, the constants section should be moved before the
instruction section.  This is a preparation for 6961690.

The changes are rather big because of some method renamings that were
necessary since the old naming would have been confusing:

CodeBlob::instruction_* -> CodeBlob::code_*
nmethod::code_*         -> nmethod::insts_*

CodeBlob::code_* methods refer to memory that belongs to the code
section (consts, insts, and stubs that is).  nmethod methods are named
as the corresponding section (consts_*, insts_*, stub_*).

There are a couple of XXX comments in the changes where it isn't clear
if e.g. an instruction_begin() call really means the beginning of the
instructions or actually the beginning of the code section.  Please
examine these changes carefully!

Testing: DaCapo, JPRT

I also did some ad-hoc benchmarking to see if there is a
regression:

intelsdv03, linux-i486, C2:

============================================================================
logs.baseline/
  Benchmark         Samples        Mean     Stdev             Geomean
Weight
  specjbb2005             1     4617.76          
============================================================================
logs.6961697/
  Benchmark         Samples        Mean     Stdev   %Diff    P
Significant
  specjbb2005             1     4636.10              0.40
============================================================================


intelsdv03, linux-amd64, C2, -UseCompressedOops:

============================================================================
logs.baseline/
  Benchmark         Samples        Mean     Stdev             Geomean
Weight
  specjbb2005             1   132830.27          
============================================================================
logs.6961697/
  Benchmark         Samples        Mean     Stdev   %Diff    P
Significant
  specjbb2005             1   135457.54              1.98
============================================================================


terminus, solaris-sparc, C2:

============================================================================
logs.baseline/
  Benchmark         Samples        Mean     Stdev             Geomean
Weight
  specjbb2005             1    42813.38          
============================================================================
logs.6961697/
  Benchmark         Samples        Mean     Stdev   %Diff    P
Significant
  specjbb2005             1    43100.68              0.67
============================================================================


terminus, solaris-sparcv9, C2, -UseCompressedOops:

============================================================================
logs.baseline/
  Benchmark         Samples        Mean     Stdev             Geomean
Weight
  specjbb2005             1    34427.36          
============================================================================
logs.6961697/
  Benchmark         Samples        Mean     Stdev   %Diff    P
Significant
  specjbb2005             1    34359.02             -0.20
============================================================================




More information about the hotspot-compiler-dev mailing list