This revision was automatically updated to reflect the committed changes.
Closed by commit rL359303: [lldb] [lit] Add feature flags for native CPU 
features (authored by mgorny, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Changed prior to commit:
  https://reviews.llvm.org/D61073?vs=196675&id=196839#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61073/new/

https://reviews.llvm.org/D61073

Files:
  lldb/trunk/CMakeLists.txt
  lldb/trunk/lit/CMakeLists.txt
  lldb/trunk/lit/Register/x86-mm-xmm-read.test
  lldb/trunk/lit/lit.cfg.py
  lldb/trunk/utils/lit-cpuid/CMakeLists.txt
  lldb/trunk/utils/lit-cpuid/lit-cpuid.cpp

Index: lldb/trunk/utils/lit-cpuid/CMakeLists.txt
===================================================================
--- lldb/trunk/utils/lit-cpuid/CMakeLists.txt
+++ lldb/trunk/utils/lit-cpuid/CMakeLists.txt
@@ -0,0 +1,5 @@
+add_llvm_utility(lit-cpuid
+  lit-cpuid.cpp
+  )
+
+target_link_libraries(lit-cpuid PRIVATE LLVMSupport)
Index: lldb/trunk/utils/lit-cpuid/lit-cpuid.cpp
===================================================================
--- lldb/trunk/utils/lit-cpuid/lit-cpuid.cpp
+++ lldb/trunk/utils/lit-cpuid/lit-cpuid.cpp
@@ -0,0 +1,33 @@
+//===- lit-cpuid.cpp - Get CPU feature flags for lit exported features ----===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// lit-cpuid obtains the feature list for the currently running CPU, and outputs
+// those flags that are interesting for LLDB lit tests.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/ADT/StringMap.h"
+#include "llvm/Support/Host.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm;
+
+int main(int argc, char **argv) {
+#if defined(__i386__) || defined(_M_IX86) || \
+    defined(__x86_64__) || defined(_M_X64)
+  StringMap<bool> features;
+
+  if (!sys::getHostCPUFeatures(features))
+    return 1;
+
+  if (features["sse"])
+    outs() << "sse\n";
+#endif
+
+  return 0;
+}
Index: lldb/trunk/lit/Register/x86-mm-xmm-read.test
===================================================================
--- lldb/trunk/lit/Register/x86-mm-xmm-read.test
+++ lldb/trunk/lit/Register/x86-mm-xmm-read.test
@@ -1,6 +1,6 @@
 # XFAIL: system-darwin
 # XFAIL: system-windows
-# REQUIRES: native && (target-x86 || target-x86_64)
+# REQUIRES: native && (target-x86 || target-x86_64) && native-cpu-sse
 # RUN: %clangxx %p/Inputs/x86-mm-xmm-read.cpp -o %t
 # RUN: %lldb -b -s %s %t | FileCheck %s
 process launch
Index: lldb/trunk/lit/CMakeLists.txt
===================================================================
--- lldb/trunk/lit/CMakeLists.txt
+++ lldb/trunk/lit/CMakeLists.txt
@@ -20,6 +20,7 @@
 list(APPEND LLDB_TEST_DEPS
   LLDBUnitTests
   dsymutil
+  lit-cpuid
   llc
   lldb
   lldb-test
Index: lldb/trunk/lit/lit.cfg.py
===================================================================
--- lldb/trunk/lit/lit.cfg.py
+++ lldb/trunk/lit/lit.cfg.py
@@ -73,3 +73,17 @@
     if os.path.isdir(cachedir):
         print("Deleting module cache at %s."%cachedir)
         shutil.rmtree(cachedir)
+
+# If running tests natively, check for CPU features needed for some tests.
+
+if 'native' in config.available_features:
+    cpuid_exe = lit.util.which('lit-cpuid', config.lldb_tools_dir)
+    if cpuid_exe is None:
+        lit_config.warning("lit-cpuid not found, tests requiring CPU extensions will be skipped")
+    else:
+        out, err, exitcode = lit.util.executeCommand([cpuid_exe])
+        if exitcode == 0:
+            for x in out.split():
+                config.available_features.add('native-cpu-%s' % x)
+        else:
+            lit_config.warning("lit-cpuid failed: %s" % err)
Index: lldb/trunk/CMakeLists.txt
===================================================================
--- lldb/trunk/CMakeLists.txt
+++ lldb/trunk/CMakeLists.txt
@@ -138,6 +138,7 @@
   add_subdirectory(test)
   add_subdirectory(unittests)
   add_subdirectory(lit)
+  add_subdirectory(utils/lit-cpuid)
   add_subdirectory(utils/lldb-dotest)
 endif()
 
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to