TieredCompilation question

Deneau, Tom tom.deneau at amd.com
Thu Jan 10 20:31:21 PST 2013


So the assumption is that MC inlined into MA will be better than calling a C2-compiled version of MC?

I suppose it is also possible to forbid inlining of MC, so it would have to call the compiled version?

-- Tom


-----Original Message-----
From: sumatra-dev-bounces at openjdk.java.net [mailto:sumatra-dev-bounces at openjdk.java.net] On Behalf Of Vladimir Kozlov
Sent: Thursday, January 10, 2013 7:59 PM
To: sumatra-dev at openjdk.java.net
Subject: Re: TieredCompilation question

You step on your own mine :)

Yes, it has such pathology for inlined by C1 methods. The assumption is 
that when C2 will compile MA it will also inline MB and MC. You can try 
to lower Tier4CompileThreshold.

Vladimir

On 1/10/13 5:22 PM, Deneau, Tom wrote:
> I will display my ignorance of TieredCompilation here. :)
> I think I am seeing the following but I am not positive...
>
> Let's say method MA calls MB calls MC.
> MC gets compiled at C2 level.
> Everything works well and the MC method compiled at C2 gets called several hundred times.
>
> Now method MA gets compiled at level 3 in C1.
> This C1 compilation of MA decides to inline MB and then MC into its C1 compilation.
> So it no longer uses the C2 compilation of MC??
>
> In my particular case MC had called some intrinsic routines which were only defined as intrinsics in C2.
> So the net effect of being compiled at C1 when it was inlined into MA was that we lose those intrinsics.
>
> Is this how TieredCompilation is supposed to  work?
>
> I should add here that the early compilation of MC at C2 level was in my case artificially forced by some code I added to Hotspot (so I might have missed something in setting that up).
>
> With Tiered off, this all worked nicely of course.
>
> -- Tom
>




More information about the sumatra-dev mailing list