[llvm-exegesis] Add mechanism to add target-specific passes.

Summary:
createX86FloatingPointStackifierPass is disabled until we handle
TracksLiveness correctly.

Reviewers: gchatelet

Subscribers: mgorny, tschuett, llvm-commits

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

llvm-svn: 335117
diff --git a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
index a37387b..557588b 100644
--- a/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
+++ b/llvm/tools/llvm-exegesis/lib/X86/Target.cpp
@@ -8,12 +8,20 @@
 //===----------------------------------------------------------------------===//
 #include "../Target.h"
 
+#include "X86.h"
+
 namespace exegesis {
 
 namespace {
 
 class ExegesisX86Target : public ExegesisTarget {
-private:
+  void addTargetSpecificPasses(llvm::PassManagerBase &PM) const override {
+    // Lowers FP pseudo-instructions, e.g. ABS_Fp32 -> ABS_F.
+    // FIXME: Enable when the exegesis assembler no longer does
+    // Properties.reset(TracksLiveness);
+    // PM.add(llvm::createX86FloatingPointStackifierPass());
+  }
+
   bool matchesArch(llvm::Triple::ArchType Arch) const override {
     return Arch == llvm::Triple::x86_64 || Arch == llvm::Triple::x86;
   }