https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64164
Andrew Macleod <amacleod at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amacleod at redhat dot com --- Comment #8 from Andrew Macleod <amacleod at redhat dot com> --- (In reply to Alexandre Oliva from comment #6) > > Coalescing SSA names even when neither has a root removes the optimization > differences for this testcase. I would worry about side effects... Coalescing is always a balancing act. If you allow things to coalesce when neither has a root, a few of those coalesced together may prevent a coalesce with a much more desirable root in other programs. And of course more coalesces may mean longer live ranges... so any changes like this need a lot of studying of side effects on a much larger set of problems. It was a long time ago, so I don't remember the reasons, but most of these kinds of restrictions were rooted in some kind of rationale... usually from examining an issue of some sort and introducing the restriction to avoid it. The original conditions may no longer exist, but we'd have to run tests to make sure nothing shows up. Perhaps tweaking the costing model could help too.