Integrated: 6312651: Compiler should only use verified interface types for optimization

Roland Westrelin roland at openjdk.org
Mon Nov 21 08:51:29 UTC 2022


On Fri, 28 Oct 2022 12:29:15 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).

This pull request has now been integrated.

Changeset: 45d1807a
Author:    Roland Westrelin <roland at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/45d1807ad3248805f32b1b94b02ac368e0d6bcc0
Stats:     1592 lines in 20 files changed: 750 ins; 491 del; 351 mod

6312651: Compiler should only use verified interface types for optimization

Reviewed-by: vlivanov, kvn

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

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


More information about the hotspot-compiler-dev mailing list