hotspot-compiler-dev Digest, Vol 145, Issue 95

Roland Westrelin rwestrel at redhat.com
Wed Jul 10 14:25:56 UTC 2019


Hi Alfonso²,

Thanks for sharing your experience. C2 has had some support for
interfaces in the type system for a long time but interfaces are not
handled correctly so C2 can't trust its own type system. As a
consequence, there are several work arounds in C2 so C2 ignores what its
type system reports and doesn't generate incorrect code. Eventhough that
support has been around for a long time, it happened at least a few
times in the past few years, that existing work arounds were not
sufficient and handling of interfaces caused bugs. Some optimizations
also have to be tuned down because the type system is not trusted. For
instance, it happens that c2 IR contains cast node to Object eventhough
there are obviously not needed. The primary motivation for the change in
the way interfaces are handled is to remove work arounds, make sure we
need no new ones, and allow C2 to trust its own type system. So it's a
lot more about stability, maintainability than performance.

Roland.


More information about the hotspot-compiler-dev mailing list