This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/13931] [3.4/3.5 Regression] combiner much slower on big basic blocks
- From: "bonzini at gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Jan 2004 19:24:08 -0000
- Subject: [Bug optimization/13931] [3.4/3.5 Regression] combiner much slower on big basic blocks
- References: <20040130124106.13931.bonzini@gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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