summaryrefslogtreecommitdiff
path: root/lib/CodeGen/MachineScheduler.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-02-13 19:22:27 +0000
committerAndrew Trick <atrick@apple.com>2013-02-13 19:22:27 +0000
commitecb8c2ba6029f02b01b20b110cc1b3b3ea2e1f1c (patch)
tree74b4f150ccd0e2e3346190fda382c42ca1f54ced /lib/CodeGen/MachineScheduler.cpp
parentaf7c042af1f0f890be38e0d484ab1e7751565c7b (diff)
downloadllvm-ecb8c2ba6029f02b01b20b110cc1b3b3ea2e1f1c.tar.gz
llvm-ecb8c2ba6029f02b01b20b110cc1b3b3ea2e1f1c.tar.bz2
llvm-ecb8c2ba6029f02b01b20b110cc1b3b3ea2e1f1c.tar.xz
MIsched: HazardRecognizers are created for each DAG. Free them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175067 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/MachineScheduler.cpp')
-rw-r--r--lib/CodeGen/MachineScheduler.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/CodeGen/MachineScheduler.cpp b/lib/CodeGen/MachineScheduler.cpp
index 513d8a9268..ddaf56627b 100644
--- a/lib/CodeGen/MachineScheduler.cpp
+++ b/lib/CodeGen/MachineScheduler.cpp
@@ -1054,6 +1054,9 @@ public:
#endif
void reset() {
+ // A new HazardRec is created for each DAG and owned by SchedBoundary.
+ delete HazardRec;
+
Available.clear();
Pending.clear();
CheckPending = false;
@@ -1079,7 +1082,8 @@ public:
/// PendingFlag set.
SchedBoundary(unsigned ID, const Twine &Name):
DAG(0), SchedModel(0), Rem(0), Available(ID, Name+".A"),
- Pending(ID << ConvergingScheduler::LogMaxQID, Name+".P") {
+ Pending(ID << ConvergingScheduler::LogMaxQID, Name+".P"),
+ HazardRec(0) {
reset();
}
@@ -1223,6 +1227,7 @@ void ConvergingScheduler::initialize(ScheduleDAGMI *dag) {
DAG = dag;
SchedModel = DAG->getSchedModel();
TRI = DAG->TRI;
+
Rem.init(DAG, SchedModel);
Top.init(DAG, SchedModel, &Rem);
Bot.init(DAG, SchedModel, &Rem);