Publicize the type of FnAllocState.
Prototype option to save state in a global instead of as a Constant in
 the Module. (Turned off, for now, with the on/off switch welded in the off
 position. You get the idea.)

llvm-svn: 9500
diff --git a/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp b/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp
index 82ba0cc..e70c90b 100644
--- a/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp
+++ b/llvm/lib/CodeGen/RegAlloc/PhyRegAlloc.cpp
@@ -48,6 +48,12 @@
 
 RegAllocDebugLevel_t DEBUG_RA;
 
+/// The reoptimizer wants to be able to grovel through the register
+/// allocator's state after it has done its job. This is a hack.
+///
+PhyRegAlloc::SavedStateMapTy ExportedFnAllocState;
+const bool SaveStateToModule = false;
+
 static cl::opt<RegAllocDebugLevel_t, true>
 DRA_opt("dregalloc", cl::Hidden, cl::location(DEBUG_RA),
         cl::desc("enable register allocation debugging information"),
@@ -1184,6 +1190,11 @@
   if (!SaveRegAllocState)
     return false; // Nothing to do here, unless we're saving state.
 
+  if (!SaveStateToModule) {
+    ExportedFnAllocState = FnAllocState;
+    return false;
+  }
+
   // Convert FnAllocState to a single Constant array and add it
   // to the Module.
   ArrayType *AT = ArrayType::get (AllocInfo::getConstantType (), 0);