[PATCH] D82342: Preserve GlobalsAA analysis result in LowerConstantIntrinsics
Ryan Santhirarajan via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 22 19:21:01 PDT 2020
rsanthir.quic created this revision.
rsanthir.quic added reviewers: fpetrogalli, joerg, fhahn.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
LowerConstantIntrinsics fails to preserve the analysis result of GlobalsAA. Not preserving the analysis might affect benchmark performance. This change fixes this issue.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D82342
Files:
llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
Index: llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
===================================================================
--- llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
+++ llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
@@ -15,6 +15,7 @@
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Statistic.h"
+#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/Analysis/MemoryBuiltins.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
@@ -136,8 +137,12 @@
PreservedAnalyses
LowerConstantIntrinsicsPass::run(Function &F, FunctionAnalysisManager &AM) {
- if (lowerConstantIntrinsics(F, AM.getCachedResult<TargetLibraryAnalysis>(F)))
- return PreservedAnalyses::none();
+ if (lowerConstantIntrinsics(F,
+ AM.getCachedResult<TargetLibraryAnalysis>(F))) {
+ PreservedAnalyses PA;
+ PA.preserve<GlobalsAA>();
+ return PA;
+ }
return PreservedAnalyses::all();
}
@@ -160,6 +165,10 @@
const TargetLibraryInfo *TLI = TLIP ? &TLIP->getTLI(F) : nullptr;
return lowerConstantIntrinsics(F, TLI);
}
+
+ void getAnalysisUsage(AnalysisUsage &AU) const override {
+ AU.addPreserved<GlobalsAAWrapperPass>();
+ }
};
} // namespace
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82342.272586.patch
Type: text/x-patch
Size: 1304 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200623/bf359494/attachment.bin>
More information about the llvm-commits
mailing list