summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2005-06-17 04:00:22 +0000
committerTanya Lattner <tonic@nondot.org>2005-06-17 04:00:22 +0000
commitb1ba8df090eaacdb79bf892633cf6ebc53b2a00e (patch)
tree8865a715fd338a87f2a58938bdd768d80329de9c /llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp
parentdba361d134e01d7b547998bd3b44265089c4e46b (diff)
downloadbcm5719-llvm-b1ba8df090eaacdb79bf892633cf6ebc53b2a00e.tar.gz
bcm5719-llvm-b1ba8df090eaacdb79bf892633cf6ebc53b2a00e.zip
Added SMS for superblocks as an option (experimental)
llvm-svn: 22238
Diffstat (limited to 'llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp')
-rw-r--r--llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp b/llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp
index 6842ddcfd26..155d4d59ef1 100644
--- a/llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp
+++ b/llvm/lib/Target/SparcV9/SparcV9TargetMachine.cpp
@@ -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"));
OpenPOWER on IntegriCloud