aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-06-29 00:50:39 +0000
committerDan Gohman <gohman@apple.com>2010-06-29 00:50:39 +0000
commitf9e8abc4836cbade975ee2e1ad76f0992a55c7b4 (patch)
treedeebad2d32c6059180d4c443324a8d94d816ef5f /include
parent86b8ba08d23a2581f5c9f97b0392f59bb0dca47e (diff)
downloadexternal_llvm-f9e8abc4836cbade975ee2e1ad76f0992a55c7b4.zip
external_llvm-f9e8abc4836cbade975ee2e1ad76f0992a55c7b4.tar.gz
external_llvm-f9e8abc4836cbade975ee2e1ad76f0992a55c7b4.tar.bz2
Add an Intraprocedural form of BasicAliasAnalysis, which aims to
properly handles instructions and arguments defined in different functions, or across recursive function iterations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107109 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Analysis/AliasAnalysis.h6
-rw-r--r--include/llvm/Analysis/Passes.h8
2 files changed, 11 insertions, 3 deletions
diff --git a/include/llvm/Analysis/AliasAnalysis.h b/include/llvm/Analysis/AliasAnalysis.h
index 9f41135..174482f 100644
--- a/include/llvm/Analysis/AliasAnalysis.h
+++ b/include/llvm/Analysis/AliasAnalysis.h
@@ -344,10 +344,10 @@ bool isNoAliasCall(const Value *V);
/// identifiable object. This returns true for:
/// Global Variables and Functions (but not Global Aliases)
/// Allocas and Mallocs
-/// ByVal and NoAlias Arguments
-/// NoAlias returns
+/// ByVal and NoAlias Arguments, if Interprocedural is false
+/// NoAlias returns, if Interprocedural is false
///
-bool isIdentifiedObject(const Value *V);
+bool isIdentifiedObject(const Value *V, bool Interprocedural = false);
} // End llvm namespace
diff --git a/include/llvm/Analysis/Passes.h b/include/llvm/Analysis/Passes.h
index b3fe2c6..a81cb87 100644
--- a/include/llvm/Analysis/Passes.h
+++ b/include/llvm/Analysis/Passes.h
@@ -73,6 +73,14 @@ namespace llvm {
//===--------------------------------------------------------------------===//
//
+ // createInterproceduralBasicAliasAnalysisPass - This pass is similar to
+ // baiscaa, except that it properly supports queries to values which live
+ // in different functions.
+ //
+ ImmutablePass *createInterproceduralBasicAliasAnalysisPass();
+
+ //===--------------------------------------------------------------------===//
+ //
/// createLibCallAliasAnalysisPass - Create an alias analysis pass that knows
/// about the semantics of a set of libcalls specified by LCI. The newly
/// constructed pass takes ownership of the pointer that is provided.