Request for reviews (M): 7128355: assert(!nocreate) failed: Cannot build a phi for a block already parsed
vladimir.kozlov at oracle.com
Tue Jan 10 15:36:51 PST 2012
7128355: assert(!nocreate) failed: Cannot build a phi for a block already parsed
Regression after 7125896 changes. Merge Phi was not created for BoxLockNode.
Other problems showed up after fixing this:
- EA did not recognize BoxLock phis. EA should ignore them.
- Matcher and RA does not expect box phis in debug info. Next assert was hit:
assert((op == Op_BoxLock) == jvms->is_monitor_use(i), "boxes only at
- Lock elimination code may miss some safepoints (because they separated by
additional phi nodes) when replacing old box (which could be Phi) with new
"eliminated" Box. As result debug info could be incorrect.
Do commoning of merged Box nodes (which has Phi uses) before locks elimination
to resolve these problems.
Tested with full CTW and compiler regression tests.
More information about the hotspot-compiler-dev