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