Add EnableIPRA to TargetOptions, and move the cl::opt -enable-ipra to TargetMachine.cpp

Avoid exposing a cl::opt in a public header and instead promote this
option in the API.
Alternatively, we could land the cl::opt in CommandFlags.h so that
it is available to every tool, but we would still have to find an
option for clang.

llvm-svn: 275348
diff --git a/llvm/lib/CodeGen/TargetPassConfig.cpp b/llvm/lib/CodeGen/TargetPassConfig.cpp
index dccdc52..fcb375e 100644
--- a/llvm/lib/CodeGen/TargetPassConfig.cpp
+++ b/llvm/lib/CodeGen/TargetPassConfig.cpp
@@ -124,10 +124,6 @@
                           "Enable both variants of CFL-AA"),
                clEnumValEnd));
 
-cl::opt<bool> UseIPRA("enable-ipra", cl::init(false), cl::Hidden,
-                      cl::desc("Enable interprocedural register allocation "
-                               "to reduce load/store at procedure calls."));
-
 /// Allow standard passes to be disabled by command line options. This supports
 /// simple binary flags that either suppress the pass or do nothing.
 /// i.e. -disable-mypass=false has no effect.
@@ -522,7 +518,7 @@
   addPreISel();
 
   // Force codegen to run according to the callgraph.
-  if (UseIPRA)
+  if (TM->Options.EnableIPRA)
     addPass(new DummyCGSCCPass);
 
   // Add both the safe stack and the stack protection passes: each of them will
@@ -561,7 +557,7 @@
 void TargetPassConfig::addMachinePasses() {
   AddingMachinePasses = true;
 
-  if (UseIPRA)
+  if (TM->Options.EnableIPRA)
     addPass(createRegUsageInfoPropPass());
 
   // Insert a machine instr printer pass after the specified pass.
@@ -649,7 +645,7 @@
 
   addPreEmitPass();
 
-  if (UseIPRA)
+  if (TM->Options.EnableIPRA)
     // Collect register usage information and produce a register mask of
     // clobbered registers, to be used to optimize call sites.
     addPass(createRegUsageInfoCollector());