------- Comment #106 from dberlin at gcc dot gnu dot org  2009-02-21 22:34 
-------
Subject: Re:  [4.3/4.4 Regression] Inordinate 
        compile times on large routines

Right.
Basically, the value numbering PRE uses as a pre-pass is known as SCCVN.
It value numbers by doing a depth first search over the SSA variables,
iterating only over cycles (which end up forming Strongly Connected
Components in this graph).
In your case, you end up with a strongly connected component
containing 46000 variables.  Value numbering gives up at that point
(one value numbering gives up, PRE gives up as well).
The SCC finding algorithm is linear (the value numbering algorithm is
not) but the constant can be large sometimes.
My guess is that in this case, we are wasting time in the vec pushing
or something.
I haven't profiled it.

On Sat, Feb 21, 2009 at 2:04 PM, steven at gcc dot gnu dot org
<gcc-bugzi...@gcc.gnu.org> wrote:
>
>
> ------- Comment #105 from steven at gcc dot gnu dot org  2009-02-21 19:04 
> -------
> SCC as in SCCVN
> DFS = Depth First Search
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854
>
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854

Reply via email to