LLVM also has a link time optimization, is it on by default in LLVM, or do
we need to benchmark with it enabled explicitly?

Alex


On Sun, Sep 8, 2013 at 8:17 AM, Armin Rigo <ar...@tunes.org> wrote:

> Hi again,
>
> On Sun, Sep 8, 2013 at 9:42 AM, Armin Rigo <ar...@tunes.org> wrote:
> > We've been suitably impressed by the results on the new llvm backend
> > during the sprint (well, or suitably un-impressed by both gcc and
> > clang's failure to reconstruct the SSA meaning of the C code).
>
> I have investigated a bit more and it's quite unclear that this would
> be the source of the difference.  It seems that the "-flto" option of
> gcc, enabling link-time optimization, actually gives very good
> improvements over the same compilation without this option --- some
> 11-14%, more so than, say, the typical 5% reported with CPython.  If I
> had to guess, I'd say it is because of the particularly disorganized
> kind of C code produced by RPyhon.
>
> About the llvm backend, one detail hints that it might be the reason
> for the speed improvement: the fact that the current llvm backend
> produces most of the source code in a single file.  This may be what
> gives llvm extra room for improvements.  This is precisely the same
> room for improvement that "-flto" also gives gcc, considering that we
> generate many C files with never-"static" functions.
>
> I tried to compile a no-jit version of PyPy from the
> llvm-translation-backend branch, for comparison, but this fails right
> now with "NotImplementedError: v585190 = debug_offset()".  It
> successfully compiles targetrpystonedalone (in -O2 mode), though.  I
> get the following results (with the argument "100000000"):
>
>     plain gcc 4.7.3:  1.95 seconds
>     llvm 3.3:  1.75 seconds
>     gcc with -flto:  1.66 seconds
>
> If we get similar results on the whole PyPy, then I fear the llvm
> backend is going back to where it already went to several time: "not
> useful enough".  We can simply add the -flto flag to the generated
> Makefiles.  Manuel, do you feel like trying to compare?  I'm modifying
> the Makefile manually as follows:
>
>     CFLAGS = ......  -flto -fno-fat-lto-objects
>     LDFLAGS = .....  -flto=8 -O3
>
>
> A bientôt,
>
> Armin.
> _______________________________________________
> pypy-dev mailing list
> pypy-dev@python.org
> https://mail.python.org/mailman/listinfo/pypy-dev
>



-- 
"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
GPG Key fingerprint: 125F 5C67 DFE9 4084
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to