< prev index next >

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

Print this page
rev 53149 : [mq]: flatten-alias-types.patch

@@ -1019,5 +1019,19 @@
       return false;
     }
   }
   return n->outcnt() > 0;
 }
+
+bool ShenandoahBarrierSetC2::flatten_gc_alias_type(const TypePtr*& adr_type) const {
+  int offset = adr_type->offset();
+  if (offset == BrooksPointer::byte_offset()) {
+    if (adr_type->isa_aryptr()) {
+      adr_type = TypeAryPtr::make(adr_type->ptr(), adr_type->isa_aryptr()->ary(), adr_type->isa_aryptr()->klass(), false, offset);
+    } else if (adr_type->isa_instptr()) {
+      adr_type = TypeInstPtr::make(adr_type->ptr(), ciEnv::current()->Object_klass(), false, NULL, offset);
+    }
+    return true;
+  } else {
+    return false;
+  }
+}
< prev index next >