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

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


Vladimir, please find the answers inlined.

Thanks,
igor

On Nov 25, 2010, at 11:38 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> 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: http://cr.openjdk.java.net/~iveresov/6985015/webrev.02/
>> 
>> 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: http://cr.openjdk.java.net/~iveresov/6985015/webrev.00/
>>> 
>>> Thanks,
>>> igor
>> 


More information about the hotspot-compiler-dev mailing list