Need reviews for 6671807, 6672848, 6673473
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Tue Mar 11 12:36:51 PDT 2008
Only 3 left :)
Thanks,
Vladimir
----------------------------------------------------------------------------
http://webrev.invokedynamic.info/kvn/6672848/index.html
Fixed 6672848: Escape Analysis: improve lock elimination with EA
Problem:
Improve locks elimination based on an allocation escape state from EA.
Solution:
Remove MemBar nodes associated with elided lock/unlock nodes and
specify in debug info which locks should be restored during
deoptimization.
----------------------------------------------------------------------------
http://webrev.invokedynamic.info/kvn/6671807/index.html
Fixed 6671807: Escape Analysis: Add new ideal node to represent the state of a scalarized object at a safepoint
Problem:
To reallocate a scalarized object during a deoptimization we need
to know the state (values) of object's non-static fields at a safepoint.
Solution:
Add new ideal node SafePointScalarObjectNode to represent the state of
a scalarized object at a safepoint. It describes additional input edges
(starting and count) in the safepoint node to which it is attached.
SafePointScalarObjectNode nodes will be created for each safepoint nodes
which reference the original scalar replaced allocation (this code
will be added in next changes).
----------------------------------------------------------------------------
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'.
More information about the hotspot-compiler-dev
mailing list