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: GCC-4.5.0 comparison with previous releases and LLVM-2.7 on SPEC2000 for x86/x86_64


> Some text size measurement.
> 
> Summary:
> 1) LTO with -O3 bloats up code considerably;
Yes, you need either -fwhole-program or -fuse-linker-plugin to make it behave
sanely.  

For Mozilla I have best experience with -fuse-linker-plugin --param
inline-unit-growth=5 That gives me about 16% code size savings (so LTO -O3 is
same size as -Os).  This means that it is smaller than -O2+LTO+-fwhole-program.

> 2) LTO with -O2 reduces text size compared with -O2

An more so with -fwhole-program as you noticed ;)

> 3) Google 4.4.3 based compiler is really effective in reducing C++
> program size -- this is where the focus of the tuning was done.
> Witnessed by eon in SPEC2k and all C++ apps in SPEC06

Again, I would be very interested to see the patches (and sooner than later
given tham I am re-tunning inliner for 4.6 now). Looking at Mozilla I also
concluded that we have a lot of room for improvement.  How old is the tree you
use for testing?  I recently improved code size somewhat at mainline.

> 
> SPEC06 C++ program Data (the first data column is the TOT O2 base number)
> 
> 1. TOT O3 vs TOT O2 ( 3.35% total increase)
> 
>         471.omnetpp/    853708    867988      1.67%
>          450.soplex/    643273    656349         2.03%
>       483.xalancbmk/   3634416   3777600      3.94%
>            444.namd/    393142    402038        2.26%
>           473.astar/    102182    111038          8.67%
>             size_sum   5626721   5815013      3.35%
> 
> 2. TOT LTO+whole program + O3 vs TOT O2 (0.35% total increase)
> 
>         471.omnetpp/    853708    937728      9.84%
>          450.soplex/    643273    654057      1.68%
>       483.xalancbmk/   3634416   3540646     -2.58%
>            444.namd/    393142    401318      2.08%
>           473.astar/    102182    112538     10.13%
>             size_sum   5626721   5646287      0.35%
> 
> 3. TOT LTO+whole program + O2 vs TOT O2 (8.10% total reduction)
> 
>         471.omnetpp/    853708    822868     -3.61%
>          450.soplex/    643273    611653     -4.92%
>       483.xalancbmk/   3634416   3245157    -10.71%
>            444.namd/    393142    391698     -0.37%
>           473.astar/    102182     99586     -2.54%
>             size_sum   5626721   5170962     -8.10%
> 
> 4. google 4.4.3 compiler  O2 vs TOT O2 (13.95% total reduction)
> 
>         471.omnetpp/    853708    545840    -36.06%
>          450.soplex/    643273    374674    -41.76%
>       483.xalancbmk/   3634416   3556306     -2.15%
>            444.namd/    393142    329897    -16.09%
>           473.astar/    102182     35301    -65.45%
>             size_sum   5626721   4842018    -13.95%

Hmm, this really seems interesting. Why the changes was not contributed this stage1?

Honza


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