RFR: 8340012: [C2] assert(KlassEncodingMetaspaceMax > pd) failed: change encoding max if new encoding after 8338526

Martin Doerr mdoerr at openjdk.org
Fri Sep 13 15:43:21 UTC 2024


On Fri, 13 Sep 2024 15:15:19 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> After JDK-8338526, the transformation can only be done if the Klass* is in the encoding range (also see JBS issue for more details). I've also enhanced the assertion message.
>
> All you need is an interface class to go through this code.  I wonder why it only failed on AIX?

> > > @coleenp, do you have an assert in your changes which check that only abstract and interface classes are outside encoding space? I concern that due to some bug we would get regular class outside.
> > 
> > 
> > I only check these conditions when allocating the Klass. Maybe it could be added to CompressedKlassPointers::is_in_encoding_range().
> 
> @TheRealMDoerr can you add such assert?

I've added a sanity check in the `ciKlass` version. `CompressedKlassPointers::is_in_encoding_range()` takes a `void*` and I don't want to assume that it will always point to the beginning of a Klass.

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

PR Comment: https://git.openjdk.org/jdk/pull/20971#issuecomment-2349249318


More information about the hotspot-dev mailing list