graal inlining decisions

Doug Simon doug.simon at oracle.com
Thu Jun 6 05:32:59 PDT 2013


Pulling/applying this changeset may fix it: http://hg.openjdk.java.net/graal/graal/rev/6dfd53575553

On Jun 6, 2013, at 2:22 PM, Thomas Wuerthinger <thomas.wuerthinger at oracle.com> wrote:

> Maybe you are missing a call to this method: "DebugEnvironment.initialize(System.out)"
> Does dumping the graph to the IdealGraphVisualizer work in the code below?
> 
> - thomas
> 
> On Jun 3, 2013, at 2:04 PM, "Deneau, Tom" <tom.deneau at amd.com> wrote:
> 
>> Thomas --
>> 
>> I tried this command line
>>  mx --vm server unittest @-G:Log=InliningDecisions ArrayListGetTest
>> 
>> which only runs a single test, and I did not see any inlining decisions logged (one method is being compiled by the graal hsail compiler in the above case)
>> 
>> If I instead use a --vm graal command line
>>  mx --vm server unittest @-G:Log=InliningDecisions ArrayListGetTest
>> 
>> I see only the hosted x86 inlining decisions, not the hsail decisions.
>> 
>> We are compiling the HSAIL with with code like the following:
>> 
>> 
>>   public static HSAILCompilationResult getHSAILCompilationResult(StructuredGraph graph) {
>>       Debug.dump(graph, "Graph");
>>       TargetDescription target = new TargetDescription(new HSAIL(), true, 1, 0, true);
>>       HSAILBackend hsailBackend = new HSAILBackend(Graal.getRequiredCapability(GraalCodeCacheProvider.class), target);
>>       PhasePlan phasePlan = new PhasePlan();
>>       GraphBuilderPhase graphBuilderPhase = new GraphBuilderPhase(runtime, GraphBuilderConfiguration.getDefault(), OptimisticOptimizations.NONE);
>>       phasePlan.addPhase(PhasePosition.AFTER_PARSING, graphBuilderPhase);
>>       phasePlan.addPhase(PhasePosition.AFTER_PARSING, new HSAILPhase());
>>       new HSAILPhase().apply(graph);
>>       CallingConvention cc = getCallingConvention(runtime, Type.JavaCallee, graph.method(), false);
>>       CompilationResult compResult = GraalCompiler.compileGraph(graph, cc, graph.method(), runtime, 																	  replacements, // graalRuntime().getReplacements(),															  hsailBackend, target, null,
>> 									  phasePlan, OptimisticOptimizations.NONE, new SpeculationLog());
>> 
>> -- Tom Deneau
>> 
>> 
>> -----Original Message-----
>> From: Thomas Wuerthinger [mailto:thomas.wuerthinger at oracle.com] 
>> Sent: Sunday, June 02, 2013 2:17 PM
>> To: Deneau, Tom
>> Cc: graal-dev at openjdk.java.net
>> Subject: Re: graal inlining decisions
>> 
>> If you run with "--vm server", the host should be the server compiler and therefore not be affected by the "-G:Log" value. Additionally, you can choose to either limit the number of unit tests executed or apply a "-G:MethodFilter=" argument to reduce the output to certain patterns of methods.
>> 
>> - thomas
>> 
>> On May 29, 2013, at 1:22 AM, "Deneau, Tom" <tom.deneau at amd.com> wrote:
>> 
>>> Just to clarify, I would like to see the inlining decisions made when I compile for an HSAIL target,
>>> (not interested in any decisions made for the x86 host).
>>> 
>>> When I use the line below with mx unittest I see only x86 decisions...
>>> 
>>> -- Tom
>>> 
>>> -----Original Message-----
>>> From: Mick Jordan [mailto:mick.jordan at oracle.com] 
>>> Sent: Tuesday, May 28, 2013 11:08 AM
>>> To: Deneau, Tom
>>> Cc: graal-dev at openjdk.java.net
>>> Subject: Re: graal inlining decisions
>>> 
>>> On 5/28/13 8:13 AM, Deneau, Tom wrote:
>>>> What would be the best command line to use to see what kind of inlining decisions are being made in graal?
>>>> 
>>>> -- Tom
>>> This works for me:
>>> 
>>> -G:Log=InliningDecisions
>>> 
>>> Mick
>>> 
>>> 
>>> 
>> 
>> 
>> 
> 



More information about the graal-dev mailing list