Tiered compilation leads to "unloaded signature class" inlining failures in JRuby

Charles Oliver Nutter headius at headius.com
Thu Sep 3 18:13:20 UTC 2020


OMG, it might be working...

On Thu, Sep 3, 2020 at 11:32 AM Charles Oliver Nutter
<headius at headius.com> wrote:
> I'm not sure I understand fully, but I'm now generously sprinkling
> class LDCs into my jitted methods' static initializers now. This seems
> like an incredibly onerous series of requirements just to load some
> dynamic code.

So I moved the Class.forName's out of the OneShot constructor and into
the static initializer (as LDC) in the jitted methods' classes. I went
ahead and loaded everything that is in the signatures in question.

https://gist.github.com/headius/6408b8392096d7932020870022374a9d

Running the original script, I no longer see "unloaded signature
class" warnings from PrintInlining, and as shown in the above gist I
eventually get the asm I expect!

But this is a hacky workaround, right? Do other frameworks that
dynamically generate code also have to do this aggressive classloading
within that generated code? This doesn't seem right, does it?

- Charlie

>
> - Charlie


More information about the hotspot-compiler-dev mailing list