Skip to content

Commit 6117bbd

Browse files
authored
Enable scope AA (rust-lang#258)
1 parent ff17a4e commit 6117bbd

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

enzyme/Enzyme/FunctionUtils.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -779,6 +779,7 @@ void CanonicalizeLoops(Function *F, FunctionAnalysisManager &FAM) {
779779
PA.preserve<PostDominatorTreeAnalysis>();
780780
PA.preserve<TypeBasedAA>();
781781
PA.preserve<BasicAA>();
782+
PA.preserve<ScopedNoAliasAA>();
782783
FAM.invalidate(*F, PA);
783784
}
784785

@@ -801,6 +802,8 @@ PreProcessCache::PreProcessCache() {
801802
FAM.registerPass([] { return BasicAA(); });
802803
MAM.registerPass([] { return GlobalsAA(); });
803804

805+
FAM.registerPass([] { return ScopedNoAliasAA(); });
806+
804807
// SCEVAA causes some breakage/segfaults
805808
// disable for now, consider enabling in future
806809
// FAM.registerPass([] { return SCEVAA(); });
@@ -813,6 +816,7 @@ PreProcessCache::PreProcessCache() {
813816
AM.registerFunctionAnalysis<BasicAA>();
814817
AM.registerFunctionAnalysis<TypeBasedAA>();
815818
AM.registerModuleAnalysis<GlobalsAA>();
819+
AM.registerFunctionAnalysis<ScopedNoAliasAA>();
816820

817821
// broken for different reasons
818822
// AM.registerFunctionAnalysis<SCEVAA>();
@@ -956,6 +960,7 @@ Function *PreProcessCache::preprocessForClone(Function *F,
956960
AAResults AA2(FAM.getResult<TargetLibraryAnalysis>(*NewF));
957961
AA2.addAAResult(FAM.getResult<BasicAA>(*NewF));
958962
AA2.addAAResult(FAM.getResult<TypeBasedAA>(*NewF));
963+
AA2.addAAResult(FAM.getResult<ScopedNoAliasAA>(*NewF));
959964

960965
for (auto &g : NewF->getParent()->globals()) {
961966
bool inF = false;
@@ -1282,6 +1287,7 @@ Function *PreProcessCache::preprocessForClone(Function *F,
12821287
PA.preserve<PostDominatorTreeAnalysis>();
12831288
PA.preserve<TypeBasedAA>();
12841289
PA.preserve<BasicAA>();
1290+
PA.preserve<ScopedNoAliasAA>();
12851291
PA.preserve<ScalarEvolutionAnalysis>();
12861292
#if LLVM_VERSION_MAJOR > 6
12871293
PA.preserve<PhiValuesAnalysis>();
@@ -1378,6 +1384,7 @@ Function *PreProcessCache::preprocessForClone(Function *F,
13781384
PA.preserve<PostDominatorTreeAnalysis>();
13791385
PA.preserve<TypeBasedAA>();
13801386
PA.preserve<BasicAA>();
1387+
PA.preserve<ScopedNoAliasAA>();
13811388
PA.preserve<ScalarEvolutionAnalysis>();
13821389
#if LLVM_VERSION_MAJOR > 6
13831390
PA.preserve<PhiValuesAnalysis>();

0 commit comments

Comments
 (0)