From a809e8e5e759d333e3183b4f1d270cfc4ad9d2dd Mon Sep 17 00:00:00 2001 From: Alina Sbirlea Date: Tue, 23 Apr 2019 17:21:18 +0000 Subject: [AliasAnalysis] AAResults preserves AAManager. Summary: AAResults should not invalidate AAManager. Update tests. Reviewers: chandlerc Subscribers: mehdi_amini, jlebar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60914 llvm-svn: 359014 --- llvm/lib/Analysis/AliasAnalysis.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'llvm/lib/Analysis/AliasAnalysis.cpp') diff --git a/llvm/lib/Analysis/AliasAnalysis.cpp b/llvm/lib/Analysis/AliasAnalysis.cpp index 06a33f659c1..4bb3b80511a 100644 --- a/llvm/lib/Analysis/AliasAnalysis.cpp +++ b/llvm/lib/Analysis/AliasAnalysis.cpp @@ -79,12 +79,10 @@ AAResults::~AAResults() { bool AAResults::invalidate(Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv) { - // Check if the AA manager itself has been invalidated. - auto PAC = PA.getChecker(); - if (!PAC.preserved() && !PAC.preservedSet>()) - return true; // The manager needs to be blown away, clear everything. - - // Check all of the dependencies registered. + // AAResults preserves the AAManager by default, due to the stateless nature + // of AliasAnalysis. There is no need to check whether it has been preserved + // explicitly. However, we still need to check if any of the dependencies end + // up being invalidated, and invalidate ourselves in that case. for (AnalysisKey *ID : AADeps) if (Inv.invalidate(ID, F, PA)) return true; -- cgit v1.2.3