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.

Reply via email to