[compiler-rt] r189578 - [sanitizer] Parallelize lint checker script

Alexey Samsonov samsonov at google.com
Thu Aug 29 04:35:01 PDT 2013


Author: samsonov
Date: Thu Aug 29 06:35:01 2013
New Revision: 189578

URL: http://llvm.org/viewvc/llvm-project?rev=189578&view=rev
Log:
[sanitizer] Parallelize lint checker script

Modified:
    compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh

Modified: compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh?rev=189578&r1=189577&r2=189578&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh (original)
+++ compiler-rt/trunk/lib/sanitizer_common/scripts/check_lint.sh Thu Aug 29 06:35:01 2013
@@ -33,74 +33,82 @@ SANITIZER_INCLUDES_LINT_FILTER=${COMMON_
 cd ${LLVM_CHECKOUT}
 
 EXITSTATUS=0
-LOG=$(mktemp -q)
+ERROR_LOG=$(mktemp -q)
 
 run_lint() {
   FILTER=$1
   shift
-  if [[ "${SILENT}" == "1" && "${LOG}" != "" ]]; then
-    ${CPPLINT} --filter=${FILTER} "$@" 2>>$LOG
-  else
-    ${CPPLINT} --filter=${FILTER} "$@"
-  fi
+  TASK_LOG=$(mktemp -q)
+  ${CPPLINT} --filter=${FILTER} "$@" 2>$TASK_LOG
   if [ "$?" != "0" ]; then
-    EXITSTATUS=1
+    cat $TASK_LOG | grep -v "Done processing" | grep -v "Total errors found" \
+      | grep -v "Skipping input" >> $ERROR_LOG
+  fi
+  if [[ "${SILENT}" != "1" ]]; then
+    cat $TASK_LOG
   fi
 }
 
 run_lint ${LLVM_LINT_FILTER} --filter=${LLVM_LINT_FILTER} \
   lib/Transforms/Instrumentation/*Sanitizer.cpp \
-  lib/Transforms/Utils/SpecialCaseList.cpp
+  lib/Transforms/Utils/SpecialCaseList.cpp &
 
 COMPILER_RT=projects/compiler-rt
 # Headers
 SANITIZER_INCLUDES=${COMPILER_RT}/include/sanitizer
-run_lint ${SANITIZER_INCLUDES_LINT_FILTER} ${SANITIZER_INCLUDES}/*.h
+run_lint ${SANITIZER_INCLUDES_LINT_FILTER} ${SANITIZER_INCLUDES}/*.h &
 
 # Sanitizer_common
 COMMON_RTL=${COMPILER_RT}/lib/sanitizer_common
 run_lint ${COMMON_RTL_INC_LINT_FILTER} ${COMMON_RTL}/*.{cc,h} \
-                                       ${COMMON_RTL}/tests/*.cc
+                                       ${COMMON_RTL}/tests/*.cc &
 
 # Interception
 INTERCEPTION=${COMPILER_RT}/lib/interception
-run_lint ${ASAN_RTL_LINT_FILTER} ${INTERCEPTION}/*.{cc,h}
+run_lint ${ASAN_RTL_LINT_FILTER} ${INTERCEPTION}/*.{cc,h} &
 
 # ASan
 ASAN_RTL=${COMPILER_RT}/lib/asan
-run_lint ${ASAN_RTL_LINT_FILTER} ${ASAN_RTL}/*.{cc,h}
-run_lint ${ASAN_TEST_LINT_FILTER} ${ASAN_RTL}/tests/*.{cc,h}
-run_lint ${ASAN_LIT_TEST_LINT_FILTER} ${ASAN_RTL}/lit_tests/*/*.cc
+run_lint ${ASAN_RTL_LINT_FILTER} ${ASAN_RTL}/*.{cc,h} &
+run_lint ${ASAN_TEST_LINT_FILTER} ${ASAN_RTL}/tests/*.{cc,h} &
+run_lint ${ASAN_LIT_TEST_LINT_FILTER} ${ASAN_RTL}/lit_tests/*/*.cc &
 
 # TSan
 TSAN_RTL=${COMPILER_RT}/lib/tsan
-run_lint ${TSAN_RTL_LINT_FILTER} ${TSAN_RTL}/rtl/*.{cc,h}
+run_lint ${TSAN_RTL_LINT_FILTER} ${TSAN_RTL}/rtl/*.{cc,h} &
 run_lint ${TSAN_TEST_LINT_FILTER} ${TSAN_RTL}/tests/rtl/*.{cc,h} \
-                                  ${TSAN_RTL}/tests/unit/*.cc
-run_lint ${TSAN_LIT_TEST_LINT_FILTER} ${TSAN_RTL}/lit_tests/*.cc
+                                  ${TSAN_RTL}/tests/unit/*.cc &
+run_lint ${TSAN_LIT_TEST_LINT_FILTER} ${TSAN_RTL}/lit_tests/*.cc &
 
 # MSan
 MSAN_RTL=${COMPILER_RT}/lib/msan
-run_lint ${MSAN_RTL_LINT_FILTER} ${MSAN_RTL}/*.{cc,h}
+run_lint ${MSAN_RTL_LINT_FILTER} ${MSAN_RTL}/*.{cc,h} &
 
 # LSan
 LSAN_RTL=${COMPILER_RT}/lib/lsan
-run_lint ${LSAN_RTL_LINT_FILTER} ${LSAN_RTL}/*.{cc,h}
-run_lint ${LSAN_RTL_LINT_FILTER} ${LSAN_RTL}/tests/*.{cc,h}
-run_lint ${LSAN_LIT_TEST_LINT_FILTER} ${LSAN_RTL}/lit_tests/*/*.cc
+run_lint ${LSAN_RTL_LINT_FILTER} ${LSAN_RTL}/*.{cc,h} \
+                                 ${LSAN_RTL}/tests/*.{cc,h} &
+run_lint ${LSAN_LIT_TEST_LINT_FILTER} ${LSAN_RTL}/lit_tests/*/*.cc &
 
 # Misc files
 FILES=${COMMON_RTL}/*.inc
+TMPFILES=""
 for FILE in $FILES; do
     TMPFILE=$(mktemp -u ${FILE}.XXXXX).cc
-    cp -f $FILE $TMPFILE && \
-        run_lint ${COMMON_RTL_INC_LINT_FILTER} $TMPFILE
-    rm $TMPFILE
+    cp -f $FILE $TMPFILE
+    run_lint ${COMMON_RTL_INC_LINT_FILTER} $TMPFILE &
+    TMPFILES="$TMPFILES $TMPFILE"
+done
+
+wait
+
+for temp in $TMPFILES; do
+  rm -f $temp
 done
 
-if [ "$EXITSTATUS" != "0" ]; then
-  cat $LOG | grep -v "Done processing" | grep -v "Total errors found" \
-    grep -v "Skipping input"
+if [[ -s $ERROR_LOG ]]; then
+  cat $ERROR_LOG
+  exit 1
 fi
 
-exit $EXITSTATUS
+exit 0





More information about the llvm-commits mailing list