RFR (XXS): 8024275: During CTW: assert(sig_bt[member_arg_pos] == T_OBJECT) failed: dispatch argument must be an object
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Tue Sep 10 15:11:19 PDT 2013
On 9/11/13 1:48 AM, Christian Thalinger wrote:
>
> On Sep 10, 2013, at 2:41 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
>
>> Chris,
>>
>> Thanks for fixing this!
>>
>> Minor commments:
>>
>> - can you rename (for now) can_be_compiled method to something specific to CTW to disambiguate it?
>
> I can but it's unique because there is no other can_be_compiled in ClassLoader.
Ok. I was thinking mostly about can_be_compiled() vs
CompilationPolicy::can_be_compiled(). But assert in the beginning is
good enough.
>> - why do you place "... Skipping method: ..." message under the guard? I'd prefer to be verbose here.
>
> Because we are already skipping methods for other reasons and it would change the output. Being paranoid here to not break any existing tests.
Sometimes tests should be broken. So we know where to fix them :-)
I haven't found any tests which exercise -XX:+CompileTheWorld, so it
should be safe.
Best regards,
Vladimir Ivanov
>
> -- Chris
>
>>
>> Otherwise, looks good (not a Reviewer).
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> On 9/11/13 1:16 AM, Christian Thalinger wrote:
>>> http://cr.openjdk.java.net/~twisti/8024275/webrev/
>>>
>>> 8024275: During CTW: assert(sig_bt[member_arg_pos] == T_OBJECT) failed: dispatch argument must be an object
>>> Reviewed-by:
>>>
>>> The issue is that we cannot compile MethodHandle::linkTo* when doing a CompileTheWorld since the signatures are not correct.
>>>
>>> The fix is to skip these methods during a CTW.
>>>
>>> src/share/vm/classfile/classLoader.cpp
>>>
>
More information about the hotspot-compiler-dev
mailing list