diff options
| author | Davide Italiano <davide@freebsd.org> | 2016-11-08 19:18:20 +0000 |
|---|---|---|
| committer | Davide Italiano <davide@freebsd.org> | 2016-11-08 19:18:20 +0000 |
| commit | 1e77aaca8a9127f417d1f3e8694db1ebe4bf6440 (patch) | |
| tree | 2a19f35c8ad8ff2d61765d65ea2e088380b54e48 /llvm/lib/Transforms/Utils | |
| parent | fbc7b7d15410b4eaa43d1ad328a760f065829b78 (diff) | |
| download | bcm5719-llvm-1e77aaca8a9127f417d1f3e8694db1ebe4bf6440.tar.gz bcm5719-llvm-1e77aaca8a9127f417d1f3e8694db1ebe4bf6440.zip | |
[LibcallsShrinkWrap] This pass doesn't preserve the CFG.
For example, it invalidates the domtree, causing assertions
in later passes which need dominator infos. Make it preserve
GlobalsAA, as suggested by Eli.
Differential Revision: https://reviews.llvm.org/D26381
llvm-svn: 286271
Diffstat (limited to 'llvm/lib/Transforms/Utils')
| -rw-r--r-- | llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp b/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp index c9924984bb5..b59ddcffeff 100644 --- a/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp +++ b/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp @@ -29,6 +29,7 @@ #include "llvm/Transforms/Utils/LibCallsShrinkWrap.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/Statistic.h" +#include "llvm/Analysis/GlobalsModRef.h" #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/IR/CFG.h" #include "llvm/IR/Constants.h" @@ -529,7 +530,7 @@ bool LibCallsShrinkWrap::perform(CallInst *CI) { } void LibCallsShrinkWrapLegacyPass::getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesCFG(); + AU.addPreserved<GlobalsAAWrapperPass>(); AU.addRequired<TargetLibraryInfoWrapperPass>(); } @@ -561,6 +562,8 @@ PreservedAnalyses LibCallsShrinkWrapPass::run(Function &F, bool Changed = runImpl(F, TLI); if (!Changed) return PreservedAnalyses::all(); - return PreservedAnalyses::none(); + auto PA = PreservedAnalyses(); + PA.preserve<GlobalsAA>(); + return PA; } } |

