8259316: [REDO] C1/C2 compiler support for blackholes

Reviewed-by: vlivanov, kvn, iignatyev
This commit is contained in:
Aleksey Shipilev 2021-05-05 14:27:21 +00:00
parent f07bb2f4b9
commit 6018336fc5
32 changed files with 1167 additions and 6 deletions

View file

@ -3202,6 +3202,10 @@ void LIRGenerator::do_Intrinsic(Intrinsic* x) {
do_vectorizedMismatch(x);
break;
case vmIntrinsics::_blackhole:
do_blackhole(x);
break;
default: ShouldNotReachHere(); break;
}
}
@ -3621,6 +3625,15 @@ void LIRGenerator::do_RangeCheckPredicate(RangeCheckPredicate *x) {
}
}
void LIRGenerator::do_blackhole(Intrinsic *x) {
assert(!x->has_receiver(), "Should have been checked before: only static methods here");
for (int c = 0; c < x->number_of_arguments(); c++) {
// Load the argument
LIRItem vitem(x->argument_at(c), this);
vitem.load_item();
// ...and leave it unused.
}
}
LIR_Opr LIRGenerator::call_runtime(Value arg1, address entry, ValueType* result_type, CodeEmitInfo* info) {
LIRItemList args(1);