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