RFR(XS): 8229450: C2 compilation fails with assert(found_sfpt) failed

Liu Xin navy.xliu at gmail.com
Mon Aug 19 08:26:44 UTC 2019

Hi, Maillist,

Please review my change to fix IfSplitBlocks for a corner case.
JBS: https://bugs.openjdk.java.net/browse/JDK-8229450
webrev: https://cr.openjdk.java.net/~xliu/8229450/webrev/

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 mailing list