<div dir="ltr">Hi Will!<div><br></div><div>I've made a few improvements in r189577-189578:</div><div>1) now *san symbols are re-generated only if the runtime has changed.</div><div>2) code style checks are now only run as a part of testsuite for sanitizer tools (not when you run make -j20)</div>
<div>3) I've added a bit of parallelism: the execution time of check_lint.sh dropped from 13s to 4s on my machine.</div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 28, 2013 at 8:12 PM, Will Dietz <span dir="ltr"><<a href="mailto:w@wdtz.org" target="_blank">w@wdtz.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Alexey, llvm-commits@,<br>
<br>
Is it possible to avoid the use of "ALL" as the dependency here?<br>
<br>
Presently the lint checking, gen_dynamic_list.py, and dfsan_abilist targets<br>
use this causing these targets to be executed unconditionally.<br>
<br>
This causes around 16s to be used on my machine, even<br>
on a fully up-to-date build.  It's not a big deal for me personally,<br>
but 16s for each build for everyone with compiler-rt in their build tree<br>
does add up.<br>
<br>
Is there some accurate list of dependencies that can be used<br>
or an alternative method for executing these targets only<br>
when something has changed?<br>
<br>
FWIW 'ninja -d explain' shows the following on a fully up-to-date build:<br>
---------------------------------------<br>
$ ninja -d explain<br>
ninja explain: output<br>
projects/compiler-rt/lib/asan/CMakeFiles/clang_rt.asan-x86_64-symbols<br>
doesn't exist<br>
ninja explain: projects/compiler-rt/lib/asan/CMakeFiles/clang_rt.asan-x86_64-symbols<br>
is dirty<br>
ninja explain: projects/compiler-rt/lib/asan/clang_rt.asan-x86_64-symbols<br>
is dirty<br>
ninja explain: output<br>
projects/compiler-rt/lib/sanitizer_common/CMakeFiles/SanitizerLintCheck<br>
doesn't exist<br>
ninja explain: projects/compiler-rt/lib/sanitizer_common/CMakeFiles/SanitizerLintCheck<br>
is dirty<br>
ninja explain: projects/compiler-rt/lib/sanitizer_common/SanitizerLintCheck<br>
is dirty<br>
ninja explain: output<br>
projects/compiler-rt/lib/ubsan/CMakeFiles/clang_rt.ubsan-x86_64-symbols<br>
doesn't exist<br>
ninja explain: projects/compiler-rt/lib/ubsan/CMakeFiles/clang_rt.ubsan-x86_64-symbols<br>
is dirty<br>
ninja explain: projects/compiler-rt/lib/ubsan/clang_rt.ubsan-x86_64-symbols<br>
is dirty<br>
ninja explain: output<br>
projects/compiler-rt/lib/ubsan/CMakeFiles/clang_rt.ubsan_cxx-x86_64-symbols<br>
doesn't exist<br>
ninja explain: projects/compiler-rt/lib/ubsan/CMakeFiles/clang_rt.ubsan_cxx-x86_64-symbols<br>
is dirty<br>
ninja explain: projects/compiler-rt/lib/ubsan/clang_rt.ubsan_cxx-x86_64-symbols<br>
is dirty<br>
ninja explain: output<br>
projects/compiler-rt/lib/tsan/rtl/CMakeFiles/clang_rt.tsan-x86_64-symbols<br>
doesn't exist<br>
ninja explain: projects/compiler-rt/lib/tsan/rtl/CMakeFiles/clang_rt.tsan-x86_64-symbols<br>
is dirty<br>
ninja explain: projects/compiler-rt/lib/tsan/rtl/clang_rt.tsan-x86_64-symbols<br>
is dirty<br>
ninja explain: output<br>
projects/compiler-rt/lib/msan/CMakeFiles/clang_rt.msan-x86_64-symbols<br>
doesn't exist<br>
ninja explain: projects/compiler-rt/lib/msan/CMakeFiles/clang_rt.msan-x86_64-symbols<br>
is dirty<br>
ninja explain: projects/compiler-rt/lib/msan/clang_rt.msan-x86_64-symbols<br>
is dirty<br>
ninja explain: projects/compiler-rt/lib/dfsan/CMakeFiles/dfsan_abilist is dirty<br>
ninja explain: projects/compiler-rt/lib/dfsan/dfsan_abilist is dirty<br>
---------------------------------------<br>
<br>
Thank you for your time,<br>
<br>
~Will<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Aug 28, 2013 at 7:15 AM, Alexey Samsonov <<a href="mailto:samsonov@google.com">samsonov@google.com</a>> wrote:<br>
> Author: samsonov<br>
> Date: Wed Aug 28 07:15:03 2013<br>
> New Revision: 189479<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=189479&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=189479&view=rev</a><br>
> Log:<br>
> Make lint checker script more robust<br>
><br>
> Modified:<br>
>     compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt<br>
>     compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh<br>
><br>
> Modified: compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt?rev=189479&r1=189478&r2=189479&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt?rev=189479&r1=189478&r2=189479&view=diff</a><br>

> ==============================================================================<br>
> --- compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt (original)<br>
> +++ compiler-rt/trunk/lib/sanitizer_common/CMakeLists.txt Wed Aug 28 07:15:03 2013<br>
> @@ -104,7 +104,8 @@ endif()<br>
>  if(UNIX)<br>
>    set(SANITIZER_LINT_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/scripts/check_lint.sh)<br>
>    add_custom_target(SanitizerLintCheck ALL<br>
> -    COMMAND LLVM_CHECKOUT=${LLVM_MAIN_SRC_DIR} SILENT=1 ${SANITIZER_LINT_SCRIPT}<br>
> +    COMMAND LLVM_CHECKOUT=${LLVM_MAIN_SRC_DIR} SILENT=1 TMPDIR=<br>
> +      ${SANITIZER_LINT_SCRIPT}<br>
>      DEPENDS ${SANITIZER_LINT_SCRIPT}<br>
>      COMMENT "Running lint check for sanitizer sources..."<br>
>      VERBATIM)<br>
><br>
> Modified: compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh?rev=189479&r1=189478&r2=189479&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh?rev=189479&r1=189478&r2=189479&view=diff</a><br>

> ==============================================================================<br>
> --- compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh (original)<br>
> +++ compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh Wed Aug 28 07:15:03 2013<br>
> @@ -31,12 +31,12 @@ SANITIZER_INCLUDES_LINT_FILTER=${COMMON_<br>
>  cd ${LLVM_CHECKOUT}<br>
><br>
>  EXITSTATUS=0<br>
> -LOG=$(mktemp)<br>
> +LOG=$(mktemp -q)<br>
><br>
>  run_lint() {<br>
>    FILTER=$1<br>
>    shift<br>
> -  if [ "${SILENT}" == "1" ]; then<br>
> +  if [[ "${SILENT}" == "1" && "${LOG}" != "" ]]; then<br>
>      ${CPPLINT} --filter=${FILTER} "$@" 2>>$LOG<br>
>    else<br>
>      ${CPPLINT} --filter=${FILTER} "$@"<br>
> @@ -97,7 +97,8 @@ for FILE in $FILES; do<br>
>  done<br>
><br>
>  if [ "$EXITSTATUS" != "0" ]; then<br>
> -  cat $LOG | grep -v "Done processing" | grep -v "Total errors found"<br>
> +  cat $LOG | grep -v "Done processing" | grep -v "Total errors found" \<br>
> +    grep -v "Skipping input"<br>
>  fi<br>
><br>
>  exit $EXITSTATUS<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div>
</div></div></div>