diff options
author | Chris Lattner <sabre@nondot.org> | 2004-09-14 19:15:12 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-09-14 19:15:12 +0000 |
commit | 8a40b8d8e03075ad698d192d49f1897d93e21a22 (patch) | |
tree | 0824086e8c0083f5b2e50ba40f2150f2a19ac753 /llvm | |
parent | c1f7bb0238a5521face95af6c0a2515e341e94bc (diff) | |
download | bcm5719-llvm-8a40b8d8e03075ad698d192d49f1897d93e21a22.tar.gz bcm5719-llvm-8a40b8d8e03075ad698d192d49f1897d93e21a22.zip |
Add an AliasSetTracker::copyValue method
llvm-svn: 16343
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/Analysis/AliasSetTracker.h | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/llvm/include/llvm/Analysis/AliasSetTracker.h b/llvm/include/llvm/Analysis/AliasSetTracker.h index ddcbbb0ad53..6a6f0168d26 100644 --- a/llvm/include/llvm/Analysis/AliasSetTracker.h +++ b/llvm/include/llvm/Analysis/AliasSetTracker.h @@ -221,7 +221,8 @@ private: void removeFromTracker(AliasSetTracker &AST); - void addPointer(AliasSetTracker &AST, HashNodePair &Entry, unsigned Size); + void addPointer(AliasSetTracker &AST, HashNodePair &Entry, unsigned Size, + bool KnownMustAlias = false); void addCallSite(CallSite CS, AliasAnalysis &AA); void setVolatile() { Volatile = true; } @@ -286,15 +287,8 @@ public: bool remove(Instruction *I); void remove(AliasSet &AS); - - /// deleteValue method - This method is used to remove a pointer value from - /// the AliasSetTracker entirely. It should be used when an instruction is - /// deleted from the program to update the AST. If you don't use this, you - /// would have dangling pointers to deleted instructions. - /// - void deleteValue(Value *PtrVal); - /// getAliasSets - Return the alias sets that are active. + /// const ilist<AliasSet> &getAliasSets() const { return AliasSets; } /// getAliasSetForPointer - Return the alias set that the specified pointer @@ -313,6 +307,22 @@ public: /// this tracker. AliasAnalysis &getAliasAnalysis() const { return AA; } + /// deleteValue method - This method is used to remove a pointer value from + /// the AliasSetTracker entirely. It should be used when an instruction is + /// deleted from the program to update the AST. If you don't use this, you + /// would have dangling pointers to deleted instructions. + /// + void deleteValue(Value *PtrVal); + + /// copyValue - This method should be used whenever a preexisting value in the + /// program is copied or cloned, introducing a new value. Note that it is ok + /// for clients that use this method to introduce the same value multiple + /// times: if the tracker already knows about a value, it will ignore the + /// request. + /// + void copyValue(Value *From, Value *To); + + typedef ilist<AliasSet>::iterator iterator; typedef ilist<AliasSet>::const_iterator const_iterator; |