Move if-conversion after all passes that may use register scavenger.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 16 May 2007 20:52:46 +0000 (20:52 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 16 May 2007 20:52:46 +0000 (20:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37120 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMTargetMachine.cpp
lib/Target/ARM/ARMTargetMachine.h

index 57b644026db9ce6d34fd2bcf1d5e1dde4b4381fb..fc03da1a8da3beb6976a1ecc467a1698b53ca36e 100644 (file)
@@ -88,19 +88,14 @@ bool ARMTargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) {
   return false;
 }
 
-bool ARMTargetMachine::addPostRegAlloc(FunctionPassManager &PM, bool Fast) {
-  if (Fast || !EnableIfConversion || Subtarget.isThumb())
-    return false;
-
-  PM.add(createIfConverterPass());
-  return true;
-}
-
 bool ARMTargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) {
   // FIXME: temporarily disabling load / store optimization pass for Thumb mode.
   if (!Fast && !DisableLdStOpti && !Subtarget.isThumb())
     PM.add(createARMLoadStoreOptimizationPass());
   
+  if (!Fast && EnableIfConversion && !Subtarget.isThumb())
+    PM.add(createIfConverterPass());
+
   PM.add(createARMConstantIslandPass());
   return true;
 }
index dcdd1285f543df6e7f91bca292b9684b52aa9c8a..a50275c675f784bf031471e84fe795964b17b8a8 100644 (file)
@@ -53,7 +53,6 @@ public:
   
   // Pass Pipeline Configuration
   virtual bool addInstSelector(FunctionPassManager &PM, bool Fast);
-  virtual bool addPostRegAlloc(FunctionPassManager &PM, bool Fast);
   virtual bool addPreEmitPass(FunctionPassManager &PM, bool Fast);
   virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, 
                                   std::ostream &Out);