Request for reviews (S): 6953267: assert in EA code with -XX:+StressReflectiveCode
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon May 17 21:16:44 PDT 2010
You are absolutely right. The only difference: bottom_type() is virtual method and type() is simple inline method.
But this advantage of type() disappeared when I added Opcode() (virtual method) check.
I will change the code to use bottom_type().
Thanks,
Vladimir
On 5/17/10 7:04 PM, Tom Rodriguez wrote:
> escape.cpp:
>
> Why isn't this snippet:
>
> + const TypeKlassPtr *kt;
> + if (k->Opcode() == Op_LoadKlass) {
> + kt = k->as_Load()->type()->isa_klassptr();
> + } else {
> + // Also works for DecodeN(LoadNKlass).
> + kt = k->as_Type()->type()->isa_klassptr();
> + }
>
>
> just this?
>
> const TypeKlassPtr* kt = k->bottom_type()->isa_klassptr();
>
> they are and should be equivalent. Otherwise it's ok.
>
> tom
>
> On May 17, 2010, at 5:10 PM, Vladimir Kozlov wrote:
>
>> http://cr.openjdk.java.net/~kvn/6953267/webrev
>>
>> Fixed 6953267: assert in EA code with -XX:+StressReflectiveCode
>>
>> EA code does not handle code generated with StressReflectiveCode
>> when an array klass is used for Allocate node or instance klass
>> for AllocateArray node on never executed path (see method
>> LibraryCallKit::inline_native_clone()).
>>
>> Add missing checks into EA code.
>
More information about the hotspot-compiler-dev
mailing list