Skip to content

Commit 81dd9f5

Browse files
authored
Revert "[AA] Move Target Specific AA before BasicAA (#125965)"
This reverts commit 94d9336.
1 parent 2040f50 commit 81dd9f5

File tree

8 files changed

+14
-77
lines changed

8 files changed

+14
-77
lines changed

llvm/include/llvm/Analysis/AliasAnalysis.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,18 +1013,6 @@ struct ExternalAAWrapperPass : ImmutablePass {
10131013

10141014
explicit ExternalAAWrapperPass(CallbackT CB);
10151015

1016-
/// Returns whether this external AA should run before Basic AA.
1017-
///
1018-
/// By default, external AA passes are run after Basic AA. If this returns
1019-
/// true, the external AA will be run before Basic AA during alias analysis.
1020-
///
1021-
/// For some targets, we prefer to run the external AA early to improve
1022-
/// compile time as it has more target-specific information. This is
1023-
/// particularly useful when the external AA can provide more precise results
1024-
/// than Basic AA so that Basic AA does not need to spend time recomputing
1025-
/// them.
1026-
virtual bool runEarly() { return false; }
1027-
10281016
void getAnalysisUsage(AnalysisUsage &AU) const override {
10291017
AU.setPreservesAll();
10301018
}

llvm/include/llvm/Target/TargetMachine.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -396,11 +396,6 @@ class TargetMachine {
396396
// TODO: Populate all pass names by using <Target>PassRegistry.def.
397397
virtual void registerPassBuilderCallbacks(PassBuilder &) {}
398398

399-
/// Allow the target to register early alias analyses (AA before BasicAA) with
400-
/// the AAManager for use with the new pass manager. Only affects the
401-
/// "default" AAManager.
402-
virtual void registerEarlyDefaultAliasAnalyses(AAManager &) {}
403-
404399
/// Allow the target to register alias analyses with the AAManager for use
405400
/// with the new pass manager. Only affects the "default" AAManager.
406401
virtual void registerDefaultAliasAnalyses(AAManager &) {}

llvm/lib/Analysis/AliasAnalysis.cpp

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -739,49 +739,28 @@ bool AAResultsWrapperPass::runOnFunction(Function &F) {
739739
AAR.reset(
740740
new AAResults(getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F)));
741741

742-
// Add any target-specific alias analyses that should be run early.
743-
auto *ExtWrapperPass = getAnalysisIfAvailable<ExternalAAWrapperPass>();
744-
if (ExtWrapperPass && ExtWrapperPass->runEarly() && ExtWrapperPass->CB) {
745-
LLVM_DEBUG(dbgs() << "AAResults register Early ExternalAA: "
746-
<< ExtWrapperPass->getPassName() << "\n");
747-
ExtWrapperPass->CB(*this, F, *AAR);
748-
}
749-
750742
// BasicAA is always available for function analyses. Also, we add it first
751743
// so that it can trump TBAA results when it proves MustAlias.
752744
// FIXME: TBAA should have an explicit mode to support this and then we
753745
// should reconsider the ordering here.
754-
if (!DisableBasicAA) {
755-
LLVM_DEBUG(dbgs() << "AAResults register BasicAA\n");
746+
if (!DisableBasicAA)
756747
AAR->addAAResult(getAnalysis<BasicAAWrapperPass>().getResult());
757-
}
758748

759749
// Populate the results with the currently available AAs.
760-
if (auto *WrapperPass =
761-
getAnalysisIfAvailable<ScopedNoAliasAAWrapperPass>()) {
762-
LLVM_DEBUG(dbgs() << "AAResults register ScopedNoAliasAA\n");
750+
if (auto *WrapperPass = getAnalysisIfAvailable<ScopedNoAliasAAWrapperPass>())
763751
AAR->addAAResult(WrapperPass->getResult());
764-
}
765-
if (auto *WrapperPass = getAnalysisIfAvailable<TypeBasedAAWrapperPass>()) {
766-
LLVM_DEBUG(dbgs() << "AAResults register TypeBasedAA\n");
752+
if (auto *WrapperPass = getAnalysisIfAvailable<TypeBasedAAWrapperPass>())
767753
AAR->addAAResult(WrapperPass->getResult());
768-
}
769-
if (auto *WrapperPass = getAnalysisIfAvailable<GlobalsAAWrapperPass>()) {
770-
LLVM_DEBUG(dbgs() << "AAResults register GlobalsAA\n");
754+
if (auto *WrapperPass = getAnalysisIfAvailable<GlobalsAAWrapperPass>())
771755
AAR->addAAResult(WrapperPass->getResult());
772-
}
773-
if (auto *WrapperPass = getAnalysisIfAvailable<SCEVAAWrapperPass>()) {
774-
LLVM_DEBUG(dbgs() << "AAResults register SCEVAA\n");
756+
if (auto *WrapperPass = getAnalysisIfAvailable<SCEVAAWrapperPass>())
775757
AAR->addAAResult(WrapperPass->getResult());
776-
}
777758

778759
// If available, run an external AA providing callback over the results as
779760
// well.
780-
if (ExtWrapperPass && !ExtWrapperPass->runEarly() && ExtWrapperPass->CB) {
781-
LLVM_DEBUG(dbgs() << "AAResults register Late ExternalAA: "
782-
<< ExtWrapperPass->getPassName() << "\n");
783-
ExtWrapperPass->CB(*this, F, *AAR);
784-
}
761+
if (auto *WrapperPass = getAnalysisIfAvailable<ExternalAAWrapperPass>())
762+
if (WrapperPass->CB)
763+
WrapperPass->CB(*this, F, *AAR);
785764

786765
// Analyses don't mutate the IR, so return false.
787766
return false;

llvm/lib/Passes/PassBuilderPipelines.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2320,10 +2320,6 @@ AAManager PassBuilder::buildDefaultAAPipeline() {
23202320
// The order in which these are registered determines their priority when
23212321
// being queried.
23222322

2323-
// Add any target-specific alias analyses that should be run early.
2324-
if (TM)
2325-
TM->registerEarlyDefaultAliasAnalyses(AA);
2326-
23272323
// First we register the basic alias analysis that provides the majority of
23282324
// per-function local AA logic. This is a stateless, on-demand local set of
23292325
// AA techniques.

llvm/lib/Target/NVPTX/NVPTXAliasAnalysis.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,23 +85,16 @@ class NVPTXAAWrapperPass : public ImmutablePass {
8585

8686
// Wrapper around ExternalAAWrapperPass so that the default
8787
// constructor gets the callback.
88-
// Note that NVPTXAA will run before BasicAA for compile time considerations.
8988
class NVPTXExternalAAWrapper : public ExternalAAWrapperPass {
9089
public:
9190
static char ID;
9291

93-
bool runEarly() override { return true; }
94-
9592
NVPTXExternalAAWrapper()
9693
: ExternalAAWrapperPass([](Pass &P, Function &, AAResults &AAR) {
9794
if (auto *WrapperPass =
9895
P.getAnalysisIfAvailable<NVPTXAAWrapperPass>())
9996
AAR.addAAResult(WrapperPass->getResult());
10097
}) {}
101-
102-
StringRef getPassName() const override {
103-
return "NVPTX Address space based Alias Analysis Wrapper";
104-
}
10598
};
10699

107100
ImmutablePass *createNVPTXAAWrapperPass();

llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ MachineFunctionInfo *NVPTXTargetMachine::createMachineFunctionInfo(
234234
F, STI);
235235
}
236236

237-
void NVPTXTargetMachine::registerEarlyDefaultAliasAnalyses(AAManager &AAM) {
237+
void NVPTXTargetMachine::registerDefaultAliasAnalyses(AAManager &AAM) {
238238
AAM.registerFunctionAnalysis<NVPTXAA>();
239239
}
240240

@@ -349,7 +349,10 @@ void NVPTXPassConfig::addIRPasses() {
349349
disablePass(&RemoveLoadsIntoFakeUsesID);
350350

351351
addPass(createNVPTXAAWrapperPass());
352-
addPass(createNVPTXExternalAAWrapperPass());
352+
addPass(createExternalAAWrapperPass([](Pass &P, Function &, AAResults &AAR) {
353+
if (auto *WrapperPass = P.getAnalysisIfAvailable<NVPTXAAWrapperPass>())
354+
AAR.addAAResult(WrapperPass->getResult());
355+
}));
353356

354357
// NVVMReflectPass is added in addEarlyAsPossiblePasses, so hopefully running
355358
// it here does nothing. But since we need it for correctness when lowering

llvm/lib/Target/NVPTX/NVPTXTargetMachine.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class NVPTXTargetMachine : public CodeGenTargetMachineImpl {
6464
createMachineFunctionInfo(BumpPtrAllocator &Allocator, const Function &F,
6565
const TargetSubtargetInfo *STI) const override;
6666

67-
void registerEarlyDefaultAliasAnalyses(AAManager &AAM) override;
67+
void registerDefaultAliasAnalyses(AAManager &AAM) override;
6868

6969
void registerPassBuilderCallbacks(PassBuilder &PB) override;
7070

llvm/test/Analysis/NVPTXAA/NVPTXAA_before_BasicAA.ll

Lines changed: 0 additions & 17 deletions
This file was deleted.

0 commit comments

Comments
 (0)