diff options
author | David Green <david.green@arm.com> | 2019-11-05 11:54:22 +0000 |
---|---|---|
committer | David Green <david.green@arm.com> | 2019-11-05 11:58:50 +0000 |
commit | f01b9aa89e8cd5d3cca0e13835302f69c1f879d2 (patch) | |
tree | a5d0b05cc67d76fd49624bc08a38c94b5f7cb4e2 /llvm/lib/CodeGen/MachineScheduler.cpp | |
parent | 2d21068d9fa05df9e986020353224ec7449fbe68 (diff) | |
download | bcm5719-llvm-f01b9aa89e8cd5d3cca0e13835302f69c1f879d2.tar.gz bcm5719-llvm-f01b9aa89e8cd5d3cca0e13835302f69c1f879d2.zip |
[MachineScheduler] Enable AA in PostRA Machine scheduler
This adds AA to Post-RA Machine Scheduling, allowing the pass more
freedom when handling memory operations.
My understanding is that this was just never done, not that it is
inherently incorrect to do so. The older PostRA List scheduler already
makes use of AA, it's just that the MI PostRA Scheduler was never taught
to use it.
Differential Revision: https://reviews.llvm.org/D69814
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineScheduler.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp index caebb953439..df88a879db7 100644 --- a/llvm/lib/CodeGen/MachineScheduler.cpp +++ b/llvm/lib/CodeGen/MachineScheduler.cpp @@ -238,6 +238,7 @@ void PostMachineScheduler::getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesCFG(); AU.addRequired<MachineDominatorTree>(); AU.addRequired<MachineLoopInfo>(); + AU.addRequired<AAResultsWrapperPass>(); AU.addRequired<TargetPassConfig>(); MachineFunctionPass::getAnalysisUsage(AU); } @@ -412,6 +413,7 @@ bool PostMachineScheduler::runOnMachineFunction(MachineFunction &mf) { MF = &mf; MLI = &getAnalysis<MachineLoopInfo>(); PassConfig = &getAnalysis<TargetPassConfig>(); + AA = &getAnalysis<AAResultsWrapperPass>().getAAResults(); if (VerifyScheduling) MF->verify(this, "Before post machine scheduling."); |