[llvm-commits] CVS: llvm/include/llvm/Analysis/AliasSetTracker.h
Chris Lattner
lattner at cs.uiuc.edu
Sat Dec 13 22:52:01 PST 2003
Changes in directory llvm/include/llvm/Analysis:
AliasSetTracker.h updated: 1.9 -> 1.10
---
Log message:
Add capability to represent volatile AliasSet's
---
Diffs of the changes: (+13 -3)
Index: llvm/include/llvm/Analysis/AliasSetTracker.h
diff -u llvm/include/llvm/Analysis/AliasSetTracker.h:1.9 llvm/include/llvm/Analysis/AliasSetTracker.h:1.10
--- llvm/include/llvm/Analysis/AliasSetTracker.h:1.9 Tue Nov 11 16:41:30 2003
+++ llvm/include/llvm/Analysis/AliasSetTracker.h Sat Dec 13 22:51:34 2003
@@ -82,7 +82,7 @@
// RefCount - Number of nodes pointing to this AliasSet plus the number of
// AliasSets forwarding to it.
- unsigned RefCount : 29;
+ unsigned RefCount : 28;
/// AccessType - Keep track of whether this alias set merely refers to the
/// locations of memory, whether it modifies the memory, or whether it does
@@ -103,6 +103,9 @@
};
unsigned AliasTy : 1;
+ // Volatile - True if this alias set contains volatile loads or stores.
+ bool Volatile : 1;
+
friend class ilist_traits<AliasSet>;
AliasSet *getPrev() const { return Prev; }
AliasSet *getNext() const { return Next; }
@@ -116,6 +119,11 @@
bool isMustAlias() const { return AliasTy == MustAlias; }
bool isMayAlias() const { return AliasTy == MayAlias; }
+ // isVolatile - Return true if this alias set contains volatile loads or
+ // stores.
+ bool isVolatile() const { return Volatile; }
+
+
/// isForwardingAliasSet - Return true if this alias set should be ignored as
/// part of the AliasSetTracker object.
bool isForwardingAliasSet() const { return Forward; }
@@ -168,7 +176,7 @@
private:
// Can only be created by AliasSetTracker
AliasSet() : PtrListHead(0), PtrListTail(0), Forward(0), RefCount(0),
- AccessTy(NoModRef), AliasTy(MustAlias) {
+ AccessTy(NoModRef), AliasTy(MustAlias), Volatile(false) {
}
HashNodePair *getSomePointer() const {
return PtrListHead ? PtrListHead : 0;
@@ -194,6 +202,7 @@
void addPointer(AliasSetTracker &AST, HashNodePair &Entry, unsigned Size);
void addCallSite(CallSite CS);
+ void setVolatile() { Volatile = true; }
/// aliasesPointer - Return true if the specified pointer "may" (or must)
/// alias one of the members in the set.
@@ -272,9 +281,10 @@
AliasSet::PointerRec())).first;
}
- void addPointer(Value *P, unsigned Size, AliasSet::AccessType E) {
+ AliasSet &addPointer(Value *P, unsigned Size, AliasSet::AccessType E) {
AliasSet &AS = getAliasSetForPointer(P, Size);
AS.AccessTy |= E;
+ return AS;
}
AliasSet *findAliasSetForPointer(const Value *Ptr, unsigned Size);
More information about the llvm-commits
mailing list