The current IGV's schedule approximation performs a best-effort scheduling of unreachable nodes, and emits a warning for each unreachable node which could not be scheduled. This hides potential input graph issues from the user, which is valuable information in a debugging scenario. IGV should instead leave all unreachable nodes unscheduled and warn clearly the user about them.
The attached clustered subgraph (from graph.xml) illustrates the issue: in the current best-effort approach, '522 IfFalse' gets assigned the same block as '256 Region' (B11), and hence a "Control-unreachable CFG node" warning is omitted, even though the node is clearly control-unreachable (since it is a child of '520 If' which is control-unreachable). A clearer approach would be to leave '522 IfFalse' unscheduled and emit a "Control-unreachable CFG node" warning for it.
The attached clustered subgraph (from graph.xml) illustrates the issue: in the current best-effort approach, '522 IfFalse' gets assigned the same block as '256 Region' (B11), and hence a "Control-unreachable CFG node" warning is omitted, even though the node is clearly control-unreachable (since it is a child of '520 If' which is control-unreachable). A clearer approach would be to leave '522 IfFalse' unscheduled and emit a "Control-unreachable CFG node" warning for it.
- blocks
-
JDK-8289503 IdealGraphVisualizer improvements for JDK 20
-
- Closed
-