8290964: C2 compilation fails with assert "non-reduction loop contains reduction nodes"

Reviewed-by: thartmann, chagedorn
This commit is contained in:
Roberto Castañeda Lozano 2022-10-05 09:43:31 +00:00
parent b4e74aeabf
commit 4bdd1c9148
3 changed files with 0 additions and 21 deletions

@ -3901,17 +3901,6 @@ uint IdealLoopTree::est_loop_flow_merge_sz() const {
return 0;
}
#ifdef ASSERT
bool IdealLoopTree::has_reduction_nodes() const {
for (uint i = 0; i < _body.size(); i++) {
if (_body[i]->is_reduction()) {
return true;
}
}
return false;
}
#endif // ASSERT
#ifndef PRODUCT
//------------------------------dump_head--------------------------------------
// Dump 1 liner for loop header info

@ -778,11 +778,6 @@ public:
void remove_main_post_loops(CountedLoopNode *cl, PhaseIdealLoop *phase);
#ifdef ASSERT
// Tell whether the body contains nodes marked as reductions.
bool has_reduction_nodes() const;
#endif // ASSERT
#ifndef PRODUCT
void dump_head() const; // Dump loop head only
void dump() const; // Dump this loop recursively

@ -2453,11 +2453,6 @@ bool SuperWord::output() {
return false;
}
// Check that the loop to be vectorized does not have inconsistent reduction
// information, which would likely lead to a miscompilation.
assert(!lpt()->has_reduction_nodes() || cl->is_reduction_loop(),
"non-reduction loop contains reduction nodes");
#ifndef PRODUCT
if (TraceLoopOpts) {
tty->print("SuperWord::output ");