8308917: C2 SuperWord::output: assert before bailout with CountedLoopReserveKit

Reviewed-by: kvn, thartmann
This commit is contained in:
Emanuel Peter 2023-05-31 13:17:45 +00:00
parent d66b6d8fd2
commit 25b9803056

View File

@ -2664,6 +2664,7 @@ bool SuperWord::output() {
// Create a vector mask node for post loop, bail out if not created
vmask = create_post_loop_vmask();
if (vmask == nullptr) {
// create_post_loop_vmask checks many conditions, any of them could fail
return false; // and reverse to backup IG
}
}
@ -2718,6 +2719,7 @@ bool SuperWord::output() {
if (val == nullptr) {
if (do_reserve_copy()) {
NOT_PRODUCT(if(is_trace_loop_reverse() || TraceLoopOpts) {tty->print_cr("SWPointer::output: val should not be null, exiting SuperWord");})
assert(false, "input to vector store was not created");
return false; //and reverse to backup IG
}
ShouldNotReachHere();
@ -2857,6 +2859,7 @@ bool SuperWord::output() {
if (in1 == nullptr) {
if (do_reserve_copy()) {
NOT_PRODUCT(if(is_trace_loop_reverse() || TraceLoopOpts) {tty->print_cr("SWPointer::output: in1 should not be null, exiting SuperWord");})
assert(false, "input in1 to vector operand was not created");
return false; //and reverse to backup IG
}
ShouldNotReachHere();
@ -2866,6 +2869,7 @@ bool SuperWord::output() {
if (in2 == nullptr) {
if (do_reserve_copy()) {
NOT_PRODUCT(if(is_trace_loop_reverse() || TraceLoopOpts) {tty->print_cr("SWPointer::output: in2 should not be null, exiting SuperWord");})
assert(false, "input in2 to vector operand was not created");
return false; //and reverse to backup IG
}
ShouldNotReachHere();
@ -2939,6 +2943,7 @@ bool SuperWord::output() {
} else {
if (do_reserve_copy()) {
NOT_PRODUCT(if(is_trace_loop_reverse() || TraceLoopOpts) {tty->print_cr("SWPointer::output: Unhandled scalar opcode (%s), ShouldNotReachHere, exiting SuperWord", NodeClassNames[opc]);})
assert(false, "Unhandled scalar opcode (%s)", NodeClassNames[opc]);
return false; //and reverse to backup IG
}
ShouldNotReachHere();