C2: cyclic IR for JVMS

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Dec 18 00:01:12 UTC 2014


Hi!

I stumbled upon the following cyclic Ideal graph shape:
   21580  CallStaticJava  === ... 21585 ... // some local in JVMS
   21585  Proj    ===  21580 #5

Is it a legal shape? It looks broken to me.
Or do we fix such quirks later in the pipeline?

It's a result of a transformation (Phi removal [1]) in RegionNode::Ideal 
from the following shape:
   21580  CallStaticJava  === ... 21457 ... // some local in JVMS
   21585  Proj    ===  21580 #5
   21457  Phi     ===  21454  21585

I'm asking because it breaks compilation during incremental inlining.

Best regards,
Vladimir Ivanov

[1] 
http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/ff29b5858de6/src/share/vm/opto/cfgnode.cpp#l587


More information about the hotspot-compiler-dev mailing list