RFR: 8251464: make Node::dump(int depth) support indent

Tobias Hartmann tobias.hartmann at oracle.com
Fri Sep 4 09:09:56 UTC 2020


Hi Xin,

thanks for making these changes. That looks good to me.
But lets wait for some more opinions from other reviewers.

Best regards,
Tobias

On 04.09.20 06:33, Liu, Xin wrote:
> Hi, Tobias, 
> 
> Thank you to review the patch.
> 
> Yes, My change does affect PrintIdeal. Indeed, if line-wrapping happens, the readability will drop a lot. 
> Taking your advice, I introduce a new c2 option PrintIdealIndentThreshold=5. if users attempt to dump an ideal graph 
> deeper than that level, the indention function will be automatically disable. 
> 
> -XX:+PrintIdeal is root()->dump(9999) under the hook. Of course it doesn't indent. Indention still happens if users call "node->dump(-3)"  in a debugger. 
> 
> Making a beautiful formation is a surprisingly hard task. Previously, I would like to treat Node::_idx as a line number in vim.  That's why I make them align on left side. 
> In this new revision, I indent a few whitespaces in first place. The result looks like this.  What do you think? 
> https://bugs.openjdk.java.net/secure/attachment/90041/indent_with_idx.log
> 
> here is the new revison: 
> http://cr.openjdk.java.net/~xliu/8251464/01/webrev/
> 
> thanks, 
> --lx
> 
>  
> ________________________________________
> From: Tobias Hartmann <tobias.hartmann at oracle.com>
> Sent: Thursday, September 3, 2020 5:30 AM
> To: Liu, Xin; 'hotspot-compiler-dev at openjdk.java.net'
> Subject: RE: [EXTERNAL] RFR: 8251464: make Node::dump(int depth) support indent
> 
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
> 
> 
> 
> Hi Xin,
> 
> I'm concerned that the output quickly becomes unreadable when dumping a large graph.
> For example, isn't -XX:+PrintIdeal affected by this as well?
> 
> Also, looking at the example output you've posted [1], shouldn't the node id be indented as well?
> 
> This might be helpful when dumping small parts of the graph but then it should be optional (i.e. can
> be turned on via a flag/argument if needed).
> 
> Best regards,
> Tobias
> 
> [1] https://bugs.openjdk.java.net/secure/attachment/89800/dump2.txt
> 
> On 29.08.20 22:08, Liu, Xin wrote:
>> hi, Reviewers,
>>
>>
>> Could you review this patch?
>>
>> JBS:https://bugs.openjdk.java.net/browse/JDK-8251464
>>
>> Webrev:
>>
>> http://cr.openjdk.java.net/~xliu/8251464/00/webrev/
>>
>>
>> This patch attempts to improve the formation of nodes when developers try to dump an ideal graph or snippet of a graph.  In practice, I found it's pretty handy if Node::dump(int d) can support indent.
>>
>> The basic idea is to support indention for the utility function:
>>
>> collect_nodes_i(GrowableArray<Node*>* queue, const Node* start, int direction, uint depth, bool include_start, bool only_ctrl, bool only_data)
>>
>> It only affects Node::dump family and -XX::PrintIdeal.  It won't impact the output for igv.
>> This can help developers who try to inspect a cluster of nodes in gdb.
>>
>> Another change is naming. collect_nodes_i uses breadth-first search. the container is used in fifo way instead of filo.
>> I think the name "queue" serve better.
>>
>> TEST:
>> hotspot:tier1  and gtest.
>> mach-5
>>
>> thanks,
>> --lx
>>
>>


More information about the hotspot-compiler-dev mailing list