[PATCH] D15179: [sanitizer] Cache results of darwin_test_archs

Kuba Brecka via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 3 02:13:15 PST 2015


kubabrecka created this revision.
kubabrecka added reviewers: beanz, samsonov, glider.
kubabrecka added subscribers: llvm-commits, zaks.anna.

For OS X builds of compiler-rt, we run `darwin_test_archs` to determine which architectures can the toolchain target.  This detection takes quite a long time, and the result is always the same (as long as you don't upgrade your OS, system headers or toolchain).  Let's cache the result.

http://reviews.llvm.org/D15179

Files:
  cmake/Modules/CompilerRTDarwinUtils.cmake

Index: cmake/Modules/CompilerRTDarwinUtils.cmake
===================================================================
--- cmake/Modules/CompilerRTDarwinUtils.cmake
+++ cmake/Modules/CompilerRTDarwinUtils.cmake
@@ -46,6 +46,11 @@
 # This function takes an OS and a list of architectures and identifies the
 # subset of the architectures list that the installed toolchain can target.
 function(darwin_test_archs os valid_archs)
+  if(${valid_archs})
+    message(STATUS "Using cached valid architectures for ${os}.")
+    return()
+  endif()
+
   set(archs ${ARGN})
   message(STATUS "Finding valid architectures for ${os}...")
   set(SIMPLE_CPP ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/src.cpp)
@@ -75,7 +80,8 @@
       list(APPEND working_archs ${arch})
     endif()
   endforeach()
-  set(${valid_archs} ${working_archs} PARENT_SCOPE)
+  set(${valid_archs} ${working_archs}
+    CACHE STRING "List of valid architectures for platform ${os}.")
 endfunction()
 
 # This function checks the host cpusubtype to see if it is post-haswell. Haswell


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15179.41725.patch
Type: text/x-patch
Size: 1045 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151203/75e192e4/attachment.bin>


More information about the llvm-commits mailing list