From 02a90281ec9e0c91cf95520f85dc531fe07aff57 Mon Sep 17 00:00:00 2001 From: Roman Kennke Date: Mon, 15 Jul 2019 12:31:35 +0200 Subject: [PATCH] 8227637: Adjust Shenandoah C2 verifier to recognize IN_NATIVE barriers Reviewed-by: roland --- src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp index c2347baf1a7..61db463a8ef 100644 --- a/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp +++ b/src/hotspot/share/gc/shenandoah/c2/shenandoahSupport.cpp @@ -208,7 +208,10 @@ bool ShenandoahBarrierC2Support::verify_helper(Node* in, Node_Stack& phis, Vecto if (trace) { tty->print("Found raw LoadP (OSR argument?)"); } - } else if (in->Opcode() == Op_ShenandoahLoadReferenceBarrier) { + } else if (in->Opcode() == Op_ShenandoahLoadReferenceBarrier || + (in->Opcode() == Op_Proj && + in->in(0)->Opcode() == Op_CallLeaf && + strcmp(in->in(0)->as_Call()->_name, "ShenandoahRuntime::oop_load_from_native_barrier") == 0)) { if (t == ShenandoahOopStore) { uint i = 0; for (; i < phis.size(); i++) { @@ -527,7 +530,7 @@ void ShenandoahBarrierC2Support::verify(RootNode* root) { if (!verify_helper(n->in(TypeFunc::Parms), phis, visited, ShenandoahStore, trace, barriers_used)) { report_verify_failure("Shenandoah verification: _fill should have barriers", n); } - } else if (!strcmp(call->_name, "shenandoah_wb_pre")) { + } else if (!strcmp(call->_name, "shenandoah_wb_pre") || !strcmp(call->_name, "ShenandoahRuntime::oop_load_from_native_barrier")) { // skip } else { const int calls_len = sizeof(calls) / sizeof(calls[0]);