<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 12, 2016 at 3:56 PM, Krystal Mok <span dir="ltr"><<a href="mailto:rednaxelafx@gmail.com" target="_blank">rednaxelafx@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Mon, Sep 12, 2016 at 12:38 PM, Vitaly Davidovich <span dir="ltr"><<a href="mailto:vitalyd@gmail.com" target="_blank">vitalyd@gmail.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>It seems odd to me as well why inlining won't force load the missing class(es).  If we're inlining, it means the method itself or the call chain it's part of is hot - failing to inline can have negative side-effects, like this example.  I suppose there must be a good reason why it doesn't do this though? </div></div></div></div></blockquote><div><br></div></span><div>That's because we can't. The JIT compilers are running on their own threads, and they're not real "Java threads". So they are not allowed to run arbitrary Java code. But Java class loading may involve running arbitrary Java code, e.g. the ClassLoader.loadClass() upcall.</div><div>Force class loading can be done on the triggering side (for the top-level method), because compilation tasks are triggered from real Java threads, and they're allowed to run arbitrary Java code.</div></div></div></div></blockquote><div>I see, makes sense.  Perhaps there can be an option to turn on loading of required types in the entire compilation unit, after all inlining is done (and therefore make the unloaded types not be barriers for inlining).  I'd personally prefer that over having odd performance differences.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>- Kris </div></div></div></div></blockquote><div>Thanks Kris. </div></div><br></div></div>