This is the mail archive of the
mailing list for the GCC project.
Re: About the is_gimple_min_invariant predicate
> We never insert expressions for FRE, and the replacement we do will
> only replace the entire RHS with an SSA_NAME or a constant.
The problem is precisely that the expression is deemed a constant:
/* Setting value numbers to constants will occasionally
screw up phi congruence because constants are not
uniquely associated with a single ssa name that can be
looked up. */
if (simplified && is_gimple_min_invariant (simplified)
&& TREE_CODE (lhs) == SSA_NAME
&& simplified != rhs)
VN_INFO (lhs)->expr = simplified;
VN_INFO (lhs)->has_constants = true;
changed = set_ssa_val_to (lhs, simplified);