[llvm] d7d4dca - [llvm-exegesis] [PowerPC] Add basic LIT test

Qiu Chaofan via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 19 01:01:15 PST 2021


Author: Qiu Chaofan
Date: 2021-02-19T17:01:05+08:00
New Revision: d7d4dca15fdaecd368978067fb26d64e96744cb9

URL: https://github.com/llvm/llvm-project/commit/d7d4dca15fdaecd368978067fb26d64e96744cb9
DIFF: https://github.com/llvm/llvm-project/commit/d7d4dca15fdaecd368978067fb26d64e96744cb9.diff

LOG: [llvm-exegesis] [PowerPC] Add basic LIT test

Reviewed By: jsji

Differential Revision: https://reviews.llvm.org/D94897

Added: 
    llvm/test/tools/llvm-exegesis/PowerPC/latency-by-opcode-name.s
    llvm/test/tools/llvm-exegesis/PowerPC/lit.local.cfg

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/tools/llvm-exegesis/PowerPC/latency-by-opcode-name.s b/llvm/test/tools/llvm-exegesis/PowerPC/latency-by-opcode-name.s
new file mode 100644
index 000000000000..a70a22e34b21
--- /dev/null
+++ b/llvm/test/tools/llvm-exegesis/PowerPC/latency-by-opcode-name.s
@@ -0,0 +1,11 @@
+# RUN: llvm-exegesis -mode=latency -opcode-name=ADD8 | FileCheck %s
+
+CHECK:      ---
+CHECK-NEXT: mode: latency
+CHECK-NEXT: key:
+CHECK-NEXT:   instructions:
+CHECK-NEXT:     ADD8
+CHECK-NEXT: config: ''
+CHECK-NEXT: register_initial_values:
+CHECK-DAG: - '[[REG1:[A-Z0-9]+]]=0x0'
+CHECK-LAST: ...

diff  --git a/llvm/test/tools/llvm-exegesis/PowerPC/lit.local.cfg b/llvm/test/tools/llvm-exegesis/PowerPC/lit.local.cfg
new file mode 100644
index 000000000000..076f218bf81d
--- /dev/null
+++ b/llvm/test/tools/llvm-exegesis/PowerPC/lit.local.cfg
@@ -0,0 +1,29 @@
+import subprocess
+import lit.util
+
+if not ('PowerPC' in config.root.targets):
+    # We need support for PowerPC.
+    config.unsupported = True
+
+elif not ('powerpc' in config.root.host_triple):
+    # We need to be running on an PPC 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_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_result == 0:
+        config.unsupported = True


        


More information about the llvm-commits mailing list