Heads-up: barriers for constants crash C2

Roland Westrelin rwestrel at redhat.com
Mon Jun 12 15:17:40 UTC 2017


Fix is below. I will have it go through more testing before I push it.

Roland.

diff --git a/src/share/vm/opto/shenandoahSupport.cpp b/src/share/vm/opto/shenandoahSupport.cpp
--- a/src/share/vm/opto/shenandoahSupport.cpp
+++ b/src/share/vm/opto/shenandoahSupport.cpp
@@ -3729,7 +3729,7 @@
     test_evacuation_in_progress(ctrl, alias, raw_mem, wb_mem, evacuation_iff, evac_in_progress, evac_not_in_progress, phase);
 
     Node* region = new RegionNode(4);
-    Node* val_phi = PhiNode::make_blank(region, val);
+    Node* val_phi = new PhiNode(region, val->bottom_type()->is_oopptr()->cast_to_nonconst());
     Node* mem_phi = PhiNode::make(region, wb_mem, Type::MEMORY, phase->C->alias_type(wb->adr_type())->adr_type());
     Node* raw_mem_phi = PhiNode::make(region, raw_mem, Type::MEMORY, TypeRawPtr::BOTTOM);
 



More information about the shenandoah-dev mailing list