<div dir="ltr">The "thinlto" axis of this test matrix is failing on Windows: <a href="http://llvm.org/pr32770">http://llvm.org/pr32770</a></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 21, 2017 at 11:11 AM, Evgeniy Stepanov via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: eugenis<br>
Date: Fri Apr 21 13:11:23 2017<br>
New Revision: 301016<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=301016&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=301016&view=rev</a><br>
Log:<br>
[cfi] Run tests with and without lld and thinlto.<br>
<br>
Run tests in all configurations:<br>
(standalone, with devirtualization) * (gold, lld) * (lto, thinlto)<br>
<br>
Modified:<br>
    compiler-rt/trunk/test/asan/<wbr>TestCases/Windows/fuse-lld.cc<br>
    compiler-rt/trunk/test/cfi/<wbr>CMakeLists.txt<br>
    compiler-rt/trunk/test/cfi/<wbr>cross-dso/icall/lit.local.cfg<br>
    compiler-rt/trunk/test/cfi/<wbr>cross-dso/stats.cpp<br>
    compiler-rt/trunk/test/cfi/<wbr>icall/lit.local.cfg<br>
    compiler-rt/trunk/test/cfi/<wbr>lit.cfg<br>
    compiler-rt/trunk/test/cfi/<a href="http://lit.site.cfg.in" rel="noreferrer" target="_blank">lit<wbr>.site.cfg.in</a><br>
    compiler-rt/trunk/test/lit.<wbr>common.cfg<br>
    compiler-rt/trunk/test/<a href="http://lit.common.configured.in" rel="noreferrer" target="_blank">lit.<wbr>common.configured.in</a><br>
    compiler-rt/trunk/test/<wbr>safestack/lit.cfg<br>
<br>
Modified: compiler-rt/trunk/test/asan/<wbr>TestCases/Windows/fuse-lld.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/Windows/fuse-lld.cc?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/asan/TestCases/Windows/<wbr>fuse-lld.cc?rev=301016&r1=<wbr>301015&r2=301016&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/asan/<wbr>TestCases/Windows/fuse-lld.cc (original)<br>
+++ compiler-rt/trunk/test/asan/<wbr>TestCases/Windows/fuse-lld.cc Fri Apr 21 13:11:23 2017<br>
@@ -1,6 +1,6 @@<br>
 // If we have LLD, see that things more or less work.<br>
 //<br>
-// REQUIRES: lld<br>
+// REQUIRES: lld-available<br>
 //<br>
 // FIXME: Use -fuse-ld=lld after the old COFF linker is removed.<br>
 // FIXME: Test will fail until we add flags for requesting dwarf or cv.<br>
<br>
Modified: compiler-rt/trunk/test/cfi/<wbr>CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/CMakeLists.txt?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/cfi/CMakeLists.txt?rev=<wbr>301016&r1=301015&r2=301016&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/cfi/<wbr>CMakeLists.txt (original)<br>
+++ compiler-rt/trunk/test/cfi/<wbr>CMakeLists.txt Fri Apr 21 13:11:23 2017<br>
@@ -1,14 +1,48 @@<br>
-set(CFI_LIT_TEST_MODE Standalone)<br>
-configure_lit_site_cfg(<br>
-  ${CMAKE_CURRENT_SOURCE_DIR}/<a href="http://lit.site.cfg.in" rel="noreferrer" target="_blank">li<wbr>t.site.cfg.in</a><br>
-  ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Standalone/lit.site.cfg<br>
-  )<br>
+set(CFI_TESTSUITES)<br>
<br>
-set(CFI_LIT_TEST_MODE Devirt)<br>
-configure_lit_site_cfg(<br>
-  ${CMAKE_CURRENT_SOURCE_DIR}/<a href="http://lit.site.cfg.in" rel="noreferrer" target="_blank">li<wbr>t.site.cfg.in</a><br>
-  ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Devirt/lit.site.cfg<br>
-  )<br>
+macro (add_cfi_test_suites lld thinlto)<br>
+  set(suffix)<br>
+  if (${lld})<br>
+    set(suffix ${suffix}-lld)<br>
+  endif()<br>
+  if (${thinlto})<br>
+    set(suffix ${suffix}-thinlto)<br>
+  endif()<br>
+<br>
+  set(CFI_TEST_USE_LLD ${lld})<br>
+  set(CFI_TEST_USE_THINLTO ${thinlto})<br>
+<br>
+  set(CFI_LIT_TEST_MODE Standalone)<br>
+  set(CFI_TEST_CONFIG_SUFFIX -standalone${suffix})<br>
+  configure_lit_site_cfg(<br>
+    ${CMAKE_CURRENT_SOURCE_DIR}/<a href="http://lit.site.cfg.in" rel="noreferrer" target="_blank">li<wbr>t.site.cfg.in</a><br>
+    ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Standalone${suffix}/lit.site.<wbr>cfg<br>
+    )<br>
+  list(APPEND CFI_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Standalone${suffix})<br>
+<br>
+  set(CFI_LIT_TEST_MODE Devirt)<br>
+  set(CFI_TEST_CONFIG_SUFFIX -devirt${suffix})<br>
+  configure_lit_site_cfg(<br>
+    ${CMAKE_CURRENT_SOURCE_DIR}/<a href="http://lit.site.cfg.in" rel="noreferrer" target="_blank">li<wbr>t.site.cfg.in</a><br>
+    ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Devirt${suffix}/lit.site.cfg<br>
+    )<br>
+  list(APPEND CFI_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Devirt${suffix})<br>
+endmacro()<br>
+<br>
+if (APPLE)<br>
+  add_cfi_test_suites(False False)<br>
+  add_cfi_test_suites(False True)<br>
+elif (WINDOWS)<br>
+  add_cfi_test_suites(True False)<br>
+  add_cfi_test_suites(True True)<br>
+else()<br>
+  add_cfi_test_suites(False False)<br>
+  add_cfi_test_suites(False True)<br>
+  if (COMPILER_RT_HAS_LLD)<br>
+    add_cfi_test_suites(True False)<br>
+    add_cfi_test_suites(True True)<br>
+  endif()<br>
+endif()<br>
<br>
 set(CFI_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_<wbr>DEPS})<br>
 list(APPEND CFI_TEST_DEPS<br>
@@ -34,7 +68,7 @@ if(NOT COMPILER_RT_STANDALONE_BUILD)<br>
       LTO<br>
     )<br>
   endif()<br>
-  if(WIN32 AND COMPILER_RT_HAS_LLD)<br>
+  if(NOT APPLE AND COMPILER_RT_HAS_LLD)<br>
     list(APPEND CFI_TEST_DEPS<br>
       lld<br>
     )<br>
@@ -42,13 +76,11 @@ if(NOT COMPILER_RT_STANDALONE_BUILD)<br>
 endif()<br>
<br>
 add_lit_testsuite(check-cfi "Running the cfi regression tests"<br>
-  ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Standalone<br>
-  ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Devirt<br>
+  ${CFI_TESTSUITES}<br>
   DEPENDS ${CFI_TEST_DEPS})<br>
<br>
 add_lit_target(check-cfi-and-<wbr>supported "Running the cfi regression tests"<br>
-  ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Standalone<br>
-  ${CMAKE_CURRENT_BINARY_DIR}/<wbr>Devirt<br>
+  ${CFI_TESTSUITES}<br>
   PARAMS check_supported=1<br>
   DEPENDS ${CFI_TEST_DEPS})<br>
<br>
<br>
Modified: compiler-rt/trunk/test/cfi/<wbr>cross-dso/icall/lit.local.cfg<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/cross-dso/icall/lit.local.cfg?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/cfi/cross-dso/icall/lit.<wbr>local.cfg?rev=301016&r1=<wbr>301015&r2=301016&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/cfi/<wbr>cross-dso/icall/lit.local.cfg (original)<br>
+++ compiler-rt/trunk/test/cfi/<wbr>cross-dso/icall/lit.local.cfg Fri Apr 21 13:11:23 2017<br>
@@ -1,3 +1,6 @@<br>
 # The cfi-icall checker is only supported on x86 and x86_64 for now.<br>
 if config.root.host_arch not in ['x86', 'x86_64']:<br>
   config.unsupported = True<br>
+<br>
+if config.root.use_thinlto:<br>
+  config.unsupported = True<br>
<br>
Modified: compiler-rt/trunk/test/cfi/<wbr>cross-dso/stats.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/cross-dso/stats.cpp?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/cfi/cross-dso/stats.cpp?<wbr>rev=301016&r1=301015&r2=<wbr>301016&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/cfi/<wbr>cross-dso/stats.cpp (original)<br>
+++ compiler-rt/trunk/test/cfi/<wbr>cross-dso/stats.cpp Fri Apr 21 13:11:23 2017<br>
@@ -3,6 +3,10 @@<br>
 // RUN: env SANITIZER_STATS_PATH=%t.stats %t<br>
 // RUN: sanstats %t.stats | FileCheck %s<br>
<br>
+// CFI-icall is not implemented in thinlto mode => ".cfi" suffixes are missing<br>
+// in sanstats output.<br>
+// XFAIL: thinlto<br>
+<br>
 struct ABase {};<br>
<br>
 struct A : ABase {<br>
<br>
Modified: compiler-rt/trunk/test/cfi/<wbr>icall/lit.local.cfg<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/icall/lit.local.cfg?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/cfi/icall/lit.local.cfg?<wbr>rev=301016&r1=301015&r2=<wbr>301016&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/cfi/<wbr>icall/lit.local.cfg (original)<br>
+++ compiler-rt/trunk/test/cfi/<wbr>icall/lit.local.cfg Fri Apr 21 13:11:23 2017<br>
@@ -1,3 +1,6 @@<br>
 # The cfi-icall checker is only supported on x86 and x86_64 for now.<br>
 if config.root.host_arch not in ['x86', 'x86_64']:<br>
   config.unsupported = True<br>
+<br>
+if config.use_thinlto:<br>
+  config.unsupported = True<br>
<br>
Modified: compiler-rt/trunk/test/cfi/<wbr>lit.cfg<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/lit.cfg?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/cfi/lit.cfg?rev=301016&<wbr>r1=301015&r2=301016&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/cfi/<wbr>lit.cfg (original)<br>
+++ compiler-rt/trunk/test/cfi/<wbr>lit.cfg Fri Apr 21 13:11:23 2017<br>
@@ -1,7 +1,7 @@<br>
 import lit.formats<br>
 import os<br>
<br>
-<a href="http://config.name" rel="noreferrer" target="_blank">config.name</a> = 'cfi'<br>
+<a href="http://config.name" rel="noreferrer" target="_blank">config.name</a> = 'cfi' + config.name_suffix<br>
 config.suffixes = ['.c', '.cpp', '.test']<br>
 config.test_source_root = os.path.dirname(__file__)<br>
<br>
@@ -10,7 +10,7 @@ clangxx = ' '.join([config.clang] + conf<br>
 config.substitutions.append((<wbr>r"%clang ", ' '.join([config.clang]) + ' '))<br>
 config.substitutions.append((<wbr>r"%clangxx ", clangxx + ' '))<br>
 if config.lto_supported:<br>
-  clang_cfi = ' '.join(config.lto_launch + [config.clang] + config.lto_flags + ['-flto -fsanitize=cfi '])<br>
+  clang_cfi = ' '.join(config.lto_launch + [config.clang] + config.lto_flags + ['-fsanitize=cfi '])<br>
<br>
   if config.cfi_lit_test_mode == "Devirt":<br>
     config.available_features.add(<wbr>'devirt')<br>
<br>
Modified: compiler-rt/trunk/test/cfi/<a href="http://lit.site.cfg.in" rel="noreferrer" target="_blank">lit<wbr>.site.cfg.in</a><br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/cfi/lit.site.cfg.in?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/cfi/lit.site.cfg.in?rev=<wbr>301016&r1=301015&r2=301016&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/cfi/<a href="http://lit.site.cfg.in" rel="noreferrer" target="_blank">lit<wbr>.site.cfg.in</a> (original)<br>
+++ compiler-rt/trunk/test/cfi/<a href="http://lit.site.cfg.in" rel="noreferrer" target="_blank">lit<wbr>.site.cfg.in</a> Fri Apr 21 13:11:23 2017<br>
@@ -1,6 +1,9 @@<br>
 @LIT_SITE_CFG_IN_HEADER@<br>
<br>
+config.name_suffix = "@CFI_TEST_CONFIG_SUFFIX@"<br>
 config.cfi_lit_test_mode = "@CFI_LIT_TEST_MODE@"<br>
+config.use_lld = @CFI_TEST_USE_LLD@<br>
+config.use_thinlto = @CFI_TEST_USE_THINLTO@<br>
<br>
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/<wbr>test/lit.common.configured")<br>
 lit_config.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/<wbr>lit.cfg")<br>
<br>
Modified: compiler-rt/trunk/test/lit.<wbr>common.cfg<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lit.common.cfg?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/lit.common.cfg?rev=<wbr>301016&r1=301015&r2=301016&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/lit.<wbr>common.cfg (original)<br>
+++ compiler-rt/trunk/test/lit.<wbr>common.cfg Fri Apr 21 13:11:23 2017<br>
@@ -129,6 +129,9 @@ if sanitizer_can_use_cxxabi:<br>
   config.available_features.add(<wbr>'cxxabi')<br>
<br>
 if config.has_lld:<br>
+  config.available_features.add(<wbr>'lld-available')<br>
+<br>
+if config.use_lld:<br>
   config.available_features.add(<wbr>'lld')<br>
<br>
 if config.can_symbolize:<br>
@@ -180,6 +183,9 @@ def is_darwin_lto_supported():<br>
   return os.path.exists(os.path.join(<wbr>config.llvm_shlib_dir, 'libLTO.dylib'))<br>
<br>
 def is_linux_lto_supported():<br>
+  if config.use_lld:<br>
+    return True<br>
+<br>
   if not os.path.exists(os.path.join(<wbr>config.llvm_shlib_dir, 'LLVMgold.so')):<br>
     return False<br>
<br>
@@ -202,7 +208,10 @@ if config.host_os == 'Darwin' and is_dar<br>
 elif config.host_os == 'Linux' and is_linux_lto_supported():<br>
   config.lto_supported = True<br>
   config.lto_launch = []<br>
-  config.lto_flags = ["-fuse-ld=gold"]<br>
+  if config.use_lld:<br>
+    config.lto_flags = ["-fuse-ld=lld"]<br>
+  else:<br>
+    config.lto_flags = ["-fuse-ld=gold"]<br>
 elif config.host_os == 'Windows' and is_windows_lto_supported():<br>
   config.lto_supported = True<br>
   config.lto_launch = []<br>
@@ -213,6 +222,11 @@ else:<br>
<br>
 if config.lto_supported:<br>
   config.available_features.add(<wbr>'lto')<br>
+  if config.use_thinlto:<br>
+    config.available_features.add(<wbr>'thinlto')<br>
+    config.lto_flags += ["-flto=thin"]<br>
+  else:<br>
+    config.lto_flags += ["-flto"]<br>
<br>
 # Ask llvm-config about assertion mode.<br>
 try:<br>
<br>
Modified: compiler-rt/trunk/test/<a href="http://lit.common.configured.in" rel="noreferrer" target="_blank">lit.<wbr>common.configured.in</a><br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/lit.common.configured.in?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/lit.common.configured.in?<wbr>rev=301016&r1=301015&r2=<wbr>301016&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/<a href="http://lit.common.configured.in" rel="noreferrer" target="_blank">lit.<wbr>common.configured.in</a> (original)<br>
+++ compiler-rt/trunk/test/<a href="http://lit.common.configured.in" rel="noreferrer" target="_blank">lit.<wbr>common.configured.in</a> Fri Apr 21 13:11:23 2017<br>
@@ -28,6 +28,8 @@ set_default("emulator", "@COMPILER_RT_EM<br>
 set_default("sanitizer_can_<wbr>use_cxxabi", @SANITIZER_CAN_USE_CXXABI_<wbr>PYBOOL@)<br>
 set_default("has_lld", @COMPILER_RT_HAS_LLD_PYBOOL@)<br>
 set_default("can_symbolize", @CAN_SYMBOLIZE@)<br>
+set_default("use_lld", False)<br>
+set_default("use_thinlto", False)<br>
 config.available_features.add(<wbr>'target-is-%s' % config.target_arch)<br>
<br>
 # LLVM tools dir can be passed in lit parameters, so try to<br>
<br>
Modified: compiler-rt/trunk/test/<wbr>safestack/lit.cfg<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/safestack/lit.cfg?rev=301016&r1=301015&r2=301016&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/compiler-rt/trunk/<wbr>test/safestack/lit.cfg?rev=<wbr>301016&r1=301015&r2=301016&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- compiler-rt/trunk/test/<wbr>safestack/lit.cfg (original)<br>
+++ compiler-rt/trunk/test/<wbr>safestack/lit.cfg Fri Apr 21 13:11:23 2017<br>
@@ -16,7 +16,7 @@ config.substitutions.append( ("%clang_no<br>
 config.substitutions.append( ("%clang_safestack ", config.clang + " -O0 -fsanitize=safe-stack ") )<br>
<br>
 if config.lto_supported:<br>
-  config.substitutions.append((<wbr>r"%clang_lto_safestack ", ' '.join(config.lto_launch + [config.clang] + config.lto_flags + ['-flto -fsanitize=safe-stack '])))<br>
+  config.substitutions.append((<wbr>r"%clang_lto_safestack ", ' '.join(config.lto_launch + [config.clang] + config.lto_flags + ['-fsanitize=safe-stack '])))<br>
<br>
 # SafeStack tests are currently supported on Linux, FreeBSD and Darwin only.<br>
 if config.host_os not in ['Linux', 'FreeBSD', 'Darwin']:<br>
<br>
<br>
______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>