Request for Review (S): 6625997: CastPP, CheckCastPP and Proj nodes are not dead loop safe
Vladimir.Kozlov at Sun.COM
Tue Apr 22 19:25:53 PDT 2008
Fixed 6625997: CastPP, CheckCastPP and Proj nodes are not dead loop safe
CastPP, CheckCastPP and Proj nodes are not "dead" loop safe after
the putback 20061023120554.jrose.dolphin-cleanups which added
new methods Ideal_allocation(), Ideal_klass(), Ideal_length().
These methods could bypass the next nodes chain to get a klass or
an array's length from inputs of an Allocation node:
Allocate <- Proj <- CheckCastPP.
Also these nodes could be bypassed with Escape Analysis to get
a field's value if they are not related to the value's instance.
As result dead data loop could be created.
Make CastPP and CheckCastPP nodes not dead loop safe.
Make Proj node not dead loop safe if it is a memory projection or
a projection from allocation node.
Fix verified (y/n): y, failed test case.
More information about the hotspot-compiler-dev