[llvm] 8685445 - [llvm-exegesis][X86] Explicitly not support `WRFSBASE` opcode.
Roman Lebedev via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 18 09:07:26 PST 2022
Author: Roman Lebedev
Date: 2022-12-18T20:07:02+03:00
New Revision: 8685445b3c9c6643432d24db6ffedddeb49ed8d2
URL: https://github.com/llvm/llvm-project/commit/8685445b3c9c6643432d24db6ffedddeb49ed8d2
DIFF: https://github.com/llvm/llvm-project/commit/8685445b3c9c6643432d24db6ffedddeb49ed8d2.diff
LOG: [llvm-exegesis][X86] Explicitly not support `WRFSBASE` opcode.
We can't serialize if for latency measurements, and when measuring uops,
it crashes so hard even `CrashRecoveryContext` doesn't stop it.
Looks like *this* was the last crasher, now `--opcode-index=-1`
succeeds for all three benchmark modes here.
At least with Duplication repetitor.
Added:
llvm/test/tools/llvm-exegesis/X86/latency/latency-WRFSBASE.s
Modified:
llvm/tools/llvm-exegesis/lib/X86/Target.cpp
Removed:
################################################################################
diff --git a/llvm/test/tools/llvm-exegesis/X86/latency/latency-WRFSBASE.s b/llvm/test/tools/llvm-exegesis/X86/latency/latency-WRFSBASE.s
new file mode 100644
index 0000000000000..7420067b9bcdc
--- /dev/null
+++ b/llvm/test/tools/llvm-exegesis/X86/latency/latency-WRFSBASE.s
@@ -0,0 +1,6 @@
+# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --skip-measurements -opcode-name=WRFSBASE -repetition-mode=duplicate 2>&1 | FileCheck %s
+# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --skip-measurements -opcode-name=WRFSBASE -repetition-mode=loop 2>&1 | FileCheck %s
+# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --skip-measurements -opcode-name=WRFSBASE64 -repetition-mode=duplicate 2>&1 | FileCheck %s
+# RUN: llvm-exegesis -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -mode=latency --skip-measurements -opcode-name=WRFSBASE64 -repetition-mode=loop 2>&1 | FileCheck %s
+
+CHECK: WRFSBASE{{(64)?}}: unsupported opcode
diff --git a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
index 3770431613e58..2fda99cee7c69 100644
--- a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
+++ b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
@@ -217,6 +217,8 @@ static const char *isInvalidOpcode(const Instruction &Instr) {
case X86::LSS32rm:
case X86::LSS64rm:
case X86::SYSENTER:
+ case X86::WRFSBASE:
+ case X86::WRFSBASE64:
return "unsupported opcode";
default:
break;
More information about the llvm-commits
mailing list