JDK-6687578 : Make compressed oops work with c1
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 7
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2008-04-11
  • Updated: 2010-12-14
  • Resolved: 2010-12-14
Related Reports
Duplicate :  
Relates :  
Description
Make compressed oops work with c1.  There's code in c1 that on inspection won't work.  First get c1 to work with 64 bits bug: 6459804.

Also clean up patterns of this to something more succinct because header_size() is suspicious with Compressed oops because a field might be allocated there (but not in this case).

klassOopDesc::header_size() * HeapWordSize + Klass::layout_helper_offset_in_bytes()

This pattern is also seen in opto* as:

sizeof(oopDesc) + Klass::layout_helper_offset_in_bytes()

It would be nice for there to be a version of Klass::*offset_in_bytes that adds in the oopDesc size.  sizeof(oopDesc) is generally unsafe with compressed oops.

These patterns are in the c1 code so cleaning them up somehow would make the code safer.

(I volunteered to sgoldman to take this bug, btw - coleen)