[11] RFR (S): 8202465: C1: Casts should not be eliminated for interface types
Tobias Hartmann
tobias.hartmann at oracle.com
Thu May 3 07:58:01 UTC 2018
On 03.05.2018 09:55, Vladimir Ivanov wrote:
> No, they are unrelated. 8202399 is about disabling PatchALot for invokespecial interface calls
> (because patching not supported), while 8202465 is about erroneous elimination of CheckCast node for
> interface casts.
Okay, thanks for the clarification!
Best regards,
Tobias
>> On 03.05.2018 08:35, Tobias Hartmann wrote:
>>> Hi Vladimir,
>>>
>>> looks good to me too.
>>>
>>> Best regards,
>>> Tobias
>>>
>>> On 03.05.2018 04:33, Vladimir Ivanov wrote:
>>>> http://cr.openjdk.java.net/~vlivanov/8202465/webrev.00
>>>> https://bugs.openjdk.java.net/browse/JDK-8202465
>>>>
>>>> Interface casts can't be eliminated when there's no exact type known for the object and its
>>>> declared
>>>> type is interface as well. Verifier doesn't enforce interface types, so there are no guarantees at
>>>> runtime that values have interface types as declared in bytecode.
>>>>
>>>> The fix checks that declared type of the object being casted is not an interface before performing
>>>> subtype check.
>>>>
>>>> Also, refactored the test to use jasm instead of jcod.
>>>>
>>>> Testing: failing test, hs-precheckin-comp, hs-tier1, hs-tier2
>>>>
>>>> Thanks!
>>>>
>>>> Best regards,
>>>> Vladimir Ivanov
More information about the hotspot-compiler-dev
mailing list