[Bug tree-optimization/95649] [11 Regression] ICE during GIMPLE pass: cunroll since r11-1146-g1396fa5b91cfa0b3
aldyh at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 16 11:56:46 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95649
--- Comment #7 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
Hmmm, previous code propagating into PHI args had:
- if (vr->singleton_p (&val) && may_propagate_copy (arg, val))
- propagate_value (use_p, val);
We seem to have lost the check for constants, and we're now propagating any old
value from get_value_range-- which may be another SSA name:
+ if (val && may_propagate_copy (arg, val))
+ propagate_value (use_p, val);
Testing the following:
diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c
index 4fda296ef9e..01ee7fd33eb 100644
--- a/gcc/tree-ssa-propagate.c
+++ b/gcc/tree-ssa-propagate.c
@@ -1035,7 +1035,8 @@ substitute_and_fold_engine::propagate_into_phi_args
(basic_block bb)
|| virtual_operand_p (arg))
continue;
tree val = get_value (arg, phi);
- if (val && may_propagate_copy (arg, val))
+ if (val && is_gimple_min_invariant (val)
+ && may_propagate_copy (arg, val))
propagate_value (use_p, val);
}
}
More information about the Gcc-bugs
mailing list