[cfe-dev] llvm.org pre-built clang significantly slower than apple/xcode clang

David Blaikie via cfe-dev cfe-dev at lists.llvm.org
Tue Nov 20 06:39:51 PST 2018


I don't know about what sort of secret sauce apple may have (& they won't
necessarily be able to talk about it) - though mostly I believe they have
fun tional rather than performance patches.

Profile guided optimisation is likely important - Google uses it internally
for compiler releases too.

On Tue, Nov 20, 2018, 6:56 AM Tobias Hieta via cfe-dev <
cfe-dev at lists.llvm.org wrote:

> Hello LLVM/Clang developers,
>
> We recently switched to use the same clang version on all our platforms.
> This included switching from apple-clang from xcode to a pre-built binary
> we downloaded from llvm.org. We noticed that this actually came with a
> pretty big performance regression in compile times.
>
> If we do the simplest test program like this:
>
> #include <string>
> #include <iostream>
> int main()
> {
>     std::cout << "Hello world" << std::endl;
> }
>
> and compile that with Xcode Clang (Xcode 10.1 apple-clang
> clang-1000.11.45.5):
> clang++ test.cpp -o test  0.31s user 0.06s system 97% cpu 0.380 total
>
> with clang 7 binaries found on llvm.org 7.0.0:
> ~/Downloads/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang++ -o test
> test.cpp  0.53s user 0.11s system 62% cpu 1.032 total
>
> If we now run that on our whole project:
> with xcode clang:
> 368.17s user 32.00s system 663% cpu 1:00.30 total
>
> with clang 7:
> 423.31s user 31.65s system 662% cpu 1:08.69 total
>
> That's a pretty hefty difference. Any ideas what can account for this
> discrepancy? Does apple-clang contain any special patches or build flags
> that differ a lot from the binaries on llvm.org?
>
> I know about PGO - and I guess the best we could do is to get profile data
> out of compiling my whole tree and use that when building clang - but this
> process seems not very well documented and unsure if this would even help.
>
> Thankful for any ideas or feedback.
> Tobias
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20181120/dae09055/attachment.html>


More information about the cfe-dev mailing list