https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123070
--- Comment #19 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #18) > So without make_forwarders_with_degenerate_phis cse2 (in the newest > testcase) removes the overlapping live ranges. Without we get this EBB set: ;; Following path with 8 sets: 4 5 7 But with we get this EBB set: ;; Following path with 7 sets: 5 6 New BB 5/6 is the same as the without BB 4/5. (without) BB 7 is an look exit which returns 0. Which seems to be ok. Since 5/6 contains the set of 98 and the 2 uses of 100 which we want to change to 98. But There is not enough debug dumps for CSE to understand why the use of reg 100 in BB6 was not changed to reg 98. Still debugging. I am not 100% sure if this is the cause of the other performance regressions. It definitely could cause extra spilling too.
