RFR(XS): 8229450: C2 compilation fails with assert(found_sfpt) failed
navy.xliu at gmail.com
Mon Aug 19 08:26:44 UTC 2019
Please review my change to fix IfSplitBlocks for a corner case.
As JDK1894.before shown, if prevdom is 959 IfFalse === 958 [[ 964 ]]
and 964 is a safepoint node in a CountedLoop,
PhaseIdealLoop::dominated_by will modify it to 959 IfFalse === 958 [[
964 905 ]]. After then, It can't pass LoopNode::verify_strip_mined.
I still have 2 questions. Could reviewers help me out?
1. I'd like to add a testcase, but JVM won't hit it even though I repeat
invoke that function thousands of times. I can see that function is
compiled by C2, but C2 succeeds to compile it.
The only way to reproduce that problem is using replay file. Is that
possible to build a testcase from a replay file? or What kinda of
information should I pull out of the replay file?
2. I found you guys sometimes paste a sub-graph of Ideal nodes in JBS
issues. Do you have a script to render a IdealLoopTree? So far, I only have
idealgraphvisualizer. It renders the whole function.Too big to understand.
More information about the hotspot-compiler-dev