From 7f1322dc4d270a74f96e5d6c7fd6fe25df71e1e6 Mon Sep 17 00:00:00 2001 From: Clement Courbet Date: Tue, 25 Sep 2018 09:27:43 +0000 Subject: [PATCH] [llvm-exegesis] Add lit tests. Summary: Right now we only have unit tests. This will allow testing the whole tool. Even though We can't really check actual values, this will avoid regressions such as PR39055. Reviewers: gchatelet, alexshap Subscribers: mgorny, tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D52407 llvm-svn: 342953 --- llvm/test/CMakeLists.txt | 1 + llvm/test/lit.cfg.py | 21 +++++++++++---------- .../llvm-exegesis/X86/latency-by-opcode-name.s | 6 ++++++ llvm/test/tools/llvm-exegesis/X86/lit.local.cfg | 7 +++++++ .../tools/llvm-exegesis/X86/uops-by-opcode-name.s | 6 ++++++ llvm/test/tools/llvm-exegesis/lit.local.cfg | 2 ++ 6 files changed, 33 insertions(+), 10 deletions(-) create mode 100644 llvm/test/tools/llvm-exegesis/X86/latency-by-opcode-name.s create mode 100644 llvm/test/tools/llvm-exegesis/X86/lit.local.cfg create mode 100644 llvm/test/tools/llvm-exegesis/X86/uops-by-opcode-name.s create mode 100644 llvm/test/tools/llvm-exegesis/lit.local.cfg diff --git a/llvm/test/CMakeLists.txt b/llvm/test/CMakeLists.txt index 32f1e2e..1d8047d 100644 --- a/llvm/test/CMakeLists.txt +++ b/llvm/test/CMakeLists.txt @@ -60,6 +60,7 @@ set(LLVM_TEST_DEPENDS dsymutil llvm-dwarfdump llvm-dwp + llvm-exegesis llvm-extract llvm-isel-fuzzer llvm-lib diff --git a/llvm/test/lit.cfg.py b/llvm/test/lit.cfg.py index f6080df..9099221 100644 --- a/llvm/test/lit.cfg.py +++ b/llvm/test/lit.cfg.py @@ -140,16 +140,17 @@ tools = [ # FIXME: Why do we have both `lli` and `%lli` that do slightly different things? tools.extend([ - 'dsymutil', 'lli', 'lli-child-target', 'llvm-ar', 'llvm-as', 'llvm-bcanalyzer', - 'llvm-config', 'llvm-cov', 'llvm-cxxdump', 'llvm-cvtres', 'llvm-diff', 'llvm-dis', - 'llvm-dwarfdump', 'llvm-extract', 'llvm-isel-fuzzer', 'llvm-opt-fuzzer', 'llvm-lib', - 'llvm-link', 'llvm-lto', 'llvm-lto2', 'llvm-mc', 'llvm-mca', - 'llvm-modextract', 'llvm-nm', 'llvm-objcopy', 'llvm-objdump', - 'llvm-pdbutil', 'llvm-profdata', 'llvm-ranlib', 'llvm-readobj', - 'llvm-rtdyld', 'llvm-size', 'llvm-split', 'llvm-strings', 'llvm-strip', 'llvm-tblgen', - 'llvm-undname', 'llvm-c-test', 'llvm-cxxfilt', 'llvm-xray', 'yaml2obj', 'obj2yaml', - 'yaml-bench', 'verify-uselistorder', - 'bugpoint', 'llc', 'llvm-symbolizer', 'opt', 'sancov', 'sanstats']) + 'dsymutil', 'lli', 'lli-child-target', 'llvm-ar', 'llvm-as', + 'llvm-bcanalyzer', 'llvm-config', 'llvm-cov', 'llvm-cxxdump', 'llvm-cvtres', + 'llvm-diff', 'llvm-dis', 'llvm-dwarfdump', 'llvm-exegesis', 'llvm-extract', + 'llvm-isel-fuzzer', 'llvm-opt-fuzzer', 'llvm-lib', 'llvm-link', 'llvm-lto', + 'llvm-lto2', 'llvm-mc', 'llvm-mca', 'llvm-modextract', 'llvm-nm', + 'llvm-objcopy', 'llvm-objdump', 'llvm-pdbutil', 'llvm-profdata', + 'llvm-ranlib', 'llvm-readobj', 'llvm-rtdyld', 'llvm-size', 'llvm-split', + 'llvm-strings', 'llvm-strip', 'llvm-tblgen', 'llvm-undname', 'llvm-c-test', + 'llvm-cxxfilt', 'llvm-xray', 'yaml2obj', 'obj2yaml', 'yaml-bench', + 'verify-uselistorder', 'bugpoint', 'llc', 'llvm-symbolizer', 'opt', + 'sancov', 'sanstats']) # The following tools are optional tools.extend([ diff --git a/llvm/test/tools/llvm-exegesis/X86/latency-by-opcode-name.s b/llvm/test/tools/llvm-exegesis/X86/latency-by-opcode-name.s new file mode 100644 index 0000000..5c6889f --- /dev/null +++ b/llvm/test/tools/llvm-exegesis/X86/latency-by-opcode-name.s @@ -0,0 +1,6 @@ +# RUN: llvm-exegesis -mode=latency -opcode-name=ADD32rr | FileCheck %s + +CHECK: mode: latency +CHECK-NEXT: key: +CHECK-NEXT: instructions: +CHECK-NEXT: ADD32rr diff --git a/llvm/test/tools/llvm-exegesis/X86/lit.local.cfg b/llvm/test/tools/llvm-exegesis/X86/lit.local.cfg new file mode 100644 index 0000000..1d6936c --- /dev/null +++ b/llvm/test/tools/llvm-exegesis/X86/lit.local.cfg @@ -0,0 +1,7 @@ +# We need support for X86. +if not ('X86' in config.root.targets): + config.unsupported = True + +# And we need to be running on an X86 host. +if not ('x86_64' in config.root.host_triple): + config.unsupported = True diff --git a/llvm/test/tools/llvm-exegesis/X86/uops-by-opcode-name.s b/llvm/test/tools/llvm-exegesis/X86/uops-by-opcode-name.s new file mode 100644 index 0000000..982bd4f --- /dev/null +++ b/llvm/test/tools/llvm-exegesis/X86/uops-by-opcode-name.s @@ -0,0 +1,6 @@ +# RUN: llvm-exegesis -mode=uops -opcode-name=ADD32rr | FileCheck %s + +CHECK: mode: uops +CHECK-NEXT: key: +CHECK-NEXT: instructions: +CHECK-NEXT: ADD32rr diff --git a/llvm/test/tools/llvm-exegesis/lit.local.cfg b/llvm/test/tools/llvm-exegesis/lit.local.cfg new file mode 100644 index 0000000..b2fc141 --- /dev/null +++ b/llvm/test/tools/llvm-exegesis/lit.local.cfg @@ -0,0 +1,2 @@ +if 'native' not in config.available_features: + config.unsupported = True -- 2.7.4