Added SMS for superblocks as an option (experimental)
authorTanya Lattner <tonic@nondot.org>
Fri, 17 Jun 2005 04:00:22 +0000 (04:00 +0000)
committerTanya Lattner <tonic@nondot.org>
Fri, 17 Jun 2005 04:00:22 +0000 (04:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22238 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9TargetMachine.cpp

index 6842ddcfd26121838c9ec66c03f6490fd991706d..155d4d59ef152c781af86373d98ecc62991a7c86 100644 (file)
@@ -64,7 +64,10 @@ namespace {
                  cl::desc("Emit LLVM-to-MachineCode mapping info to assembly"));
 
   cl::opt<bool> EnableModSched("enable-modsched",
-        cl::desc("Enable sparcv9 modulo scheduling pass instead of local scheduling"), cl::Hidden);
+                cl::desc("Enable modulo scheduling pass"), cl::Hidden);
+
+  cl::opt<bool> EnableSBModSched("enable-modschedSB",
+        cl::desc("Enable superblock modulo scheduling (experimental)"), cl::Hidden);
 
   // Register the target.
   RegisterTarget<SparcV9TargetMachine> X("sparcv9", "  SPARC V9");
@@ -192,6 +195,9 @@ SparcV9TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out
 
   PM.add(createSparcV9BurgInstSelector(*this));
 
+  if(!DisableSched && PrintMachineCode)
+    PM.add(createMachineFunctionPrinterPass(&std::cerr, "Before local scheduling:\n"));
+
   if (!DisableSched)
     PM.add(createInstructionSchedulingWithSSAPass(*this));
 
@@ -202,6 +208,9 @@ SparcV9TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out
   if(EnableModSched)
     PM.add(createModuloSchedulingPass(*this));
 
+  if(EnableSBModSched)
+    PM.add(createModuloSchedulingSBPass(*this));
+
   if (PrintMachineCode)
     PM.add(createMachineFunctionPrinterPass(&std::cerr, "Before reg alloc:\n"));