Request for reviews (M): 6673473: Escape Analysis: Add the instance's field information to PhiNode
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Mon Mar 10 16:53:13 PDT 2008
http://webrev.invokedynamic.info/kvn/6673473/index.html
Fixed 6673473: Escape Analysis: Add the instance's field information to PhiNode
Problem:
Phi nodes are generated when needed to represent instance's fields values
for a scalar replacement of an allocation. They are generated during memory
optimization by using split_through_phi optimization. It creates a problem
when we do this for a loop's Phi since there is no a guard against infinite
(for each optimization path for the loop) generation of such value Phi nodes.
Solution:
Add the instance's field information to PhiNode to reuse the same value Phi.
Also additional (needed for EA) fixes in touched files:
1. Fix TypeAryPtr::xmeet() and dump2() methods for array instances.
2. Move the code in MemNode::Ideal_common() to the separate method
step_through_mergemem() which will be used in the next EA changes.
3. Replace incorrect assert (static calls are not only runtime calls)
in MemNode::Ideal_DU_postCCP() with more precise asserts.
4. Fix the assert in MergeMemNode::Ideal() to allow duplicated references
when the transformation is still in 'progress'.
Reviewed by:
Fix verified (y/n): y
Other testing:
JPRT
More information about the hotspot-compiler-dev
mailing list