------- 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