[llvm-commits] CVS: llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp

Tanya Brethour tbrethou at cs.uiuc.edu
Thu Nov 18 10:38:31 PST 2004



Changes in directory llvm/lib/Target/SparcV9:

SparcV9TargetMachine.cpp updated: 1.124 -> 1.125
---
Log message:

Adding option to llc for ModuloScheduling. By default it is turned off.


---
Diffs of the changes:  (+13 -2)

Index: llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp
diff -u llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.124 llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.125
--- llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp:1.124	Thu Sep 30 15:20:01 2004
+++ llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp	Thu Nov 18 12:37:49 2004
@@ -66,6 +66,9 @@
   cl::opt<bool> DisableStrip("disable-strip",
                       cl::desc("Do not strip the LLVM bytecode in executable"));
 
+  
+  cl::opt<bool> EnableModSched("enable-ModSched", cl::desc("Enable modulo scheduling pass instead of local scheduling"));
+
   // Register the target.
   RegisterTarget<SparcV9TargetMachine> X("sparcv9", "  SPARC V9");
 }
@@ -192,9 +195,17 @@
   
   PM.add(createSparcV9BurgInstSelector(*this));
 
-  if (!DisableSched)
-    PM.add(createInstructionSchedulingWithSSAPass(*this));
+  if(PrintMachineCode)
+    PM.add(createMachineFunctionPrinterPass(&std::cerr, "Before modulo scheduling:\n"));
 
+  //Use ModuloScheduling if enabled, otherwise use local scheduling if not disabled.
+  if(EnableModSched)
+    PM.add(createModuloSchedulingPass(*this));
+  else {
+    if (!DisableSched)
+      PM.add(createInstructionSchedulingWithSSAPass(*this));
+  }
+  
   if (PrintMachineCode)
     PM.add(createMachineFunctionPrinterPass(&std::cerr, "Before reg alloc:\n"));
 






More information about the llvm-commits mailing list