Request for reviews (M): 7128355: assert(!nocreate) failed: Cannot build a phi for a block already parsed

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Jan 10 15:36:51 PST 2012


http://cr.openjdk.java.net/~kvn/7128355/webrev

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 
monitor sites");
  - 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.

Thanks,
Vladimir


More information about the hotspot-compiler-dev mailing list