6601321: Assert(j == 1 || b->_nodes[j-1]->is_Phi(),"CreateEx must be first instruction in block")
authornever
Wed, 23 Apr 2008 13:57:14 -0700
changeset 372 b0d8a9fd3646
parent 371 1aacedc9db7c
child 373 427fb4ca6a1e
6601321: Assert(j == 1 || b->_nodes[j-1]->is_Phi(),"CreateEx must be first instruction in block") Reviewed-by: kvn, rasbold, sgoldman, jrose
hotspot/src/share/vm/opto/lcm.cpp
--- a/hotspot/src/share/vm/opto/lcm.cpp	Wed Apr 23 11:20:36 2008 -0700
+++ b/hotspot/src/share/vm/opto/lcm.cpp	Wed Apr 23 13:57:14 2008 -0700
@@ -629,6 +629,10 @@
         // of the phi to be scheduled first. The select() method breaks
         // ties in scheduling by worklist order.
         delay.push(m);
+      } else if (m->is_Mach() && m->as_Mach()->ideal_Opcode() == Op_CreateEx) {
+        // Force the CreateEx to the top of the list so it's processed
+        // first and ends up at the start of the block.
+        worklist.insert(0, m);
       } else {
         worklist.push(m);         // Then on to worklist!
       }