[8] Heads-up: Borked EA after LRB backports?

Roland Westrelin rwestrel at redhat.com
Fri Oct 25 15:11:19 UTC 2019


Signatures of Value and Identity is wrong so they are never called. See
patch below.

Roland.

diff -r dae45258de89 src/share/vm/gc_implementation/shenandoah/shenandoahSupport.cpp
--- a/src/share/vm/gc_implementation/shenandoah/shenandoahSupport.cpp	Fri Oct 25 10:23:13 2019 +0200
+++ b/src/share/vm/gc_implementation/shenandoah/shenandoahSupport.cpp	Fri Oct 25 17:10:19 2019 +0200
@@ -2737,7 +2737,7 @@
   return t->is_oopptr();
 }
 
-const Type* ShenandoahLoadReferenceBarrierNode::Value(PhaseGVN* phase) const {
+const Type* ShenandoahLoadReferenceBarrierNode::Value(PhaseTransform *phase) const {
   // Either input is TOP ==> the result is TOP
   const Type *t2 = phase->type(in(ValueIn));
   if( t2 == Type::TOP ) return Type::TOP;
@@ -2750,7 +2750,7 @@
   return type;
 }
 
-Node* ShenandoahLoadReferenceBarrierNode::Identity(PhaseGVN* phase) {
+Node* ShenandoahLoadReferenceBarrierNode::Identity(PhaseTransform *phase) {
   Node* value = in(ValueIn);
   if (!needs_barrier(phase, value)) {
     return value;
@@ -2758,12 +2758,12 @@
   return this;
 }
 
-bool ShenandoahLoadReferenceBarrierNode::needs_barrier(PhaseGVN* phase, Node* n) {
+bool ShenandoahLoadReferenceBarrierNode::needs_barrier(PhaseTransform* phase, Node* n) {
   Unique_Node_List visited;
   return needs_barrier_impl(phase, n, visited);
 }
 
-bool ShenandoahLoadReferenceBarrierNode::needs_barrier_impl(PhaseGVN* phase, Node* n, Unique_Node_List &visited) {
+bool ShenandoahLoadReferenceBarrierNode::needs_barrier_impl(PhaseTransform* phase, Node* n, Unique_Node_List &visited) {
   if (n == NULL) return false;
   if (visited.member(n)) {
     return false; // Been there.
diff -r dae45258de89 src/share/vm/gc_implementation/shenandoah/shenandoahSupport.hpp
--- a/src/share/vm/gc_implementation/shenandoah/shenandoahSupport.hpp	Fri Oct 25 10:23:13 2019 +0200
+++ b/src/share/vm/gc_implementation/shenandoah/shenandoahSupport.hpp	Fri Oct 25 17:10:19 2019 +0200
@@ -165,14 +165,14 @@
 
   virtual int Opcode() const;
   virtual const Type* bottom_type() const;
-  virtual const Type* Value(PhaseGVN* phase) const;
+  virtual const Type* Value(PhaseTransform *phase) const;
   virtual const class TypePtr *adr_type() const { return TypeOopPtr::BOTTOM; }
   virtual uint match_edge(uint idx) const {
     return idx >= ValueIn;
   }
   virtual uint ideal_reg() const { return Op_RegP; }
 
-  virtual Node* Identity(PhaseGVN* phase);
+  virtual Node* Identity(PhaseTransform *phase);
 
   uint size_of() const {
     return sizeof(*this);
@@ -182,8 +182,8 @@
   CallStaticJavaNode* pin_and_expand_null_check(PhaseIterGVN& igvn);
 
 private:
-  bool needs_barrier(PhaseGVN* phase, Node* n);
-  bool needs_barrier_impl(PhaseGVN* phase, Node* n, Unique_Node_List &visited);
+  bool needs_barrier(PhaseTransform* phase, Node* n);
+  bool needs_barrier_impl(PhaseTransform* phase, Node* n, Unique_Node_List &visited);
 };
 
 


More information about the shenandoah-dev mailing list