summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiloš Stojanović <Milos.Stojanovic@rt-rk.com>2019-12-18 10:21:06 +0100
committerMiloš Stojanović <Milos.Stojanovic@rt-rk.com>2019-12-18 10:21:06 +0100
commit862a60241687a2f718d2c4f554afd9d520da8952 (patch)
tree926a38bff5244403e6f20263888e3f6956199110
parent7cd1cfdd6b6c89f74af69f3513b5856a5c837317 (diff)
downloadbcm5719-llvm-862a60241687a2f718d2c4f554afd9d520da8952.tar.gz
bcm5719-llvm-862a60241687a2f718d2c4f554afd9d520da8952.zip
[llvm-exegesis][mips] Add lit test
Adding a basic lit test for MIPS. Differential Revision: https://reviews.llvm.org/D71605
-rw-r--r--llvm/test/tools/llvm-exegesis/Mips/latency-by-opcode-name.s11
-rw-r--r--llvm/test/tools/llvm-exegesis/Mips/lit.local.cfg29
2 files changed, 40 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-exegesis/Mips/latency-by-opcode-name.s b/llvm/test/tools/llvm-exegesis/Mips/latency-by-opcode-name.s
new file mode 100644
index 00000000000..365608a368d
--- /dev/null
+++ b/llvm/test/tools/llvm-exegesis/Mips/latency-by-opcode-name.s
@@ -0,0 +1,11 @@
+# RUN: llvm-exegesis -mode=latency -opcode-name=ADD | FileCheck %s
+
+CHECK: ---
+CHECK-NEXT: mode: latency
+CHECK-NEXT: key:
+CHECK-NEXT: instructions:
+CHECK-NEXT: ADD
+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/Mips/lit.local.cfg b/llvm/test/tools/llvm-exegesis/Mips/lit.local.cfg
new file mode 100644
index 00000000000..6cd33af2cd8
--- /dev/null
+++ b/llvm/test/tools/llvm-exegesis/Mips/lit.local.cfg
@@ -0,0 +1,29 @@
+import subprocess
+import lit.util
+
+if not ('Mips' in config.root.targets):
+ # We need support for Mips.
+ config.unsupported = True
+
+elif not ('mips' in config.root.host_triple):
+ # We need to be running on an Mips 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
OpenPOWER on IntegriCloud