don't create the post-ra scheduler unless it is enabled.
authorChris Lattner <sabre@nondot.org>
Mon, 14 Jan 2008 19:00:06 +0000 (19:00 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 14 Jan 2008 19:00:06 +0000 (19:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45972 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LLVMTargetMachine.cpp
lib/CodeGen/PostRASchedulerList.cpp

index b6554356eead47c020ed9f6d98abce9917b145c0..351554bb193e9c6d57006e17f747883d3c03aa26 100644 (file)
@@ -41,6 +41,12 @@ PerformLICM("machine-licm",
             cl::init(false), cl::Hidden,
             cl::desc("Perform loop-invariant code motion on machine code"));
 
+// When this works it will be on by default.
+static cl::opt<bool>
+DisablePostRAScheduler("disable-post-RA-scheduler",
+                       cl::desc("Disable scheduling after register allocation"),
+                       cl::init(true));
+
 FileModel::Model
 LLVMTargetMachine::addPassesToEmitFile(FunctionPassManager &PM,
                                        std::ostream &Out,
@@ -103,7 +109,7 @@ LLVMTargetMachine::addPassesToEmitFile(FunctionPassManager &PM,
   PM.add(createPrologEpilogCodeInserter());
   
   // Second pass scheduler.
-  if (!Fast)
+  if (!Fast && !DisablePostRAScheduler)
     PM.add(createPostRAScheduler());
 
   // Branch folding must be run after regalloc and prolog/epilog insertion.
index c161134ed45324c410b9432fbbf2e6d5c5b4f3c5..8c9776e07a945c6574e61ac80cda4c7285c1211e 100644 (file)
 #define DEBUG_TYPE "post-RA-sched"
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/Support/Compiler.h"
 #include "llvm/Support/Debug.h"
-//#include "llvm/ADT/Statistic.h"
-//#include <climits>
-//#include <queue>
-#include "llvm/Support/CommandLine.h"
 using namespace llvm;
 
 namespace {
-  bool NoPostRAScheduling;
-
-  // When this works it will be on by default.
-  cl::opt<bool, true>
-  DisablePostRAScheduler("disable-post-RA-scheduler",
-               cl::desc("Disable scheduling after register allocation"),
-               cl::location(NoPostRAScheduling),
-               cl::init(true));
-
   class VISIBILITY_HIDDEN SchedulePostRATDList : public MachineFunctionPass {
   public:
     static char ID;
@@ -56,9 +44,6 @@ namespace {
 }
 
 bool SchedulePostRATDList::runOnMachineFunction(MachineFunction &Fn) {
-  if (NoPostRAScheduling)
-    return true;
-
   DOUT << "SchedulePostRATDList\n";
   MF = &Fn;
   TM = &MF->getTarget();