File tree Expand file tree Collapse file tree 5 files changed +28
-8
lines changed Expand file tree Collapse file tree 5 files changed +28
-8
lines changed Original file line number Diff line number Diff line change @@ -71,11 +71,17 @@ class EVMExternalAAWrapper : public ExternalAAWrapperPass {
7171public:
7272 static char ID;
7373
74+ bool runEarly () override { return true ; }
75+
7476 EVMExternalAAWrapper ()
7577 : ExternalAAWrapperPass([](Pass &P, Function &, AAResults &AAR) {
7678 if (auto *WrapperPass = P.getAnalysisIfAvailable <EVMAAWrapperPass>())
7779 AAR.addAAResult (WrapperPass->getResult ());
7880 }) {}
81+
82+ StringRef getPassName () const override {
83+ return " EVM Address space based Alias Analysis Wrapper" ;
84+ }
7985};
8086
8187} // end namespace llvm
Original file line number Diff line number Diff line change @@ -125,7 +125,7 @@ bool EVMTargetMachine::parseMachineFunctionInfo(
125125 return false ;
126126}
127127
128- void EVMTargetMachine::registerDefaultAliasAnalyses (AAManager &AAM) {
128+ void EVMTargetMachine::registerEarlyDefaultAliasAnalyses (AAManager &AAM) {
129129 AAM.registerFunctionAnalysis <EVMAA>();
130130}
131131
@@ -221,11 +221,7 @@ void EVMPassConfig::addIRPasses() {
221221 addPass (createEVMLowerIntrinsicsPass ());
222222 if (TM->getOptLevel () != CodeGenOptLevel::None) {
223223 addPass (createEVMAAWrapperPass ());
224- addPass (
225- createExternalAAWrapperPass ([](Pass &P, Function &, AAResults &AAR) {
226- if (auto *WrapperPass = P.getAnalysisIfAvailable <EVMAAWrapperPass>())
227- AAR.addAAResult (WrapperPass->getResult ());
228- }));
224+ addPass (createEVMExternalAAWrapperPass ());
229225 }
230226 TargetPassConfig::addIRPasses ();
231227}
Original file line number Diff line number Diff line change @@ -61,7 +61,8 @@ class EVMTargetMachine final : public LLVMTargetMachine {
6161 bool usesPhysRegsForValues () const override { return false ; }
6262
6363 void registerPassBuilderCallbacks (PassBuilder &PB) override ;
64- void registerDefaultAliasAnalyses (AAManager &AAM) override ;
64+
65+ void registerEarlyDefaultAliasAnalyses (AAManager &AAM) override ;
6566}; // EVMTargetMachine.
6667
6768} // end namespace llvm
Original file line number Diff line number Diff line change @@ -10,7 +10,7 @@ target triple = "evm"
1010; CHECK-NEXT: Machine Module Information
1111; CHECK-NEXT: Target Transform Information
1212; CHECK-NEXT: EVM Address space based Alias Analysis
13- ; CHECK-NEXT: External Alias Analysis
13+ ; CHECK-NEXT: EVM Address space based Alias Analysis Wrapper
1414; CHECK-NEXT: Type-Based Alias Analysis
1515; CHECK-NEXT: Scoped NoAlias Alias Analysis
1616; CHECK-NEXT: Assumption Cache Tracker
Original file line number Diff line number Diff line change 1+ ; REQUIRES: asserts
2+ ; RUN: opt -aa-pipeline=default -passes='require<aa>' -debug-pass-manager -disable-output -S < %s 2>&1 | FileCheck %s
3+ ; RUN: llc --debug-only='aa' -o /dev/null %s 2>&1 | FileCheck %s -check-prefix=LEGACY
4+
5+ ; In default AA pipeline, EVMAA should run before BasicAA to reduce compile time for EVM backend
6+ target triple = "evm"
7+
8+ ; CHECK: Running analysis: EVMAA on foo
9+ ; CHECK-NEXT: Running analysis: BasicAA on foo
10+
11+ ; LEGACY: AAResults register Early ExternalAA: EVM Address space based Alias Analysis Wrapper
12+ ; LEGACY-NEXT: AAResults register BasicAA
13+ define void @foo (){
14+ entry:
15+ ret void
16+ }
17+
You can’t perform that action at this time.
0 commit comments