graal inlining decisions

Thomas Wuerthinger thomas.wuerthinger at oracle.com
Thu Jun 6 05:22:21 PDT 2013


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