[LLVMdev] -fplugin-arg-dragonegg-enable-gcc-optzns impact
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.
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.
> Ciao, Duncan.
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev