MaxBCEAEstimateSize and inlining clarification

Vitaly Davidovich vitalyd at
Thu Sep 8 12:31:56 UTC 2016

Hi Roland,

Thanks for the quick reply.

On Thu, Sep 8, 2016 at 8:25 AM, Roland Westrelin <rwestrel at>

> > I'm hoping someone could clarify how MaxBCEAEstimateSize interacts with
> > inlining.
> >
> > The default max size is 150, nearly half the size of FreqInlineSize. Is
> EA
> > eligibility performed on a method before it's inlined then? I can't
> imagine
> > that 150 is the limit after inlining. If it's before inlining, how
> exactly
> > does this work after the method is inlined since the inlined call graph
> may
> > have quite a bit of code and thus EA may take a while? My understanding
> is
> > EA is run after inlining to maximize its effectiveness. Or is the
> > MaxBCEAEstimateLevel used as pseudo inlining for the analysis?
> EA happens after inlining. For calls that are not inlined, the bytecodes
> of the callees is analyzed to find more opportunities for
> EA. MaxBCEAEstimateSize affects the pass that operates on bytecodes of
> non inlined methods.
Ok, I see - so this flag has no bearing on a method that's inlined.
Great.  Are there any other conditions/flags that may prevent EA from
running? I'm talking about things other than an object escaping in some
paths (i.e. the control flow insensitive EA as implemented in C2) or the
ordering of EA vs loop unrolling (as I came to find out a few months ago on
this list).

Are OSR compilations performed with EA?

> Roland.
Thanks again.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the hotspot-compiler-dev mailing list