RFR: 8309463: IGV: Dynamic graph layout algorithm [v7]
Christian Hagedorn
chagedorn at openjdk.org
Fri Aug 25 09:55:19 UTC 2023
On Fri, 25 Aug 2023 08:53:25 GMT, emmyyin <duke at openjdk.org> wrote:
>> src/utils/IdealGraphVisualizer/HierarchicalLayout/src/main/java/com/sun/hotspot/igv/hierarchicallayout/HierarchicalStableLayoutManager.java line 189:
>>
>>> 187: assert e.to.layer == n.layer + 1;
>>> 188: } else {
>>> 189: n.succs.remove(e);
>>
>> This removal and the one in the next loop seem unexpected being in a sanity check method where the expectation would be to only query and not modify. Do we really need these removals for the correctness of the algorithm?
>
> Yes, it breaks often if removed. It's mostly sanity checking but also ensuring the state of the graph is correct by fixing weird edge connections
As mentioned below, this method is still a bottleneck and we spend quite some time inside it. Overall, it attributes to around 90% of the overall time to open the graph in the example mentioned earlier. Is there another way to fix these breakages instead of looping over all nodes and edges here?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14349#discussion_r1305452104
More information about the hotspot-compiler-dev
mailing list