summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2012-04-01 07:24:23 +0000
committerAndrew Trick <atrick@apple.com>2012-04-01 07:24:23 +0000
commit779b32a44e3ca47bb30b799bdf42ef4a6aa776ab (patch)
treeb865bb8be1495eccdf9f82aa97b054350c7edb59
parentf5becf617fed46365ad333435897a96aefd0b174 (diff)
downloadbcm5719-llvm-779b32a44e3ca47bb30b799bdf42ef4a6aa776ab.tar.gz
bcm5719-llvm-779b32a44e3ca47bb30b799bdf42ef4a6aa776ab.zip
misched: Add finalizeScheduler to complete the target interface.
llvm-svn: 153827
-rw-r--r--llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h4
-rw-r--r--llvm/lib/CodeGen/MachineScheduler.cpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h b/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
index a08f6cc7f70..c8de7bc8f89 100644
--- a/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
+++ b/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h
@@ -296,6 +296,10 @@ namespace llvm {
/// overriding enterRegion() or exitRegion().
virtual void schedule() = 0;
+ /// finalizeSchedule - Allow targets to perform final scheduling actions at
+ /// the level of the whole MachineFunction. By default does nothing.
+ virtual void finalizeSchedule() {}
+
virtual void dumpNode(const SUnit *SU) const;
/// Return a label for a DAG node that points to an instruction.
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp
index 364a2442759..1d3241b8cc6 100644
--- a/llvm/lib/CodeGen/MachineScheduler.cpp
+++ b/llvm/lib/CodeGen/MachineScheduler.cpp
@@ -227,6 +227,7 @@ bool MachineScheduler::runOnMachineFunction(MachineFunction &mf) {
assert(RemainingCount == 0 && "Instruction count mismatch!");
Scheduler->finishBlock();
}
+ Scheduler->finalizeSchedule();
DEBUG(LIS->print(dbgs()));
return true;
}
OpenPOWER on IntegriCloud