Request for review(XL): 6985015: C1 needs to support compressed oops

Igor Veresov igor.veresov at
Fri Nov 26 21:14:54 PST 2010

Vladimir, please find the answers inlined.


On Nov 25, 2010, at 11:38 AM, Vladimir Kozlov <vladimir.kozlov at> wrote:

> Igor,
> I don't like adding new br instructions which are used only 4 times.
> Could you simple totally separate code for COOP and use corresponding br (icc) instructions?

That was actually Tom's suggestion, or at least how I understood it. I was hoping it was elegant enough, but sure we can do just a separate version of this bunch of klass comparisons for coops and the regular version.

> Also there are no explanation/comments around new move_wide code. Why you need it (append()?) ? I am not C1 expert so it is not clear to me.

move_wide is needed to access references  that is outside he heap (which are typically uncompressed) from LIR. Some fields in the Thread structure are a good example. 

append() is needed to add an operation to a LIR_List (which a list of instructions in a basic block). Any LIR operation will do that.
> Otherwise it is better then before.
> Thanks,
> Vladimir
> On 11/25/10 7:03 AM, Igor Veresov wrote:
>> I've updated the webrev with includeDB changes and also removed unnecessary ifdefs.
>> Webrev:
>> igor
>> On 11/18/10 7:12 PM, Igor Veresov wrote:
>>> This change implements compressed oops for C1 for x64 and sparc.
>>> The changes are mostly on the codegen level, with a few exceptions when
>>> we do access things outside of the heap that are uncompressed from the IR.
>>> Webrev:
>>> Thanks,
>>> igor

More information about the hotspot-compiler-dev mailing list