[llvm-exegesis] Do not silently fail on unknown instruction encoding formats.
authorClement Courbet <courbet@google.com>
Wed, 28 Oct 2020 08:26:29 +0000 (09:26 +0100)
committerClement Courbet <courbet@google.com>
Wed, 28 Oct 2020 09:06:00 +0000 (10:06 +0100)
The addition of TILELOADD instructions with a new encoding format
triggered a hard abort instead of proper error reporting due to the use
of `llvm_unreachable` for actually reachable code.
Properly report an error when the encoding format is unknown.

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

llvm/tools/llvm-exegesis/lib/X86/Target.cpp

index 270825a..827e2e2 100644 (file)
@@ -53,7 +53,7 @@ static cl::opt<unsigned> LbrSamplingPeriod(
 static const char *isInvalidMemoryInstr(const Instruction &Instr) {
   switch (Instr.Description.TSFlags & X86II::FormMask) {
   default:
-    llvm_unreachable("Unknown FormMask value");
+    return "Unknown FormMask value";
   // These have no memory access.
   case X86II::Pseudo:
   case X86II::RawFrm: