Skip to content
This repository has been archived by the owner on Sep 2, 2022. It is now read-only.


Browse files Browse the repository at this point in the history
8269746: C2: assert(!in->is_CFG()) failed: CFG Node with no controlli…
…ng input?

Reviewed-by: chagedorn, thartmann
  • Loading branch information
rwestrel committed Jul 8, 2021
1 parent c812bbb commit 8f798b8
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/hotspot/share/opto/callnode.cpp
Expand Up @@ -1411,8 +1411,14 @@ Node *SafePointNode::Ideal(PhaseGVN *phase, bool can_reshape) {
Node* SafePointNode::Identity(PhaseGVN* phase) {

// If you have back to back safepoints, remove one
if( in(TypeFunc::Control)->is_SafePoint() )
return in(TypeFunc::Control);
if (in(TypeFunc::Control)->is_SafePoint()) {
Node* out_c = unique_ctrl_out();
// This can be the safepoint of an outer strip mined loop if the inner loop's backedge was removed. Replacing the
// outer loop's safepoint could confuse removal of the outer loop.
if (out_c != NULL && !out_c->is_OuterStripMinedLoopEnd()) {
return in(TypeFunc::Control);

// Transforming long counted loops requires a safepoint node. Do not
// eliminate a safepoint until loop opts are over.
Expand Down

1 comment on commit 8f798b8

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.