summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h')
-rw-r--r--llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h b/llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h
index d9f42a25b4a..92a942b43c1 100644
--- a/llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h
+++ b/llvm/lib/Target/SparcV9/ModuloScheduling/MSSchedule.h
@@ -28,7 +28,9 @@ namespace llvm {
std::map<int, std::map<int, int> > resourceNumPerCycle;
//Check if all resources are free
- bool resourcesFree(MSchedGraphNode*, int);
+ bool resourcesFree(MSchedGraphNode*, int, int II);
+ bool resourceAvailable(int resourceNum, int cycle);
+ void useResource(int resourceNum, int cycle);
//Resulting kernel
std::vector<std::pair<MachineInstr*, int> > kernel;
@@ -42,13 +44,13 @@ namespace llvm {
public:
MSSchedule(int num) : numIssue(num) {}
MSSchedule() : numIssue(4) {}
- bool insert(MSchedGraphNode *node, int cycle);
+ bool insert(MSchedGraphNode *node, int cycle, int II);
int getStartCycle(MSchedGraphNode *node);
void clear() { schedule.clear(); resourceNumPerCycle.clear(); kernel.clear(); }
std::vector<std::pair<MachineInstr*, int> >* getKernel() { return &kernel; }
bool constructKernel(int II, std::vector<MSchedGraphNode*> &branches, std::map<const MachineInstr*, unsigned> &indVar);
int getMaxStage() { return maxStage; }
-
+ bool defPreviousStage(Value *def, int stage);
//iterators
typedef std::map<int, std::vector<MSchedGraphNode*> >::iterator schedule_iterator;
OpenPOWER on IntegriCloud