Request for review(XL): 6985015: C1 needs to support compressed oops
igor.veresov at oracle.com
Mon Nov 29 17:09:21 PST 2010
Vladimir, I've removed the new br instructions and separated the type
verfication code for coops in arraycopy.
On 11/26/10 9:14 PM, Igor Veresov wrote:
> Vladimir, please find the answers inlined.
> On Nov 25, 2010, at 11:38 AM, Vladimir Kozlov<vladimir.kozlov at oracle.com> wrote:
>> 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.
>> 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/
>>> 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/
More information about the hotspot-compiler-dev