RFR: 8266550: C2: mirror TypeOopPtr/TypeInstPtr/TypeAryPtr with TypeKlassPtr/TypeInstKlassPtr/TypeAryKlassPtr [v7]
Roland Westrelin
roland at openjdk.java.net
Tue Jul 27 14:53:10 UTC 2021
> This is some refactoring in another attempt to fix JDK-6312651
> (Compiler should only use verified interface types for
> optimization). Rather than propose the patch from:
>
> https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-May/033803.html
>
> as a single big patch. I've been working on splitting it. The plan is
> to have this and another refactoring patch that include no change to
> the way interfaces are handled as preparation. Then only, in a third
> patch, interface support along the lines of the patch I proposed 2
> years ago would be introduces.
>
> This patch changes the class hierarchy of types that C2 uses and
> introduces TypeInstKlassPtr/TypeAryKlassPtr that mirror
> TypeInstPtr/TypeAryPtr. The motivation for this is that a single:
>
> ciKlass* _klass;
>
> is no longer sufficient to describe a type (a set of interfaces must
> also be carried around). That's not possible with TypeKlassPtr.
>
> The meet methods for TypeInstPtr/TypeInstKlassPtr and
> TypeAryPtr/TypeAryKlassPtr are largely similar. I moved the most
> complicated logic in helper methods:
>
> meet_instptr() and meet_aryptr()
>
> (Thanks to Vladimir I for testing the refactoring patches)
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 12 additional commits since the last revision:
- review
- Merge branch 'master' into JDK-8266550
- review
- Merge branch 'master' into JDK-8266550
- IR framework fix
- dump tweaks
- Merge branch 'master' into JDK-8266550
- Merge branch 'master' into JDK-8266550
- missing casts to NotNull
- Merge branch 'master' into JDK-8266550
- ... and 2 more: https://git.openjdk.java.net/jdk/compare/18e28374...ec31b574
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/3880/files
- new: https://git.openjdk.java.net/jdk/pull/3880/files/04b61e1e..ec31b574
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3880&range=06
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3880&range=05-06
Stats: 31605 lines in 762 files changed: 13853 ins; 14549 del; 3203 mod
Patch: https://git.openjdk.java.net/jdk/pull/3880.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3880/head:pull/3880
PR: https://git.openjdk.java.net/jdk/pull/3880
More information about the hotspot-compiler-dev
mailing list