[CodeGen] Don't require AA in TwoAddress at -O0.
This is a follow-up to r302611, which moved an -O0 computation of DT from SDAGISel to TwoAddress. Don't use it here either, and avoid computing it completely. The only use was forwarding the analysis as an optional argument to utility functions. Differential Revision: https://reviews.llvm.org/D32766 llvm-svn: 302612
This commit is contained in:
parent
604526fe87
commit
a09ff59cc2
|
@ -155,7 +155,7 @@ public:
|
||||||
|
|
||||||
void getAnalysisUsage(AnalysisUsage &AU) const override {
|
void getAnalysisUsage(AnalysisUsage &AU) const override {
|
||||||
AU.setPreservesCFG();
|
AU.setPreservesCFG();
|
||||||
AU.addRequired<AAResultsWrapperPass>();
|
AU.addUsedIfAvailable<AAResultsWrapperPass>();
|
||||||
AU.addUsedIfAvailable<LiveVariables>();
|
AU.addUsedIfAvailable<LiveVariables>();
|
||||||
AU.addPreserved<LiveVariables>();
|
AU.addPreserved<LiveVariables>();
|
||||||
AU.addPreserved<SlotIndexes>();
|
AU.addPreserved<SlotIndexes>();
|
||||||
|
@ -1627,7 +1627,10 @@ bool TwoAddressInstructionPass::runOnMachineFunction(MachineFunction &Func) {
|
||||||
InstrItins = MF->getSubtarget().getInstrItineraryData();
|
InstrItins = MF->getSubtarget().getInstrItineraryData();
|
||||||
LV = getAnalysisIfAvailable<LiveVariables>();
|
LV = getAnalysisIfAvailable<LiveVariables>();
|
||||||
LIS = getAnalysisIfAvailable<LiveIntervals>();
|
LIS = getAnalysisIfAvailable<LiveIntervals>();
|
||||||
AA = &getAnalysis<AAResultsWrapperPass>().getAAResults();
|
if (auto *AAPass = getAnalysisIfAvailable<AAResultsWrapperPass>())
|
||||||
|
AA = &AAPass->getAAResults();
|
||||||
|
else
|
||||||
|
AA = nullptr;
|
||||||
OptLevel = TM.getOptLevel();
|
OptLevel = TM.getOptLevel();
|
||||||
|
|
||||||
bool MadeChange = false;
|
bool MadeChange = false;
|
||||||
|
|
|
@ -36,9 +36,6 @@
|
||||||
; CHECK-NEXT: Local Stack Slot Allocation
|
; CHECK-NEXT: Local Stack Slot Allocation
|
||||||
; CHECK-NEXT: X86 WinAlloca Expander
|
; CHECK-NEXT: X86 WinAlloca Expander
|
||||||
; CHECK-NEXT: Eliminate PHI nodes for register allocation
|
; CHECK-NEXT: Eliminate PHI nodes for register allocation
|
||||||
; CHECK-NEXT: Dominator Tree Construction
|
|
||||||
; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
|
|
||||||
; CHECK-NEXT: Function Alias Analysis Results
|
|
||||||
; CHECK-NEXT: Two-Address instruction pass
|
; CHECK-NEXT: Two-Address instruction pass
|
||||||
; CHECK-NEXT: Fast Register Allocator
|
; CHECK-NEXT: Fast Register Allocator
|
||||||
; CHECK-NEXT: Bundle Machine CFG Edges
|
; CHECK-NEXT: Bundle Machine CFG Edges
|
||||||
|
|
Loading…
Reference in New Issue