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