RFR: 6312651: Compiler should only use verified interface types for optimization [v4]
Roland Westrelin
roland at openjdk.org
Thu Nov 10 10:01:48 UTC 2022
> 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
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/10901/files
- new: https://git.openjdk.org/jdk/pull/10901/files/49d1bf3e..f49a042a
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=10901&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=10901&range=02-03
Stats: 58679 lines in 765 files changed: 18375 ins; 36526 del; 3778 mod
Patch: https://git.openjdk.org/jdk/pull/10901.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/10901/head:pull/10901
PR: https://git.openjdk.org/jdk/pull/10901
More information about the hotspot-compiler-dev
mailing list