[PATCH] D109353: [llvm-exegesis] Analysis tests should run even without libpfm (PR51687)

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 7 06:03:42 PDT 2021


This revision was automatically updated to reflect the committed changes.
Closed by commit rG6a9e2764f64a: [llvm-exegesis] Analysis tests should run even without libpfm (PR51687) (authored by RKSimon).

Changed prior to commit:
  https://reviews.llvm.org/D109353?vs=371039&id=371050#toc

Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109353

Files:
  llvm/test/tools/llvm-exegesis/X86/inverse_throughput-by-opcode-name.s
  llvm/test/tools/llvm-exegesis/X86/inverse_throughput/inverse_throughput-by-opcode-name.s
  llvm/test/tools/llvm-exegesis/X86/inverse_throughput/lit.local.cfg
  llvm/test/tools/llvm-exegesis/X86/latency-CMOV32rr.s
  llvm/test/tools/llvm-exegesis/X86/latency-IN16rr.s
  llvm/test/tools/llvm-exegesis/X86/latency-LEA64_32r.s
  llvm/test/tools/llvm-exegesis/X86/latency-LEA64r.s
  llvm/test/tools/llvm-exegesis/X86/latency-SBB8rr.s
  llvm/test/tools/llvm-exegesis/X86/latency-SETCCr-cond-codes-sweep.s
  llvm/test/tools/llvm-exegesis/X86/latency-SQRTSSr.s
  llvm/test/tools/llvm-exegesis/X86/latency-by-opcode-name.s
  llvm/test/tools/llvm-exegesis/X86/latency/latency-CMOV32rr.s
  llvm/test/tools/llvm-exegesis/X86/latency/latency-IN16rr.s
  llvm/test/tools/llvm-exegesis/X86/latency/latency-LEA64_32r.s
  llvm/test/tools/llvm-exegesis/X86/latency/latency-LEA64r.s
  llvm/test/tools/llvm-exegesis/X86/latency/latency-SBB8rr.s
  llvm/test/tools/llvm-exegesis/X86/latency/latency-SETCCr-cond-codes-sweep.s
  llvm/test/tools/llvm-exegesis/X86/latency/latency-SQRTSSr.s
  llvm/test/tools/llvm-exegesis/X86/latency/latency-by-opcode-name.s
  llvm/test/tools/llvm-exegesis/X86/latency/lit.local.cfg
  llvm/test/tools/llvm-exegesis/X86/latency/max-configs.test
  llvm/test/tools/llvm-exegesis/X86/lit.local.cfg
  llvm/test/tools/llvm-exegesis/X86/max-configs.test
  llvm/test/tools/llvm-exegesis/X86/uops-ADD32mi8.s
  llvm/test/tools/llvm-exegesis/X86/uops-ADD32mr.s
  llvm/test/tools/llvm-exegesis/X86/uops-ADD32rm.s
  llvm/test/tools/llvm-exegesis/X86/uops-ADD_F32m.s
  llvm/test/tools/llvm-exegesis/X86/uops-BEXTR32rm.s
  llvm/test/tools/llvm-exegesis/X86/uops-BSF16rm.s
  llvm/test/tools/llvm-exegesis/X86/uops-BTR64mr.s
  llvm/test/tools/llvm-exegesis/X86/uops-CMOV16rm-noreg.s
  llvm/test/tools/llvm-exegesis/X86/uops-FLDENVm.s
  llvm/test/tools/llvm-exegesis/X86/uops-LEA64r.s
  llvm/test/tools/llvm-exegesis/X86/uops-POPCNT32rr.s
  llvm/test/tools/llvm-exegesis/X86/uops-STD.s
  llvm/test/tools/llvm-exegesis/X86/uops-VFMADDSS4rm.s
  llvm/test/tools/llvm-exegesis/X86/uops-XCHG64rr.s
  llvm/test/tools/llvm-exegesis/X86/uops-by-opcode-name.s
  llvm/test/tools/llvm-exegesis/X86/uops-misspelled-div.s
  llvm/test/tools/llvm-exegesis/X86/uops/lit.local.cfg
  llvm/test/tools/llvm-exegesis/X86/uops/uops-ADD32mi8.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-ADD32mr.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-ADD32rm.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-ADD_F32m.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-BEXTR32rm.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-BSF16rm.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-BTR64mr.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-CMOV16rm-noreg.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-FLDENVm.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-LEA64r.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-POPCNT32rr.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-STD.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-VFMADDSS4rm.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-XCHG64rr.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-by-opcode-name.s
  llvm/test/tools/llvm-exegesis/X86/uops/uops-misspelled-div.s


Index: llvm/test/tools/llvm-exegesis/X86/uops/lit.local.cfg
===================================================================
--- llvm/test/tools/llvm-exegesis/X86/uops/lit.local.cfg
+++ llvm/test/tools/llvm-exegesis/X86/uops/lit.local.cfg
@@ -22,12 +22,8 @@
           with open(os.devnull, 'w') as quiet:
               check_llvm_exegesis_uops_result = subprocess.call(
                 [llvm_exegesis_exe, '-mode', 'uops', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
-              check_llvm_exegesis_latency_result = subprocess.call(
-                [llvm_exegesis_exe, '-mode', 'latency', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
       except OSError:
           print('could not exec llvm-exegesis')
           config.unsupported = True
       if not check_llvm_exegesis_uops_result == 0:
-        config.unsupported = True
-      if not check_llvm_exegesis_latency_result == 0:
-        config.unsupported = True
+        config.unsupported = True
\ No newline at end of file
Index: llvm/test/tools/llvm-exegesis/X86/latency/lit.local.cfg
===================================================================
--- llvm/test/tools/llvm-exegesis/X86/latency/lit.local.cfg
+++ llvm/test/tools/llvm-exegesis/X86/latency/lit.local.cfg
@@ -20,14 +20,10 @@
     else:
       try:
           with open(os.devnull, 'w') as quiet:
-              check_llvm_exegesis_uops_result = subprocess.call(
-                [llvm_exegesis_exe, '-mode', 'uops', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
               check_llvm_exegesis_latency_result = subprocess.call(
                 [llvm_exegesis_exe, '-mode', 'latency', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
       except OSError:
           print('could not exec llvm-exegesis')
           config.unsupported = True
-      if not check_llvm_exegesis_uops_result == 0:
-        config.unsupported = True
       if not check_llvm_exegesis_latency_result == 0:
         config.unsupported = True
Index: llvm/test/tools/llvm-exegesis/X86/lit.local.cfg
===================================================================
--- llvm/test/tools/llvm-exegesis/X86/lit.local.cfg
+++ llvm/test/tools/llvm-exegesis/X86/lit.local.cfg
@@ -1,33 +1,2 @@
-import subprocess
-import lit.util
-
-if not ('X86' in config.root.targets):
-    # We need support for X86.
+if not 'X86' in config.root.targets:
     config.unsupported = True
-
-elif not ('x86_64' in config.root.host_triple):
-    # We need to be running on an X86 host.
-    config.unsupported = True
-
-else:
-    # We need libpfm to be installed and allow reading perf counters. We can
-    # only know that at runtime, so we try to measure the latency of an empty
-    # code snippet and bail out on error.
-    llvm_exegesis_exe = lit.util.which('llvm-exegesis', config.llvm_tools_dir)
-    if not llvm_exegesis_exe:
-        print('llvm-exegesis not found')
-        config.unsupported = True
-    else:
-      try:
-          with open(os.devnull, 'w') as quiet:
-              check_llvm_exegesis_uops_result = subprocess.call(
-                [llvm_exegesis_exe, '-mode', 'uops', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
-              check_llvm_exegesis_latency_result = subprocess.call(
-                [llvm_exegesis_exe, '-mode', 'latency', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
-      except OSError:
-          print('could not exec llvm-exegesis')
-          config.unsupported = True
-      if not check_llvm_exegesis_uops_result == 0:
-        config.unsupported = True
-      if not check_llvm_exegesis_latency_result == 0:
-        config.unsupported = True
Index: llvm/test/tools/llvm-exegesis/X86/inverse_throughput/lit.local.cfg
===================================================================
--- llvm/test/tools/llvm-exegesis/X86/inverse_throughput/lit.local.cfg
+++ llvm/test/tools/llvm-exegesis/X86/inverse_throughput/lit.local.cfg
@@ -20,14 +20,10 @@
     else:
       try:
           with open(os.devnull, 'w') as quiet:
-              check_llvm_exegesis_uops_result = subprocess.call(
-                [llvm_exegesis_exe, '-mode', 'uops', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
-              check_llvm_exegesis_latency_result = subprocess.call(
-                [llvm_exegesis_exe, '-mode', 'latency', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
+              check_llvm_exegesis_inverse_throughput_result = subprocess.call(
+                [llvm_exegesis_exe, '-mode', 'inverse_throughput', '-snippets-file', '/dev/null'], stdout=quiet, stderr=quiet)
       except OSError:
           print('could not exec llvm-exegesis')
           config.unsupported = True
-      if not check_llvm_exegesis_uops_result == 0:
-        config.unsupported = True
-      if not check_llvm_exegesis_latency_result == 0:
+      if not check_llvm_exegesis_inverse_throughput_result == 0:
         config.unsupported = True


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D109353.371050.patch
Type: text/x-patch
Size: 4989 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210907/b41ec181/attachment.bin>


More information about the llvm-commits mailing list