tool or option for viewing LIR nodes

Venkatachalam, Vasanth Vasanth.Venkatachalam at amd.com
Mon May 6 17:05:48 PDT 2013


Thanks Doug, that worked. It would be helpful to document this for those of us who are new to the tool.
I'm willing to take a stab at this if you like.

Vasanth

-----Original Message-----
From: Doug Simon [mailto:doug.simon at oracle.com] 
Sent: Monday, May 06, 2013 10:41 AM
To: Venkatachalam, Vasanth
Cc: graal-dev at openjdk.java.net
Subject: Re: tool or option for viewing LIR nodes


On May 6, 2013, at 5:29 PM, "Venkatachalam, Vasanth" <Vasanth.Venkatachalam at amd.com> wrote:

> Doug and Giles,
> 
> Here's the command line I'm using. 
> 
> tester at see-anna1:~/graalcloneinternal/graal$ ./mx.sh  --vm server  --java-home /home/tester/graal/jdk1.7.0_13/debug -G:Dump= -G:+PrintCFG unittest BasicHSAILTest
>          ...
> mx: error: unrecognized arguments: -G:Dump= -G:+PrintCFG
> 
> Can someone explain what I'm doing wrong here?

You want:

./mx.sh  --vm server  --java-home /home/tester/graal/jdk1.7.0_13/debug unittest BasicHSAILTest @-G:Dump= @-G:+PrintCFG 

That is, the VM options need to come after the 'unit test' command specifier *and* they must be prefixed with '@'. Sorry for the complexity of this command - we are planning on unifying all mx commands to use the same (or at least a more unified) interface.

If the method you are particularly interested in is com.amd.Test.myTest(), then you should also add:

@-G:MethodFilter=myTest

or:

@-G:MethodFilter=Test.*

to dump traces for all methods in the Test class.

-Doug

> 
> -----Original Message-----
> From: Doug Simon [mailto:doug.simon at oracle.com]
> Sent: Saturday, May 04, 2013 4:47 PM
> To: Venkatachalam, Vasanth
> Cc: graal-dev at openjdk.java.net
> Subject: Re: tool or option for viewing LIR nodes
> 
> As Gilles says, the -G options should work under --vm server. It helps if you post the complete command line you are using to see if we can spot a problem.
> 
> -Doug
> 
> On May 4, 2013, at 10:02 PM, Gilles Duboscq <duboscq at ssw.jku.at> wrote:
> 
>> The server vm that contains Graal (--vm server) should definitely 
>> pick up all -G options including -G:Dump= and -G:+PrintCFG.
>> Since you are talking about unit tests i suppose you are using the 
>> GraalCompilerTest's method to explicitly trigger compilation.
>> 
>> I don't know how you are structuring your tests but there are some 
>> "Debug scopes" that need to be properly set up for these flags to 
>> work. Normally if you just make your test a subclass of 
>> GraalCompilerTest and then use its methods if should be fine.
>> 
>> 
>> On Sat, May 4, 2013 at 2:30 AM, Vasanth Venkatachalam < 
>> Vasanth.Venkatachalam at amd.com> wrote:
>> 
>>> Christian,
>>> 
>>> Some more context to my question.
>>> 
>>> I've added a Graal backend for HSAIL code generation. I'm debugging 
>>> the codegen for a test case where running with the --vm server 
>>> option produces some incorrect results.
>>> Thus I'd like to view the nodes that are produced when running with 
>>> the mx --vm server option.
>>> 
>>> It looks like the c1visualizer tool can't be used with --vm server. 
>>> Is there another tool that can help?
>>> 
>>> I had a similar issue with the IdealGraphVisualizer. The -G:Dump= 
>>> option isn't recognized when running with --vm server.
>>> 
>>> Vasanth
>>> 
>>> -----Original Message-----
>>> From: graal-dev-bounces at openjdk.java.net [mailto:
>>> graal-dev-bounces at openjdk.java.net] On Behalf Of Christian Wimmer
>>> Sent: Friday, May 03, 2013 12:22 PM
>>> To: graal-dev at openjdk.java.net
>>> Subject: Re: tool or option for viewing LIR nodes
>>> 
>>> 
>>> On 05/03/2013 09:23 AM, Venkatachalam, Vasanth wrote:
>>>> Is there a tool or option that would allow us to view the LIR nodes 
>>>> that
>>> Graal generates for a program?
>>> 
>>> Yes.
>>> 
>>> Graal can output the graph, LIR, register allocator liveness 
>>> information, and machine code in the format required by the Client Compiler Visualizer.
>>> As the name implies, the tool was originally written to visualize 
>>> the data structures of the Java HotSpot client compiler.
>>> 
>>> You can get it here: https://java.net/projects/c1visualizer/
>>> 
>>> The output is controlled the same ways as the output to the Ideal 
>>> Graph Visualizer, i.e., the -G:Dump= flag.  In addition, I think you 
>>> have to also pass -G:+PrintCFG
>>> 
>>> The tool is file-based, i.e., you get .cfg files in your working 
>>> directory that you can load with the c1visualizer.
>>> 
>>> -Christian
>>> 
>>> 
>>> 
> 
> 
> 





More information about the graal-dev mailing list