How to reliably pin a node in CFG?
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Thu Nov 15 07:57:40 PST 2012
Hi,
I'm looking at 8003135 [1] and the problem is that during null check
(#132) hoisting, the load (#172) is also hoisted [2] [3]. LoadI node is
constructed in LibraryCallKit::inline_native_isInterrupted
and is pinned to IfTrue projection (#133) of #132, but it doesn't help.
I'm not sure how to avoid the hoisting of the load.
Should the load be pinned to corresponding Region/Loop node instead of
If node?
Is the logic in PhaseIdealLoop::dominated_by which updates
control-dependent nodes (:242-:255)is correct?
Best regards,
Vladimir Ivanov
[1] https://jbs.oracle.com/bugs/browse/JDK-8003135
"HotSpot inlines and hoists the Thread.currentThread().isInterrupted()
out of the loop"
[2]
http://cr.openjdk.java.net/~vlivanov/8003135/graphs/loop_invariant_hoisting_132_before.png
[3]
http://cr.openjdk.java.net/~vlivanov/8003135/graphs/loop_invariant_hoisting_132_after.png
More information about the hotspot-compiler-dev
mailing list