< prev index next >

src/hotspot/share/gc/shenandoah/c2/shenandoahBarrierSetC2.cpp

Print this page
rev 59195 : 8244594: [BACKOUT] 8244523: Shenandoah: Remove null-handling in LRB expansion

@@ -479,20 +479,20 @@
   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+0, fields);
 
   return TypeFunc::make(domain, range);
 }
 
-const TypeFunc* ShenandoahBarrierSetC2::shenandoah_load_reference_barrier_Type(const Type* value_type) {
+const TypeFunc* ShenandoahBarrierSetC2::shenandoah_load_reference_barrier_Type() {
   const Type **fields = TypeTuple::fields(2);
-  fields[TypeFunc::Parms+0] = value_type;           // original field value
+  fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL; // original field value
   fields[TypeFunc::Parms+1] = TypeRawPtr::BOTTOM;   // original load address
 
   const TypeTuple *domain = TypeTuple::make(TypeFunc::Parms+2, fields);
 
   // create result type (range)
   fields = TypeTuple::fields(1);
-  fields[TypeFunc::Parms+0] = value_type;
+  fields[TypeFunc::Parms+0] = TypeInstPtr::NOTNULL;
   const TypeTuple *range = TypeTuple::make(TypeFunc::Parms+1, fields);
 
   return TypeFunc::make(domain, range);
 }
 

@@ -1043,24 +1043,10 @@
     }
   }
 }
 #endif
 
-bool ShenandoahBarrierSetC2::maybe_skip_barrier(Node* n, uint i, PhaseGVN* phase) const {
-  PhaseIterGVN* igvn = phase->is_IterGVN();
-  Node* in = step_over_gc_barrier(n->in(i));
-  if (in != n->in(i)) {
-    if (igvn != NULL) {
-      n->set_req_X(i, in, igvn);
-    } else {
-      n->set_req(i, in);
-    }
-    return true;
-  }
-  return false;
-}
-
 Node* ShenandoahBarrierSetC2::ideal_node(PhaseGVN* phase, Node* n, bool can_reshape) const {
   if (is_shenandoah_wb_pre_call(n)) {
     uint cnt = ShenandoahBarrierSetC2::write_ref_field_pre_entry_Type()->domain()->cnt();
     if (n->req() > cnt) {
       Node* addp = n->in(cnt);

@@ -1098,24 +1084,10 @@
       } else {
         n->set_req(2, in2);
       }
       return n;
     }
-  } else if (n->Opcode() == Op_CallStaticJava) {
-    if (n->as_CallStaticJava()->uncommon_trap_request() != 0) {
-      // Uncommon traps don't need barriers, values are handled
-      // during deoptimization. It also affects optimizing null-checks
-      // into implicit null-checks.
-      PhaseIterGVN* igvn = phase->is_IterGVN();
-      Node* ret = NULL;
-      for (uint i = TypeFunc::Parms; i < n->len(); i++) {
-        if (maybe_skip_barrier(n, i, phase)) {
-          ret = n;
-        }
-      }
-      return ret;
-    }
   } else if (can_reshape &&
              n->Opcode() == Op_If &&
              ShenandoahBarrierC2Support::is_heap_stable_test(n) &&
              n->in(0) != NULL) {
     Node* dom = n->in(0);
< prev index next >