> 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); goto done; } -- Eric Botcazou