diff options
author | Hal Finkel <hfinkel@anl.gov> | 2014-09-01 09:01:39 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2014-09-01 09:01:39 +0000 |
commit | 0c083024f0fdaa958ec8b1a8cd5b27dc53bf68af (patch) | |
tree | b8e70c0bfaf8bc42943206a14bc7dd4491303f6e /llvm/lib/Transforms/IPO/InlineAlways.cpp | |
parent | fc243d54d2048bec081a6c0257288306960f3e49 (diff) | |
download | bcm5719-llvm-0c083024f0fdaa958ec8b1a8cd5b27dc53bf68af.tar.gz bcm5719-llvm-0c083024f0fdaa958ec8b1a8cd5b27dc53bf68af.zip |
Feed AA to the inliner and use AA->getModRefBehavior in AddAliasScopeMetadata
This feeds AA through the IFI structure into the inliner so that
AddAliasScopeMetadata can use AA->getModRefBehavior to figure out which
functions only access their arguments (instead of just hard-coding some
knowledge of memory intrinsics). Most of the information is only available from
BasicAA; this is important for preserving alias scoping information for
target-specific intrinsics when doing the noalias parameter attribute to
metadata conversion.
llvm-svn: 216866
Diffstat (limited to 'llvm/lib/Transforms/IPO/InlineAlways.cpp')
-rw-r--r-- | llvm/lib/Transforms/IPO/InlineAlways.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/IPO/InlineAlways.cpp b/llvm/lib/Transforms/IPO/InlineAlways.cpp index 624cb90c0d5..18c2540910f 100644 --- a/llvm/lib/Transforms/IPO/InlineAlways.cpp +++ b/llvm/lib/Transforms/IPO/InlineAlways.cpp @@ -14,6 +14,7 @@ #include "llvm/Transforms/IPO.h" #include "llvm/ADT/SmallPtrSet.h" +#include "llvm/Analysis/AliasAnalysis.h" #include "llvm/Analysis/CallGraph.h" #include "llvm/Analysis/InlineCost.h" #include "llvm/IR/CallSite.h" @@ -65,6 +66,7 @@ public: char AlwaysInliner::ID = 0; INITIALIZE_PASS_BEGIN(AlwaysInliner, "always-inline", "Inliner for always_inline functions", false, false) +INITIALIZE_AG_DEPENDENCY(AliasAnalysis) INITIALIZE_PASS_DEPENDENCY(CallGraphWrapperPass) INITIALIZE_PASS_DEPENDENCY(InlineCostAnalysis) INITIALIZE_PASS_END(AlwaysInliner, "always-inline", |