Implement `NoFPElim' in a target-agnostic fashion so it can be shared.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14297 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp
index 051ebf0..f5bbdd1 100644
--- a/lib/Target/TargetMachine.cpp
+++ b/lib/Target/TargetMachine.cpp
@@ -11,9 +11,9 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Target/TargetMachine.h"
 #include "llvm/Type.h"
 #include "llvm/CodeGen/IntrinsicLowering.h"
+#include "llvm/Target/TargetMachine.h"
 #include "Support/CommandLine.h"
 using namespace llvm;
 
@@ -23,11 +23,18 @@
 
 namespace llvm { 
   bool PrintMachineCode;
+  bool NoFPElim;
 };
+
 namespace {
   cl::opt<bool, true> PrintCode("print-machineinstrs",
     cl::desc("Print generated machine code"),
     cl::location(PrintMachineCode), cl::init(false));
+
+  cl::opt<bool, true> 
+    DisableFPElim("disable-fp-elim",
+                  cl::desc("Disable frame pointer elimination optimization"),
+                  cl::location(NoFPElim), cl::init(false));
 };
 
 //---------------------------------------------------------------------------