Get rid of the abort in PhyRegAlloc::finishSavingState().
authorBrian Gaeke <gaeke@uiuc.edu>
Thu, 11 Mar 2004 19:46:30 +0000 (19:46 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Thu, 11 Mar 2004 19:46:30 +0000 (19:46 +0000)
Make an explicit call to it from runOnFunction() if we know we're supposed to
write into the global. This is lame (esp. the const_cast), but it solves
the problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12291 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp

index 1428fc666d036a562462846733e00b368eeb935d..15243311764eb142d61c16474a81fa23c08eddbe 100644 (file)
@@ -1232,9 +1232,9 @@ bool PhyRegAlloc::doFinalization (Module &M) {
 /// state; this one is cumbersome and does not work well with the JIT.
 ///
 void PhyRegAlloc::finishSavingState (Module &M) {
-  std::cerr << "---- Saving reg. alloc state; SaveStateToModule = "
-            << SaveStateToModule << " ----\n";
-  abort ();
+  if (DEBUG_RA)
+    std::cerr << "---- Saving reg. alloc state; SaveStateToModule = "
+              << SaveStateToModule << " ----\n";
 
   // If saving state into the module, just copy new elements to the
   // correct global.
@@ -1379,9 +1379,10 @@ bool PhyRegAlloc::runOnFunction (Function &F) {
   // Save register allocation state for this function in a Constant.
   if (SaveRegAllocState) {
     saveState();
-    if (DEBUG_RA) // Check our work.
+    if (DEBUG_RA) // Check our work.
       verifySavedState ();
-    }
+    if (!SaveStateToModule)
+      finishSavingState (const_cast<Module&> (*Fn->getParent ()));
   }
 
   // Now update the machine code with register names and add any additional