diff --git a/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp b/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp index 4e36b070b41..34834826bc3 100644 --- a/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp +++ b/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.cpp @@ -7,7 +7,7 @@ #include "Support/StringExtras.h" #include "Support/STLExtras.h" #include -#include +//#include #include "llvm/iOperators.h" #include "llvm/iOther.h" #include "llvm/iPHINode.h" @@ -16,7 +16,7 @@ #include "llvm/Type.h" #include "llvm/CodeGen/MachineCodeForInstruction.h" #include "llvm/CodeGen/MachineInstr.h" -#include "llvm/Target/MachineSchedInfo.h" +#include "llvm/Target/TargetSchedInfo.h" #define UNIDELAY 1 #define min(a, b) ((a) < (b) ? (a) : (b)) @@ -104,7 +104,8 @@ bool isDefinition(const Instruction* I) void ModuloSchedGraph::addDefUseEdges(const BasicBlock* bb) { //collect def instructions, store them in vector - const MachineInstrInfo& mii = target.getInstrInfo(); + // const TargetInstrInfo& mii = target.getInstrInfo(); + const TargetInstrInfo& mii = target.getInstrInfo(); typedef std::vector DefVec; DefVec defVec; @@ -274,7 +275,7 @@ void ModuloSchedGraph::buildNodesforBB (const TargetMachine& target, RegToRefVecMap& regToRefVecMap, ValueToDefVecMap& valueToDefVecMap) { - //const MachineInstrInfo& mii=target.getInstrInfo(); + //const TargetInstrInfo& mii=target.getInstrInfo(); //Build graph nodes for each LLVM instruction and gather def/use info. //Do both together in a single pass over all machine instructions. @@ -889,7 +890,7 @@ void ModuloSchedGraph::buildGraph (const TargetMachine& target) this->dump(bb); if(!isLoop(bb)){ - modSched_os <<" dumping non-loop BB:"< >& ruVec, int } void ModuloSchedGraph::dumpResourceUsage(std::vector< pair > &ru) { - MachineSchedInfo& msi = (MachineSchedInfo&)target.getSchedInfo(); + TargetSchedInfo& msi = (TargetSchedInfo&)target.getSchedInfo(); std::vector > resourceNumVector = msi.resourceNumVector; modSched_os <<"resourceID\t"<<"resourceNum"<<"\n"; @@ -1128,8 +1129,8 @@ void ModuloSchedGraph::dumpResourceUsage(std::vector< pair > &ru) int ModuloSchedGraph::computeResII(const BasicBlock* bb) { - const MachineInstrInfo& mii = target.getInstrInfo(); - const MachineSchedInfo& msi = target.getSchedInfo(); + const TargetInstrInfo& mii = target.getInstrInfo(); + const TargetSchedInfo& msi = target.getSchedInfo(); int ResII; std::vector > resourceUsage; //pair diff --git a/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.h b/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.h index 07fde3ce1c5..c411d14e78d 100644 --- a/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.h +++ b/lib/CodeGen/ModuloScheduling/ModuloSchedGraph.h @@ -13,6 +13,7 @@ #include "../InstrSched/SchedGraphCommon.h" #include "llvm/Instruction.h" #include "llvm/Target/TargetMachine.h" +#include "llvm/Target/TargetInstrInfo.h" #include using std::pair; diff --git a/lib/CodeGen/ModuloScheduling/ModuloScheduling.cpp b/lib/CodeGen/ModuloScheduling/ModuloScheduling.cpp index 3f4002abe2b..08cea9dce9f 100644 --- a/lib/CodeGen/ModuloScheduling/ModuloScheduling.cpp +++ b/lib/CodeGen/ModuloScheduling/ModuloScheduling.cpp @@ -8,9 +8,10 @@ #include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/MachineCodeForInstruction.h" -#include "llvm/CodeGen/MachineCodeForBasicBlock.h" -#include "llvm/CodeGen/MachineCodeForMethod.h" -#include "llvm/Analysis/LiveVar/FunctionLiveVarInfo.h" // FIXME: Remove when modularized better +//#include "llvm/CodeGen/MachineCodeForBasicBlock.h" +//#include "llvm/CodeGen/MachineCodeForMethod.h" +#include "llvm/CodeGen/MachineFunction.h" +//#include "llvm/Analysis/LiveVar/FunctionLiveVarInfo.h" // FIXME: Remove when modularized better #include "llvm/Target/TargetMachine.h" #include "llvm/BasicBlock.h" #include "llvm/Instruction.h" @@ -18,13 +19,13 @@ #include #include "ModuloSchedGraph.h" #include "ModuloScheduling.h" -#include "llvm/Target/MachineSchedInfo.h" +#include "llvm/Target/TargetSchedInfo.h" #include "llvm/BasicBlock.h" #include "llvm/iTerminators.h" #include "llvm/iPHINode.h" #include "llvm/Constants.h" #include -#include +//#include #include #include "llvm/CodeGen/InstrSelection.h" @@ -67,7 +68,7 @@ void ModuloScheduling::instrScheduling(){ modSched_os<<"*************************computing modulo schedule ************************\n"; - const MachineSchedInfo& msi=target.getSchedInfo(); + const TargetSchedInfo& msi=target.getSchedInfo(); //number of issue slots in the in each cycle int numIssueSlots=msi.maxNumIssueTotal; @@ -137,13 +138,13 @@ void ModuloScheduling::instrScheduling(){ } //clear memory from the last round and initialize if necessary -void ModuloScheduling::clearInitMem(const MachineSchedInfo& msi){ +void ModuloScheduling::clearInitMem(const TargetSchedInfo& msi){ unsigned numIssueSlots = msi.maxNumIssueTotal; //clear nodeScheduled from the last round if( ModuloSchedDebugLevel >= ModuloSched_PrintScheduleProcess){ - modSched_os<< "***** new round with II= "<= ModuloSched_PrintScheduleProcess) @@ -620,7 +621,7 @@ bool ModuloScheduling::ScheduleNode(ModuloSchedGraphNode* node,unsigned start, u const Instruction* instr=node->getInst(); MachineCodeForInstruction& tempMvec= MachineCodeForInstruction::get(instr); bool resourceConflict=false; - const MachineInstrInfo &mii=msi.getInstrInfo(); + const TargetInstrInfo &mii=msi.getInstrInfo(); if(coreSchedule.size() < core_i+1 || !coreSchedule[core_i][core_j]){ //this->dumpResourceUsageTable(); @@ -784,10 +785,10 @@ void ModuloScheduling::dumpResourceUsageTable(){ //----------------------------------------------------------------------- void ModuloScheduling::dumpSchedule(std::vector< std::vector > thisSchedule){ - const MachineSchedInfo& msi=target.getSchedInfo(); + const TargetSchedInfo& msi=target.getSchedInfo(); unsigned numIssueSlots=msi.maxNumIssueTotal; for(unsigned i=0;i< numIssueSlots;i++) - modSched_os <<"\t#"; + modSched_os <<"\t#"; modSched_os<<"\n"; for(unsigned i=0;i < thisSchedule.size();i++) { @@ -799,7 +800,7 @@ void ModuloScheduling::dumpSchedule(std::vector< std::vector= ModuloSched_PrintSchedule){ modSched_fb.open("moduloSchedDebugInfo.output", ios::out); - modSched_os<<"******************Modula Scheduling debug information*************************"< +#include + +using std::vector; class ModuloScheduling:NonCopyable { private: @@ -82,7 +85,7 @@ public: //*******************internel functions******************************* private: //clear memory from the last round and initialize if necessary - void clearInitMem(const MachineSchedInfo& ); + void clearInitMem(const TargetSchedInfo& ); //compute schedule and coreSchedule with the current II bool computeSchedule(); diff --git a/lib/Target/SparcV9/ModuloScheduling/ModuloSchedGraph.cpp b/lib/Target/SparcV9/ModuloScheduling/ModuloSchedGraph.cpp index 4e36b070b41..34834826bc3 100644 --- a/lib/Target/SparcV9/ModuloScheduling/ModuloSchedGraph.cpp +++ b/lib/Target/SparcV9/ModuloScheduling/ModuloSchedGraph.cpp @@ -7,7 +7,7 @@ #include "Support/StringExtras.h" #include "Support/STLExtras.h" #include -#include +//#include #include "llvm/iOperators.h" #include "llvm/iOther.h" #include "llvm/iPHINode.h" @@ -16,7 +16,7 @@ #include "llvm/Type.h" #include "llvm/CodeGen/MachineCodeForInstruction.h" #include "llvm/CodeGen/MachineInstr.h" -#include "llvm/Target/MachineSchedInfo.h" +#include "llvm/Target/TargetSchedInfo.h" #define UNIDELAY 1 #define min(a, b) ((a) < (b) ? (a) : (b)) @@ -104,7 +104,8 @@ bool isDefinition(const Instruction* I) void ModuloSchedGraph::addDefUseEdges(const BasicBlock* bb) { //collect def instructions, store them in vector - const MachineInstrInfo& mii = target.getInstrInfo(); + // const TargetInstrInfo& mii = target.getInstrInfo(); + const TargetInstrInfo& mii = target.getInstrInfo(); typedef std::vector DefVec; DefVec defVec; @@ -274,7 +275,7 @@ void ModuloSchedGraph::buildNodesforBB (const TargetMachine& target, RegToRefVecMap& regToRefVecMap, ValueToDefVecMap& valueToDefVecMap) { - //const MachineInstrInfo& mii=target.getInstrInfo(); + //const TargetInstrInfo& mii=target.getInstrInfo(); //Build graph nodes for each LLVM instruction and gather def/use info. //Do both together in a single pass over all machine instructions. @@ -889,7 +890,7 @@ void ModuloSchedGraph::buildGraph (const TargetMachine& target) this->dump(bb); if(!isLoop(bb)){ - modSched_os <<" dumping non-loop BB:"< >& ruVec, int } void ModuloSchedGraph::dumpResourceUsage(std::vector< pair > &ru) { - MachineSchedInfo& msi = (MachineSchedInfo&)target.getSchedInfo(); + TargetSchedInfo& msi = (TargetSchedInfo&)target.getSchedInfo(); std::vector > resourceNumVector = msi.resourceNumVector; modSched_os <<"resourceID\t"<<"resourceNum"<<"\n"; @@ -1128,8 +1129,8 @@ void ModuloSchedGraph::dumpResourceUsage(std::vector< pair > &ru) int ModuloSchedGraph::computeResII(const BasicBlock* bb) { - const MachineInstrInfo& mii = target.getInstrInfo(); - const MachineSchedInfo& msi = target.getSchedInfo(); + const TargetInstrInfo& mii = target.getInstrInfo(); + const TargetSchedInfo& msi = target.getSchedInfo(); int ResII; std::vector > resourceUsage; //pair diff --git a/lib/Target/SparcV9/ModuloScheduling/ModuloSchedGraph.h b/lib/Target/SparcV9/ModuloScheduling/ModuloSchedGraph.h index 07fde3ce1c5..c411d14e78d 100644 --- a/lib/Target/SparcV9/ModuloScheduling/ModuloSchedGraph.h +++ b/lib/Target/SparcV9/ModuloScheduling/ModuloSchedGraph.h @@ -13,6 +13,7 @@ #include "../InstrSched/SchedGraphCommon.h" #include "llvm/Instruction.h" #include "llvm/Target/TargetMachine.h" +#include "llvm/Target/TargetInstrInfo.h" #include using std::pair; diff --git a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp index 3f4002abe2b..08cea9dce9f 100644 --- a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp +++ b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.cpp @@ -8,9 +8,10 @@ #include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/MachineCodeForInstruction.h" -#include "llvm/CodeGen/MachineCodeForBasicBlock.h" -#include "llvm/CodeGen/MachineCodeForMethod.h" -#include "llvm/Analysis/LiveVar/FunctionLiveVarInfo.h" // FIXME: Remove when modularized better +//#include "llvm/CodeGen/MachineCodeForBasicBlock.h" +//#include "llvm/CodeGen/MachineCodeForMethod.h" +#include "llvm/CodeGen/MachineFunction.h" +//#include "llvm/Analysis/LiveVar/FunctionLiveVarInfo.h" // FIXME: Remove when modularized better #include "llvm/Target/TargetMachine.h" #include "llvm/BasicBlock.h" #include "llvm/Instruction.h" @@ -18,13 +19,13 @@ #include #include "ModuloSchedGraph.h" #include "ModuloScheduling.h" -#include "llvm/Target/MachineSchedInfo.h" +#include "llvm/Target/TargetSchedInfo.h" #include "llvm/BasicBlock.h" #include "llvm/iTerminators.h" #include "llvm/iPHINode.h" #include "llvm/Constants.h" #include -#include +//#include #include #include "llvm/CodeGen/InstrSelection.h" @@ -67,7 +68,7 @@ void ModuloScheduling::instrScheduling(){ modSched_os<<"*************************computing modulo schedule ************************\n"; - const MachineSchedInfo& msi=target.getSchedInfo(); + const TargetSchedInfo& msi=target.getSchedInfo(); //number of issue slots in the in each cycle int numIssueSlots=msi.maxNumIssueTotal; @@ -137,13 +138,13 @@ void ModuloScheduling::instrScheduling(){ } //clear memory from the last round and initialize if necessary -void ModuloScheduling::clearInitMem(const MachineSchedInfo& msi){ +void ModuloScheduling::clearInitMem(const TargetSchedInfo& msi){ unsigned numIssueSlots = msi.maxNumIssueTotal; //clear nodeScheduled from the last round if( ModuloSchedDebugLevel >= ModuloSched_PrintScheduleProcess){ - modSched_os<< "***** new round with II= "<= ModuloSched_PrintScheduleProcess) @@ -620,7 +621,7 @@ bool ModuloScheduling::ScheduleNode(ModuloSchedGraphNode* node,unsigned start, u const Instruction* instr=node->getInst(); MachineCodeForInstruction& tempMvec= MachineCodeForInstruction::get(instr); bool resourceConflict=false; - const MachineInstrInfo &mii=msi.getInstrInfo(); + const TargetInstrInfo &mii=msi.getInstrInfo(); if(coreSchedule.size() < core_i+1 || !coreSchedule[core_i][core_j]){ //this->dumpResourceUsageTable(); @@ -784,10 +785,10 @@ void ModuloScheduling::dumpResourceUsageTable(){ //----------------------------------------------------------------------- void ModuloScheduling::dumpSchedule(std::vector< std::vector > thisSchedule){ - const MachineSchedInfo& msi=target.getSchedInfo(); + const TargetSchedInfo& msi=target.getSchedInfo(); unsigned numIssueSlots=msi.maxNumIssueTotal; for(unsigned i=0;i< numIssueSlots;i++) - modSched_os <<"\t#"; + modSched_os <<"\t#"; modSched_os<<"\n"; for(unsigned i=0;i < thisSchedule.size();i++) { @@ -799,7 +800,7 @@ void ModuloScheduling::dumpSchedule(std::vector< std::vector= ModuloSched_PrintSchedule){ modSched_fb.open("moduloSchedDebugInfo.output", ios::out); - modSched_os<<"******************Modula Scheduling debug information*************************"< +#include + +using std::vector; class ModuloScheduling:NonCopyable { private: @@ -82,7 +85,7 @@ public: //*******************internel functions******************************* private: //clear memory from the last round and initialize if necessary - void clearInitMem(const MachineSchedInfo& ); + void clearInitMem(const TargetSchedInfo& ); //compute schedule and coreSchedule with the current II bool computeSchedule();