https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64058
--- Comment #12 from rguenther at suse dot de <rguenther at suse dot de> --- On Tue, 8 Mar 2016, law at redhat dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64058 > > --- Comment #11 from Jeffrey A. Law <law at redhat dot com> --- > The underlying randomness of coalescing is inherently due to the instability > of > SSA_NAME_VERSION. If we make SSA_NAME_VERSION stable, then the randomness of > coalescing goes away. > > So I essentially toss away the existing version #s and rebuild them in a walk > over the IL. First assignment gets #1, second assignment gets #2, and so-on. > > That brings relative stability to the version #s, which in turn brings > stability to the coalescer. > > I suspect the existing cases that aren't stable are probably due to default > defs or somesuch. Those don't have assignments and thus are still getting a > pseudo-random SSA_NAME_VERSION after my renumbering. Doesn't making the coalesce sort stable in almost the same stability in the end? Like with the simple counter idea that would basically provide a mapping between old SSA version and a virtual "new" one. I don't think we want to pay the compile-time cost of the rebuild or the churn on SSA names.