[LLVMdev] -fplugin-arg-dragonegg-enable-gcc-optzns impact

Jack Howarth howarth at bromo.med.uc.edu
Fri Apr 15 06:57:07 PDT 2011


On Fri, Apr 15, 2011 at 08:53:19AM +0200, Duncan Sands wrote:
> Hi Jack,
> 
> >    Now that dragoneegg is robust in its default usage and the dragonegg svn
> > is moderately stable with -fplugin-arg-dragonegg-enable-gcc-optzns, it is
> > possible to gauge the impact of that feature. Comparing clang 2.9, FSF gcc 4.5.3svn,
> > FSF gcc 4.6.0 and dragonegg svn with FSF gcc 4.5.3svn using the himenoBMTxpa benchmark,
> > the enhancement to code performance from -fplugin-arg-dragonegg-enable-gcc-optzns is
> > clear on x86_64-apple-darwin10 for -fomit-frame-pointer -O3 -ffast-math -funroll-loops...
> >
> > compiler                             MFLOPS
> > clang 2.9                           230.529385
> > gcc 4.5.3                           246.064891
> > de-gcc 4.5.3                        204.845864
> > de-gcc 4.5.3 optzns                 259.672855
> > gcc 4.6.0                           260.344783
> >
> > Pretty impressive.
> 
> interesting results.  It needs some analysis to work out where the extra juice
> is coming from though, in particular to distinguish between effects coming from
> LLVM's IR level optimizations and those coming from its code generators.

Duncan,
   This gets even more interesting.

de-gcc45 -fomit-frame-pointer -O3                                            205.738266
de-gcc45 -fomit-frame-pointer -O3 -fplugin-arg-dragonegg-enable-gcc-optzns   267.066124
de-gcc45 -fomit-frame-pointer -O2                                            206.015974
de-gcc45 -fomit-frame-pointer -O2 -fplugin-arg-dragonegg-enable-gcc-optzns   276.676232
gcc-fsf-4.5 -fomit-frame-pointer -O2                                         239.868551
gcc-fsf-4.6 -fomit-frame-pointer -O2                                         248.147753
llvm-clang -fomit-frame-pointer -O2                                          226.756189

So the enhancement from -fplugin-arg-dragonegg-enable-gcc-optzns doesn't appear due
to optimizations added between -O2 and -O3. It also is interesting that -O2 outperforms
-O3 with -fplugin-arg-dragonegg-enable-gcc-optzns. I assume that the llvm and FSF gcc
optimizations must be at cross purposes somewhere there.
              Jack

> 
> Ciao, Duncan.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



More information about the llvm-dev mailing list