[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