This is the mail archive of the gcc@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]

Re: [tree-ssa] Preliminary analysis on POOMA slow downs (was Re: [tree-ssa] Speed up constant propagation)



On Tuesday, June 17, 2003, at 01:07 PM, Diego Novillo wrote:


[ moved from gcc-patches@ ]

On Tue, 2003-06-17 at 07:38, Richard Guenther wrote:

Its src/Field/tests/Cartesian.cpp which you dont have, because thats in my
local tree ;) A preprocessed file is at


http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/Cartesian.ii.gz

Thanks Richard. There are a few interesting things in this program.

It exposes quite clearly the performance problems with type-based
aliasing.  If you compile the test with -ftree-points-to=andersen you
should see ~18% speed up in compilation time.

I've got the final patch to PTA i'm about to apply, which does 2 things.
1. It makes it pass all regression tests for all languages but Ada (I don't have gnat installed) with PTA enabled by default.
2. It will make it significantly faster for queries (which are counted in the "tree alias analysis" time, i believe). The query slowdown was recent, only when i started making it work for C++ did i remove a few optimizations i can put back in a slightly different form. It's actually all call overhead for calls to decl_function_context.




The program also exposes some other differences. Here, I'm going to compare tree-ssa with PTA enabled vs mainline. The listing only includes passes common with mainline where tree-ssa is noticeably different, so the TOTAL line doesn't add up (all times are USR secs):

mainline tree-ssa % slowdown

varconst              :   0.12         9.30        7650%
global CSE            :   2.48        29.65        1095%
integration           :   2.93        22.00         650%
global alloc          :   3.40        19.31         468%
garbage collection    :   1.70         7.65         350%
scheduling 2          :   1.22         3.11         155%
loop analysis         :   3.04         6.41         110%
parser                :   7.00        10.43          49%
name lookup           :   6.28         7.52          20%
branch prediction     :   4.08         2.49         -39%
jump                  :   3.62         1.94         -46%
reload CSE regs       :   1.92         0.89         -53%
local alloc           :   6.81         3.12         -54%
expand                :  15.06         5.18         -65%
combiner              :   4.59         1.04         -77%
TOTAL                 :  92.60       220.32         138%

I'm a bit surprised that the inliner is taking such a big hit.


Hrmmmmm.
Remember we downed INSNS_PER_STMT (tree-inline.c), which increases the amount of inlining done.
That was done only considering the effects of GIMPLE on C (and even then, it was a while ago).
It might need reevaluation in light of C++ gimplification, etc.


Try setting it to 5 and see what happens.


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