<div dir="ltr">It seems the time might be spent running the analyzer, which is reported to be slower than compilation (<a href="http://clang-analyzer.llvm.org/">http://clang-analyzer.llvm.org/</a> ).<div><br></div><div>For now, I am using -clang-analyzer-* to disable these checks.</div><div><br></div><div>Thanks,</div><div>Hongping</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 24, 2016 at 9:16 AM, Hongping Lim <span dir="ltr"><<a href="mailto:hongping.lim@gmail.com" target="_blank">hongping.lim@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="font-size:12.8px">1. If you don't have the right isysroot, you probably get actual compiler errors, and clang-tidy checks will not run</div><div style="font-size:12.8px">2. It might be that the transitive closure of includes is just very large when the TU takes long to process, but that'd need some more detailed benchmarking</div></blockquote><div><br></div></span><div>Thanks for the reply.</div><div><br></div><div>Is there some way to list the headers processed, and how much time they incur?</div><div><br></div><div>I tried copying all the #imports used by the file that takes a longer time into the file that takes less time, and the amount of time taken didn't change. It seems the actual code used in the source file might also affect which header files are processed?</div><div><br></div><div>Thanks,</div><div>Hongping</div><div> </div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 24, 2016 at 1:23 AM, Manuel Klimek <span dir="ltr"><<a href="mailto:klimek@google.com" target="_blank">klimek@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><br><div class="gmail_quote"><span><div dir="ltr">On Sat, Jan 23, 2016 at 5:06 AM Hongping Lim via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Actually it seems "--" without anything after just means to not have any compile options at all?<div><br></div><div>I went through the options in my compile_command.json file, and it seems this isysroot option is what is causing the command to be slow for this particular source file. If I remove it then the command runs quickly.</div><div><br></div><div>-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk<br></div><div><br></div><div>However, with the same compile options including the above isysroot option, running on another source file that I have which is 2200 lines, and causes 735 warnings in non-user code as well, clang-tidy takes less than one second.</div></div></blockquote><div><br></div></span><div>1. If you don't have the right isysroot, you probably get actual compiler errors, and clang-tidy checks will not run</div><div>2. It might be that the transitive closure of includes is just very large when the TU takes long to process, but that'd need some more detailed benchmarking</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div><br></div><div>Thanks,</div><div>Hongping</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 22, 2016 at 7:42 PM, Hongping Lim <span dir="ltr"><<a href="mailto:hongping.lim@gmail.com" target="_blank">hongping.lim@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have managed to build a release version of clang-tidy on my Mac, and checked that it is optimized with --version.<div><br></div><div>~/llvm-build/bin/clang-tidy --version<br></div><div><div>LLVM (<a href="http://llvm.org/" target="_blank">http://llvm.org/</a>):</div><div>LLVM version 3.8.0svn</div><div>Optimized build.</div><div>Built Jan 15 2016 (13:18:26).</div><div>Default target: x86_64-apple-darwin15.0.0</div><div>Host CPU: broadwell</div></div><div><br></div><div><br></div><div>I am working with an Objective-C project in Xcode, and have managed to generate the required compile_commands.json file using xcodebuild/xcpretty, and am able to run it.</div><div><br></div><div>When I run it on a single file that has 2700 lines with just the compile_commands.json file (stripped down to just one command), it takes clang-tidy around 23 seconds to complete.</div><div><br></div><div>~/llvm-build/bin/clang-tidy MyFile.m</div><div><div>...</div><div>Suppressed 719 warnings (719 in non-user code).</div><div>Use -header-filter=.* to display errors from all non-system headers.</div></div><div><br></div><div>If I run the same command with "--", then it is much faster.</div><div><div>~/llvm-build/bin/clang-tidy MyFile.m --</div><div>...</div></div><div><div>Suppressed 6 warnings (6 in non-user code).</div><div>Use -header-filter=.* to display errors from all non-system headers.</div></div><div><br></div><div><br></div><div><br></div><div>It seems the difference is that with --, some header files aren't processed? If I am just interested in errors in the specific file I am running on, is using -- the right thing to do?</div><div><br></div><div>Thanks,</div><div>Hongping</div><div><br></div></div>
</blockquote></div><br></div></div></div>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>