diff --git a/lib/Target/SparcV9/SparcV9TargetMachine.cpp b/lib/Target/SparcV9/SparcV9TargetMachine.cpp index 6842ddcfd26..155d4d59ef1 100644 --- a/lib/Target/SparcV9/SparcV9TargetMachine.cpp +++ b/lib/Target/SparcV9/SparcV9TargetMachine.cpp @@ -64,7 +64,10 @@ namespace { cl::desc("Emit LLVM-to-MachineCode mapping info to assembly")); cl::opt 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 EnableSBModSched("enable-modschedSB", + cl::desc("Enable superblock modulo scheduling (experimental)"), cl::Hidden); // Register the target. RegisterTarget 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"));