aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/DFAPacketizer.cpp
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2015-12-14 20:35:13 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2015-12-14 20:35:13 +0000
commitdac71028744b4b2fb13252451a3eb7676e4e7411 (patch)
treecba1c1db6cbcb35d4ae987aaed217415c15c1b4e /llvm/lib/CodeGen/DFAPacketizer.cpp
parent2f264c31d3967e7962bd44ae79f0876f58268aa3 (diff)
downloadllvm-dac71028744b4b2fb13252451a3eb7676e4e7411.zip
llvm-dac71028744b4b2fb13252451a3eb7676e4e7411.tar.gz
llvm-dac71028744b4b2fb13252451a3eb7676e4e7411.tar.bz2
[Packetizer] Add AliasAnalysis as a parameter to the packetizer
This will make the depedence graph more accurate if an alias analysis is provided. If nullptr is specified in its place, the behavior will remain as it is currently. llvm-svn: 255540
Diffstat (limited to 'llvm/lib/CodeGen/DFAPacketizer.cpp')
-rw-r--r--llvm/lib/CodeGen/DFAPacketizer.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/llvm/lib/CodeGen/DFAPacketizer.cpp b/llvm/lib/CodeGen/DFAPacketizer.cpp
index 0970812..80e03d9 100644
--- a/llvm/lib/CodeGen/DFAPacketizer.cpp
+++ b/llvm/lib/CodeGen/DFAPacketizer.cpp
@@ -149,31 +149,35 @@ namespace llvm {
// DefaultVLIWScheduler - This class extends ScheduleDAGInstrs and overrides
// Schedule method to build the dependence graph.
class DefaultVLIWScheduler : public ScheduleDAGInstrs {
+private:
+ AliasAnalysis *AA;
public:
- DefaultVLIWScheduler(MachineFunction &MF, MachineLoopInfo &MLI);
+ DefaultVLIWScheduler(MachineFunction &MF, MachineLoopInfo &MLI,
+ AliasAnalysis *AA);
// Schedule - Actual scheduling work.
void schedule() override;
};
}
DefaultVLIWScheduler::DefaultVLIWScheduler(MachineFunction &MF,
- MachineLoopInfo &MLI)
- : ScheduleDAGInstrs(MF, &MLI) {
+ MachineLoopInfo &MLI,
+ AliasAnalysis *AA)
+ : ScheduleDAGInstrs(MF, &MLI), AA(AA) {
CanHandleTerminators = true;
}
void DefaultVLIWScheduler::schedule() {
// Build the scheduling graph.
- buildSchedGraph(nullptr);
+ buildSchedGraph(AA);
}
// VLIWPacketizerList Ctor
VLIWPacketizerList::VLIWPacketizerList(MachineFunction &MF,
- MachineLoopInfo &MLI)
- : MF(MF) {
+ MachineLoopInfo &MLI, AliasAnalysis *AA)
+ : MF(MF), AA(AA) {
TII = MF.getSubtarget().getInstrInfo();
ResourceTracker = TII->CreateTargetScheduleState(MF.getSubtarget());
- VLIWScheduler = new DefaultVLIWScheduler(MF, MLI);
+ VLIWScheduler = new DefaultVLIWScheduler(MF, MLI, AA);
}
// VLIWPacketizerList Dtor