This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug optimization/13931] [3.4/3.5 Regression] combiner much slower on big basic blocks


------- Additional Comments From bonzini at gnu dot org  2004-01-30 19:24 -------
It is probably because on powerpc the combination attempts fail, while on i686 
they succeed (there is an increment-a-memory-location instruction).  Gee, the 
timings for PPC are even worse. :-(

As far as the combiner is concerned, it seems to be worst case quadratic in the 
number of succeeded combinations in a basic block.  Maybe it is possible to 
just propagate notes just 50 or 100 instruction behind in the basic block after 
a succeeded combination?  Or maybe it screws up the liveness information?

It may also be ok to simply rerun data-flow analysis after combine (instead of 
doing distribute_notes) after 50 or 100 succeeded combinations.

(I don't have a tree here, otherwise I'd try out these two possibilities).

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[3.4/3.5 Regression]        |[3.4/3.5 Regression]
                   |combiner much slower on big |combiner much slower on big
                   |functions                   |basic blocks


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]