RFR: 6312651: Compiler should only use verified interface types for optimization [v4]

Vladimir Ivanov vlivanov at openjdk.org
Fri Nov 11 01:07:42 UTC 2022


On Thu, 10 Nov 2022 10:01:48 GMT, Roland Westrelin <roland at openjdk.org> wrote:

>> This change is mostly the same I sent for review 3 years ago but was
>> never integrated:
>> 
>> https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2019-May/033803.html
>> 
>> The main difference is that, in the meantime, I submitted a couple of
>> refactoring changes extracted from the 2019 patch:
>> 
>> 8266550: C2: mirror TypeOopPtr/TypeInstPtr/TypeAryPtr with TypeKlassPtr/TypeInstKlassPtr/TypeAryKlassPtr
>> 8275201: C2: hide klass() accessor from TypeOopPtr and typeKlassPtr subclasses
>> 
>> As a result, the current patch is much smaller (but still not small).
>> 
>> The implementation is otherwise largely the same as in the 2019
>> patch. I tried to remove some of the code duplication between the
>> TypeOopPtr and TypeKlassPtr hierarchies by having some of the logic
>> shared in template methods. In the 2019 patch, interfaces were trusted
>> when types were constructed and I had added code to drop interfaces
>> from a type where they couldn't be trusted. This new patch proceeds
>> the other way around: interfaces are not trusted when a type is
>> constructed and code that uses the type must explicitly request that
>> they are included (this was suggested as an improvement by Vladimir
>> Ivanov I think).
>
> Roland Westrelin has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 10 additional commits since the last revision:
> 
>  - review
>  - Merge branch 'master' into JDK-6312651
>  - review
>  - review
>  - review
>  - review
>  - review
>  - build fix
>  - whitespaces
>  - interfaces

Great work, Roland! I'm approving the PR. (hs-tier1 - hs-tier2 sanity testing passed with latest version.)

Feel free to handle `ciArrayKlass::interfaces()` as you find most appropriate.

-------------

Marked as reviewed by vlivanov (Reviewer).

PR: https://git.openjdk.org/jdk/pull/10901


More information about the hotspot-compiler-dev mailing list