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

Tobias Hieta via cfe-dev cfe-dev at lists.llvm.org
Tue Nov 20 03:56:01 PST 2018


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20181120/41454f81/attachment.html>


More information about the cfe-dev mailing list