Yeah, not sure, sorry - I don't often do performance measurements of Clang.
Don's advice is probably about right. On Wed, Mar 23, 2016 at 5:29 AM, jps...@gmail.com <jps...@gmail.com> wrote: > Hi Don and David, just wanted to see if you guys had any quick thoughts on > any of this before I just resign to live with a 35% slower clang than I'm > used to (it's possible that the previous version from Xcode is much slimmed > down or otherwise very carefully tuned in some way). > > Thank you, > Jim > > On Fri, Mar 18, 2016 at 9:42 AM, jps...@gmail.com <jps...@gmail.com> > wrote: > >> David and Don, thanks for your tips. We're making progress as the new >> clang is only about 35% slower instead of 50% slower, but not quite at >> parity yet. Here's what I did: >> >> 1. deleted everything and started over, as Don suggested (I just checked >> out the source code from scratch again) >> >> 2. configured with cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release >> -DLLVM_ENABLE_ASSERTIONS=OFF ../llvm >> >> 3. built >> >> Now I'm seeing that clang-tidy --verbose correctly says this new version >> doesn't have assertions enabled, and is optimized (for some reason >> clang-tidy shows more details than clang when passing --verbose): >> >> clang-tidy --version >> LLVM (http://llvm.org/): >> LLVM version 3.9.0svn >> Optimized build. >> Built Mar 17 2016 (16:05:27). >> Default target: x86_64-apple-darwin15.0.0 >> Host CPU: westmere >> >> However, when doing my benchmarking with the xcode version of clang >> (3.7), it's still about 35% faster than my newly compiled version: >> >> Benchmarking compiling about 20 C++ files: >> Original from xcode (3.7): 27s >> >> New from svn (3.9): 37s >> >> >> I also noticed that the new clang binary is significantly larger than the >> original one. I'm sharing this as it may provide some clues to what's going >> on. I'm happy to grep for symbols if that would also be helpful. >> >> ORIGINAL FROM XCODE (3.7): >> ls -ltah >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang >> -rwxr-xr-x 1 root wheel 42M Sep 22 19:25 >> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang >> >> NEW FROM SVN (3.9): >> ls -ltah /Users/jim/toolchains/llvm/bin/clang-3.9 >> -rwxr-xr-x 1 jim staff 54M Mar 17 17:00 >> /Users/jim/toolchains/llvm/bin/clang-3.9 >> >> >> Anyone have any ideas on anything else to try to get my newly compiled >> clang-3.9 as fast as my system-installed clang-3.7? Are there additional >> options I should be passing to configure the cmake files, other than >> Release and turning off LLVM assertions? >> >> Thanks very much. >> >> Jim >> >> >> >> >> >> >> >> On Thu, Mar 17, 2016 at 12:19 PM, don hinton <hinto...@gmail.com> wrote: >> >>> It looks like you are rerunning cmake without first removing the cache, >>> CMakeCache.txt. Since the option () command that sets >>> LLVM_ENABLE_ASSERTIONS didn't include FORCE, the previous cached value is >>> preserved. >>> >>> Therefore, I'd recommend always removing the cache -- I actually blow >>> away the entire directory tree -- and starting from scratch. >>> >>> To ensure (re)builds don't take too long, I also use ccache. Although >>> it works great for llvm, clang, etc..., it does break the libcxx and >>> libcxxabi tests under check-all, but I've submitted a couple trivial >>> patches that fix that problem. >>> >>> hth... >>> don >>> On Mar 17, 2016 11:26 AM, "David Blaikie via cfe-users" < >>> cfe-users@lists.llvm.org> wrote: >>> >>>> >>>> >>>> On Wed, Mar 16, 2016 at 3:36 PM, jps...@gmail.com <jps...@gmail.com> >>>> wrote: >>>> >>>>> >>>>> >>>>> On Wed, Mar 16, 2016 at 5:55 PM, David Blaikie <dblai...@gmail.com> >>>>> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Wed, Mar 16, 2016 at 2:12 PM, jps...@gmail.com <jps...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> David and all, a couple more questions. I stumbled upon >>>>>>> http://llvm.org/docs/Packaging.html and see a few other options. >>>>>>> For a typical clang build where I am not hacking on clang, but I do want >>>>>>> good error messages for debugging my programs, >>>>>>> >>>>>> >>>>>> Define "my programs" - are you using LLVM as a library? If so, you >>>>>> probably want a with-asserts build for development so you get better >>>>>> failures when you use LLVM incorrectly. If you're just using Clang as a >>>>>> normal compiler - a build without assertions should be just fine. If you >>>>>> hit a crash in the compiler you can still file it, and we'll run in with >>>>>> an >>>>>> assertions-enabled build to investigate further, generally. >>>>>> >>>>> >>>>> Just using clang (and clang tools) -- not using LLVM as a library. So, >>>>> running without assertions seems right for my needs. >>>>> >>>>> >>>>>> >>>>>> >>>>>>> which options are recommended [1]? It seems like I should use >>>>>>> --disable-assertions, but I'm not sure about enable-debug-symbols and >>>>>>> enable-optimized (which seem at odds with each other?). >>>>>>> >>>>>> >>>>>> If you're using LLVM as a library, but not expecting to be able to >>>>>> fix any bugs in it yourself, probably optimized with assertiotns and >>>>>> without debug info should be fine. >>>>>> >>>>>> If you're just using clang as a compiler, release (optimized), no >>>>>> assertions, no debug info. >>>>>> >>>>>> >>>>> >>>>> It seems that just enabling -DCMAKE_BUILD_TYPE=Release is not >>>>> sufficient to turn off assertions as I tried that and when I run >>>>> clang-tidy >>>>> --version it says " LLVM version 3.9.0svn; Optimized build with >>>>> assertions." So, I'm going to try --disable-assertions >>>>> --enable-optimized --disable-debug-symbols (or the environment >>>>> variable equivalents). >>>>> >>>>> That seem right to you? >>>>> >>>> >>>> Yeah, sounds about right. >>>> >>>> >>>>> It's still confusing to me that there's no CMAKE_BUILD_TYPE that >>>>> enables these sorts of options as a bundle, but I guess that's what I get >>>>> from compiling from source. >>>>> >>>> >>>> Yeah - not sure what the right recipe is for building things the same >>>> as the official releases. No doubt it's written down somewhere... >>>> >>>> >>>>> >>>>> Thanks >>>>> Jim >>>>> >>>>> >>>>> >>>>> >>>>>> [1] >>>>>> >>>>>>> --disable-assertions--enable-debug-symbols--enable-optimized >>>>>>> [2] >>>>>>> >>>>>>> $ clang --version >>>>>>> >>>>>>> clang version 3.9.0 (trunk 263648) >>>>>>> >>>>>>> Target: x86_64-apple-darwin15.0.0 >>>>>>> >>>>>>> Thread model: posix >>>>>>> >>>>>>> InstalledDir: /Users/jim/toolchains/llvm/bin >>>>>>> >>>>>>> On Wed, Mar 16, 2016 at 2:05 PM, jps...@gmail.com <jps...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Got it -- thanks! >>>>>>>> >>>>>>>> >>>>>>>> On Wednesday, March 16, 2016, David Blaikie <dblai...@gmail.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Mar 16, 2016 at 7:25 AM, jps...@gmail.com via cfe-users < >>>>>>>>> cfe-users@lists.llvm.org> wrote: >>>>>>>>> >>>>>>>>>> Hi, I recently installed "Release" clang (svn r263305) from >>>>>>>>>> source on my OSX machine, and it's compiling a 20 file C++ program >>>>>>>>>> about >>>>>>>>>> 50% slower than the natively installed clang 3.7 (that came with >>>>>>>>>> xcode, I >>>>>>>>>> believe, although I don't use xcode). I currently have both sets of >>>>>>>>>> tools >>>>>>>>>> installed and am able to switch back and forth and verify using time >>>>>>>>>> that >>>>>>>>>> clang 3.7 takes about 30 seconds and clang 3.9 takes about 45 >>>>>>>>>> seconds, on >>>>>>>>>> average (all flags, settings, etc. are the same for both). I did >>>>>>>>>> build with >>>>>>>>>> "Release" as the build type, although I also did set >>>>>>>>>> DLLVM_ENABLE_ASSERTIONS=ON (could this be the problem?). >>>>>>>>>> >>>>>>>>> >>>>>>>>> Yes, the build system should print a warning telling you that an >>>>>>>>> assertions enabled build can be up to ten times slower. Performance >>>>>>>>> comparisons/measurements of an assertions enabled compiler aren't >>>>>>>>> something >>>>>>>>> we really do/tune for. >>>>>>>>> >>>>>>>>> >>>>>>>>>> More details below. Please let me know if you have any ideas >>>>>>>>>> about why this newer clang would be noticable slower. >>>>>>>>>> >>>>>>>>>> Generally, I'm just trying to use clang as a user, not a clang >>>>>>>>>> developer, so if you have general recommendations for how to >>>>>>>>>> configure >>>>>>>>>> this, please let me know. >>>>>>>>>> >>>>>>>>>> Thank you, >>>>>>>>>> Jim >>>>>>>>>> >>>>>>>>>> How I configured and installed: >>>>>>>>>> >>>>>>>>>> cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release >>>>>>>>>> -DLLVM_ENABLE_ASSERTIONS=ON ../llvm >>>>>>>>>> make >>>>>>>>>> cmake -DCMAKE_INSTALL_PREFIX=$CLANG_PREFIX -P cmake_install.cmake >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Here are some specifics: >>>>>>>>>> >>>>>>>>>> $ uname -a >>>>>>>>>> Darwin localhost 15.0.0 Darwin Kernel Version 15.0.0: Wed Aug 26 >>>>>>>>>> 16:57:32 PDT 2015; root:xnu-3247.1.106~1/RELEASE_X86_64 x86_64 >>>>>>>>>> >>>>>>>>>> $ clang --version >>>>>>>>>> clang version 3.9.0 (trunk 263305) >>>>>>>>>> Target: x86_64-apple-darwin15.0.0 >>>>>>>>>> Thread model: posix >>>>>>>>>> InstalledDir: /Users/jim/toolchains/llvm/bin >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> cfe-users mailing list >>>>>>>>>> cfe-users@lists.llvm.org >>>>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>>> _______________________________________________ >>>> cfe-users mailing list >>>> cfe-users@lists.llvm.org >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users >>>> >>>> >> >
_______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users