changeset 55893:d8fb0b8512d5 lworld

8225575: [lworld] TestNewAcmp fails with assert(_map != __null) failed: must call stopped() to test for reset compiler map
author thartmann
date Tue, 11 Jun 2019 16:47:28 +0200
parents cee0fa7f2ea7
children c3ca31a87b18
files src/hotspot/share/opto/parse2.cpp
diffstat 1 files changed, 12 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/hotspot/share/opto/parse2.cpp	Tue Jun 11 13:56:58 2019 +0200
+++ b/src/hotspot/share/opto/parse2.cpp	Tue Jun 11 16:47:28 2019 +0200
@@ -2000,23 +2000,24 @@
 
     // Test the return value of ValueBootstrapMethods::isSubstitutable()
     Node* subst_cmp = _gvn.transform(new CmpINode(ret, intcon(1)));
+    Node* ctl = C->top();
     if (btest == BoolTest::eq) {
+      PreserveJVMState pjvms(this);
       do_if(btest, subst_cmp);
+      if (!stopped()) {
+        ctl = control();
+      }
     } else {
       assert(btest == BoolTest::ne, "only eq or ne");
-      Node* is_not_equal = NULL;
-      {
-        PreserveJVMState pjvms(this);
-        do_if(btest, subst_cmp, false, &is_not_equal);
-        if (!stopped()) {
-          eq_region->init_req(2, control());
-          eq_io_phi->init_req(2, i_o());
-          eq_mem_phi->init_req(2, reset_memory());
-        }
+      PreserveJVMState pjvms(this);
+      do_if(btest, subst_cmp, false, &ctl);
+      if (!stopped()) {
+        eq_region->init_req(2, control());
+        eq_io_phi->init_req(2, i_o());
+        eq_mem_phi->init_req(2, reset_memory());
       }
-      set_control(is_not_equal);
     }
-    ne_region->init_req(5, control());
+    ne_region->init_req(5, ctl);
     ne_io_phi->init_req(5, i_o());
     ne_mem_phi->init_req(5, reset_memory());