Oops, check in all the files for converting AliasAnalysis to
use uint64_t. llvm-svn: 116839
This commit is contained in:
parent
48ffd760a7
commit
896ac62346
|
@ -67,7 +67,7 @@ public:
|
||||||
/// UnknownSize - This is a special value which can be used with the
|
/// UnknownSize - This is a special value which can be used with the
|
||||||
/// size arguments in alias queries to indicate that the caller does not
|
/// size arguments in alias queries to indicate that the caller does not
|
||||||
/// know the sizes of the potential memory references.
|
/// know the sizes of the potential memory references.
|
||||||
static unsigned const UnknownSize = ~0u;
|
static uint64_t const UnknownSize = ~UINT64_C(0);
|
||||||
|
|
||||||
/// getTargetData - Return a pointer to the current TargetData object, or
|
/// getTargetData - Return a pointer to the current TargetData object, or
|
||||||
/// null if no TargetData object is available.
|
/// null if no TargetData object is available.
|
||||||
|
@ -77,7 +77,7 @@ public:
|
||||||
/// getTypeStoreSize - Return the TargetData store size for the given type,
|
/// getTypeStoreSize - Return the TargetData store size for the given type,
|
||||||
/// if known, or a conservative value otherwise.
|
/// if known, or a conservative value otherwise.
|
||||||
///
|
///
|
||||||
unsigned getTypeStoreSize(const Type *Ty);
|
uint64_t getTypeStoreSize(const Type *Ty);
|
||||||
|
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
/// Alias Queries...
|
/// Alias Queries...
|
||||||
|
@ -88,13 +88,13 @@ public:
|
||||||
/// Ptr - The address of the start of the location.
|
/// Ptr - The address of the start of the location.
|
||||||
const Value *Ptr;
|
const Value *Ptr;
|
||||||
/// Size - The size of the location.
|
/// Size - The size of the location.
|
||||||
unsigned Size;
|
uint64_t Size;
|
||||||
/// TBAATag - The metadata node which describes the TBAA type of
|
/// TBAATag - The metadata node which describes the TBAA type of
|
||||||
/// the location, or null if there is no (unique) tag.
|
/// the location, or null if there is no (unique) tag.
|
||||||
const MDNode *TBAATag;
|
const MDNode *TBAATag;
|
||||||
|
|
||||||
explicit Location(const Value *P = 0,
|
explicit Location(const Value *P = 0,
|
||||||
unsigned S = UnknownSize,
|
uint64_t S = UnknownSize,
|
||||||
const MDNode *N = 0)
|
const MDNode *N = 0)
|
||||||
: Ptr(P), Size(S), TBAATag(N) {}
|
: Ptr(P), Size(S), TBAATag(N) {}
|
||||||
|
|
||||||
|
@ -129,8 +129,8 @@ public:
|
||||||
virtual AliasResult alias(const Location &LocA, const Location &LocB);
|
virtual AliasResult alias(const Location &LocA, const Location &LocB);
|
||||||
|
|
||||||
/// alias - A convenience wrapper.
|
/// alias - A convenience wrapper.
|
||||||
AliasResult alias(const Value *V1, unsigned V1Size,
|
AliasResult alias(const Value *V1, uint64_t V1Size,
|
||||||
const Value *V2, unsigned V2Size) {
|
const Value *V2, uint64_t V2Size) {
|
||||||
return alias(Location(V1, V1Size), Location(V2, V2Size));
|
return alias(Location(V1, V1Size), Location(V2, V2Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,8 +146,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// isNoAlias - A convenience wrapper.
|
/// isNoAlias - A convenience wrapper.
|
||||||
bool isNoAlias(const Value *V1, unsigned V1Size,
|
bool isNoAlias(const Value *V1, uint64_t V1Size,
|
||||||
const Value *V2, unsigned V2Size) {
|
const Value *V2, uint64_t V2Size) {
|
||||||
return isNoAlias(Location(V1, V1Size), Location(V2, V2Size));
|
return isNoAlias(Location(V1, V1Size), Location(V2, V2Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,7 +278,7 @@ public:
|
||||||
|
|
||||||
/// getModRefInfo - A convenience wrapper.
|
/// getModRefInfo - A convenience wrapper.
|
||||||
ModRefResult getModRefInfo(const Instruction *I,
|
ModRefResult getModRefInfo(const Instruction *I,
|
||||||
const Value *P, unsigned Size) {
|
const Value *P, uint64_t Size) {
|
||||||
return getModRefInfo(I, Location(P, Size));
|
return getModRefInfo(I, Location(P, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,7 +289,7 @@ public:
|
||||||
|
|
||||||
/// getModRefInfo (for call sites) - A convenience wrapper.
|
/// getModRefInfo (for call sites) - A convenience wrapper.
|
||||||
ModRefResult getModRefInfo(ImmutableCallSite CS,
|
ModRefResult getModRefInfo(ImmutableCallSite CS,
|
||||||
const Value *P, unsigned Size) {
|
const Value *P, uint64_t Size) {
|
||||||
return getModRefInfo(CS, Location(P, Size));
|
return getModRefInfo(CS, Location(P, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,7 +300,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// getModRefInfo (for calls) - A convenience wrapper.
|
/// getModRefInfo (for calls) - A convenience wrapper.
|
||||||
ModRefResult getModRefInfo(const CallInst *C, const Value *P, unsigned Size) {
|
ModRefResult getModRefInfo(const CallInst *C, const Value *P, uint64_t Size) {
|
||||||
return getModRefInfo(C, Location(P, Size));
|
return getModRefInfo(C, Location(P, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -313,7 +313,7 @@ public:
|
||||||
|
|
||||||
/// getModRefInfo (for invokes) - A convenience wrapper.
|
/// getModRefInfo (for invokes) - A convenience wrapper.
|
||||||
ModRefResult getModRefInfo(const InvokeInst *I,
|
ModRefResult getModRefInfo(const InvokeInst *I,
|
||||||
const Value *P, unsigned Size) {
|
const Value *P, uint64_t Size) {
|
||||||
return getModRefInfo(I, Location(P, Size));
|
return getModRefInfo(I, Location(P, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@ public:
|
||||||
ModRefResult getModRefInfo(const LoadInst *L, const Location &Loc);
|
ModRefResult getModRefInfo(const LoadInst *L, const Location &Loc);
|
||||||
|
|
||||||
/// getModRefInfo (for loads) - A convenience wrapper.
|
/// getModRefInfo (for loads) - A convenience wrapper.
|
||||||
ModRefResult getModRefInfo(const LoadInst *L, const Value *P, unsigned Size) {
|
ModRefResult getModRefInfo(const LoadInst *L, const Value *P, uint64_t Size) {
|
||||||
return getModRefInfo(L, Location(P, Size));
|
return getModRefInfo(L, Location(P, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ public:
|
||||||
ModRefResult getModRefInfo(const StoreInst *S, const Location &Loc);
|
ModRefResult getModRefInfo(const StoreInst *S, const Location &Loc);
|
||||||
|
|
||||||
/// getModRefInfo (for stores) - A convenience wrapper.
|
/// getModRefInfo (for stores) - A convenience wrapper.
|
||||||
ModRefResult getModRefInfo(const StoreInst *S, const Value *P, unsigned Size) {
|
ModRefResult getModRefInfo(const StoreInst *S, const Value *P, uint64_t Size) {
|
||||||
return getModRefInfo(S, Location(P, Size));
|
return getModRefInfo(S, Location(P, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,7 +340,7 @@ public:
|
||||||
ModRefResult getModRefInfo(const VAArgInst* I, const Location &Loc);
|
ModRefResult getModRefInfo(const VAArgInst* I, const Location &Loc);
|
||||||
|
|
||||||
/// getModRefInfo (for va_args) - A convenience wrapper.
|
/// getModRefInfo (for va_args) - A convenience wrapper.
|
||||||
ModRefResult getModRefInfo(const VAArgInst* I, const Value* P, unsigned Size) {
|
ModRefResult getModRefInfo(const VAArgInst* I, const Value* P, uint64_t Size) {
|
||||||
return getModRefInfo(I, Location(P, Size));
|
return getModRefInfo(I, Location(P, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -360,7 +360,7 @@ public:
|
||||||
bool canBasicBlockModify(const BasicBlock &BB, const Location &Loc);
|
bool canBasicBlockModify(const BasicBlock &BB, const Location &Loc);
|
||||||
|
|
||||||
/// canBasicBlockModify - A convenience wrapper.
|
/// canBasicBlockModify - A convenience wrapper.
|
||||||
bool canBasicBlockModify(const BasicBlock &BB, const Value *P, unsigned Size){
|
bool canBasicBlockModify(const BasicBlock &BB, const Value *P, uint64_t Size){
|
||||||
return canBasicBlockModify(BB, Location(P, Size));
|
return canBasicBlockModify(BB, Location(P, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,7 +373,7 @@ public:
|
||||||
|
|
||||||
/// canInstructionRangeModify - A convenience wrapper.
|
/// canInstructionRangeModify - A convenience wrapper.
|
||||||
bool canInstructionRangeModify(const Instruction &I1, const Instruction &I2,
|
bool canInstructionRangeModify(const Instruction &I1, const Instruction &I2,
|
||||||
const Value *Ptr, unsigned Size) {
|
const Value *Ptr, uint64_t Size) {
|
||||||
return canInstructionRangeModify(I1, I2, Location(Ptr, Size));
|
return canInstructionRangeModify(I1, I2, Location(Ptr, Size));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ class AliasSet : public ilist_node<AliasSet> {
|
||||||
Value *Val; // The pointer this record corresponds to.
|
Value *Val; // The pointer this record corresponds to.
|
||||||
PointerRec **PrevInList, *NextInList;
|
PointerRec **PrevInList, *NextInList;
|
||||||
AliasSet *AS;
|
AliasSet *AS;
|
||||||
unsigned Size;
|
uint64_t Size;
|
||||||
const MDNode *TBAAInfo;
|
const MDNode *TBAAInfo;
|
||||||
public:
|
public:
|
||||||
PointerRec(Value *V)
|
PointerRec(Value *V)
|
||||||
|
@ -57,7 +57,7 @@ class AliasSet : public ilist_node<AliasSet> {
|
||||||
return &NextInList;
|
return &NextInList;
|
||||||
}
|
}
|
||||||
|
|
||||||
void updateSizeAndTBAAInfo(unsigned NewSize, const MDNode *NewTBAAInfo) {
|
void updateSizeAndTBAAInfo(uint64_t NewSize, const MDNode *NewTBAAInfo) {
|
||||||
if (NewSize > Size) Size = NewSize;
|
if (NewSize > Size) Size = NewSize;
|
||||||
|
|
||||||
if (TBAAInfo == DenseMapInfo<const MDNode *>::getEmptyKey())
|
if (TBAAInfo == DenseMapInfo<const MDNode *>::getEmptyKey())
|
||||||
|
@ -68,7 +68,7 @@ class AliasSet : public ilist_node<AliasSet> {
|
||||||
TBAAInfo = DenseMapInfo<const MDNode *>::getTombstoneKey();
|
TBAAInfo = DenseMapInfo<const MDNode *>::getTombstoneKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned getSize() const { return Size; }
|
uint64_t getSize() const { return Size; }
|
||||||
|
|
||||||
/// getTBAAInfo - Return the TBAAInfo, or null if there is no
|
/// getTBAAInfo - Return the TBAAInfo, or null if there is no
|
||||||
/// information or conflicting information.
|
/// information or conflicting information.
|
||||||
|
@ -205,7 +205,7 @@ public:
|
||||||
value_type *operator->() const { return &operator*(); }
|
value_type *operator->() const { return &operator*(); }
|
||||||
|
|
||||||
Value *getPointer() const { return CurNode->getValue(); }
|
Value *getPointer() const { return CurNode->getValue(); }
|
||||||
unsigned getSize() const { return CurNode->getSize(); }
|
uint64_t getSize() const { return CurNode->getSize(); }
|
||||||
const MDNode *getTBAAInfo() const { return CurNode->getTBAAInfo(); }
|
const MDNode *getTBAAInfo() const { return CurNode->getTBAAInfo(); }
|
||||||
|
|
||||||
iterator& operator++() { // Preincrement
|
iterator& operator++() { // Preincrement
|
||||||
|
@ -250,7 +250,7 @@ private:
|
||||||
|
|
||||||
void removeFromTracker(AliasSetTracker &AST);
|
void removeFromTracker(AliasSetTracker &AST);
|
||||||
|
|
||||||
void addPointer(AliasSetTracker &AST, PointerRec &Entry, unsigned Size,
|
void addPointer(AliasSetTracker &AST, PointerRec &Entry, uint64_t Size,
|
||||||
const MDNode *TBAAInfo,
|
const MDNode *TBAAInfo,
|
||||||
bool KnownMustAlias = false);
|
bool KnownMustAlias = false);
|
||||||
void addCallSite(CallSite CS, AliasAnalysis &AA);
|
void addCallSite(CallSite CS, AliasAnalysis &AA);
|
||||||
|
@ -266,7 +266,7 @@ private:
|
||||||
/// aliasesPointer - Return true if the specified pointer "may" (or must)
|
/// aliasesPointer - Return true if the specified pointer "may" (or must)
|
||||||
/// alias one of the members in the set.
|
/// alias one of the members in the set.
|
||||||
///
|
///
|
||||||
bool aliasesPointer(const Value *Ptr, unsigned Size, const MDNode *TBAAInfo,
|
bool aliasesPointer(const Value *Ptr, uint64_t Size, const MDNode *TBAAInfo,
|
||||||
AliasAnalysis &AA) const;
|
AliasAnalysis &AA) const;
|
||||||
bool aliasesCallSite(CallSite CS, AliasAnalysis &AA) const;
|
bool aliasesCallSite(CallSite CS, AliasAnalysis &AA) const;
|
||||||
};
|
};
|
||||||
|
@ -320,7 +320,7 @@ public:
|
||||||
/// These methods return true if inserting the instruction resulted in the
|
/// These methods return true if inserting the instruction resulted in the
|
||||||
/// addition of a new alias set (i.e., the pointer did not alias anything).
|
/// addition of a new alias set (i.e., the pointer did not alias anything).
|
||||||
///
|
///
|
||||||
bool add(Value *Ptr, unsigned Size, const MDNode *TBAAInfo); // Add a location
|
bool add(Value *Ptr, uint64_t Size, const MDNode *TBAAInfo); // Add a location
|
||||||
bool add(LoadInst *LI);
|
bool add(LoadInst *LI);
|
||||||
bool add(StoreInst *SI);
|
bool add(StoreInst *SI);
|
||||||
bool add(VAArgInst *VAAI);
|
bool add(VAArgInst *VAAI);
|
||||||
|
@ -335,7 +335,7 @@ public:
|
||||||
/// be aliased by the specified instruction. These methods return true if any
|
/// be aliased by the specified instruction. These methods return true if any
|
||||||
/// alias sets were eliminated.
|
/// alias sets were eliminated.
|
||||||
// Remove a location
|
// Remove a location
|
||||||
bool remove(Value *Ptr, unsigned Size, const MDNode *TBAAInfo);
|
bool remove(Value *Ptr, uint64_t Size, const MDNode *TBAAInfo);
|
||||||
bool remove(LoadInst *LI);
|
bool remove(LoadInst *LI);
|
||||||
bool remove(StoreInst *SI);
|
bool remove(StoreInst *SI);
|
||||||
bool remove(VAArgInst *VAAI);
|
bool remove(VAArgInst *VAAI);
|
||||||
|
@ -355,13 +355,13 @@ public:
|
||||||
/// lives in. If the New argument is non-null, this method sets the value to
|
/// lives in. If the New argument is non-null, this method sets the value to
|
||||||
/// true if a new alias set is created to contain the pointer (because the
|
/// true if a new alias set is created to contain the pointer (because the
|
||||||
/// pointer didn't alias anything).
|
/// pointer didn't alias anything).
|
||||||
AliasSet &getAliasSetForPointer(Value *P, unsigned Size,
|
AliasSet &getAliasSetForPointer(Value *P, uint64_t Size,
|
||||||
const MDNode *TBAAInfo,
|
const MDNode *TBAAInfo,
|
||||||
bool *New = 0);
|
bool *New = 0);
|
||||||
|
|
||||||
/// getAliasSetForPointerIfExists - Return the alias set containing the
|
/// getAliasSetForPointerIfExists - Return the alias set containing the
|
||||||
/// location specified if one exists, otherwise return null.
|
/// location specified if one exists, otherwise return null.
|
||||||
AliasSet *getAliasSetForPointerIfExists(Value *P, unsigned Size,
|
AliasSet *getAliasSetForPointerIfExists(Value *P, uint64_t Size,
|
||||||
const MDNode *TBAAInfo) {
|
const MDNode *TBAAInfo) {
|
||||||
return findAliasSetForPointer(P, Size, TBAAInfo);
|
return findAliasSetForPointer(P, Size, TBAAInfo);
|
||||||
}
|
}
|
||||||
|
@ -369,7 +369,7 @@ public:
|
||||||
/// containsPointer - Return true if the specified location is represented by
|
/// containsPointer - Return true if the specified location is represented by
|
||||||
/// this alias set, false otherwise. This does not modify the AST object or
|
/// this alias set, false otherwise. This does not modify the AST object or
|
||||||
/// alias sets.
|
/// alias sets.
|
||||||
bool containsPointer(Value *P, unsigned Size, const MDNode *TBAAInfo) const;
|
bool containsPointer(Value *P, uint64_t Size, const MDNode *TBAAInfo) const;
|
||||||
|
|
||||||
/// getAliasAnalysis - Return the underlying alias analysis object used by
|
/// getAliasAnalysis - Return the underlying alias analysis object used by
|
||||||
/// this tracker.
|
/// this tracker.
|
||||||
|
@ -416,7 +416,7 @@ private:
|
||||||
return *Entry;
|
return *Entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
AliasSet &addPointer(Value *P, unsigned Size, const MDNode *TBAAInfo,
|
AliasSet &addPointer(Value *P, uint64_t Size, const MDNode *TBAAInfo,
|
||||||
AliasSet::AccessType E,
|
AliasSet::AccessType E,
|
||||||
bool &NewSet) {
|
bool &NewSet) {
|
||||||
NewSet = false;
|
NewSet = false;
|
||||||
|
@ -424,7 +424,7 @@ private:
|
||||||
AS.AccessTy |= E;
|
AS.AccessTy |= E;
|
||||||
return AS;
|
return AS;
|
||||||
}
|
}
|
||||||
AliasSet *findAliasSetForPointer(const Value *Ptr, unsigned Size,
|
AliasSet *findAliasSetForPointer(const Value *Ptr, uint64_t Size,
|
||||||
const MDNode *TBAAInfo);
|
const MDNode *TBAAInfo);
|
||||||
|
|
||||||
AliasSet *findAliasSetForCallSite(CallSite CS);
|
AliasSet *findAliasSetForCallSite(CallSite CS);
|
||||||
|
|
|
@ -79,7 +79,7 @@ namespace {
|
||||||
AU.addPreserved<MemoryDependenceAnalysis>();
|
AU.addPreserved<MemoryDependenceAnalysis>();
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned getPointerSize(Value *V) const;
|
uint64_t getPointerSize(Value *V) const;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,7 +373,7 @@ bool DSE::handleEndBlock(BasicBlock &BB) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Value *killPointer = 0;
|
Value *killPointer = 0;
|
||||||
unsigned killPointerSize = AliasAnalysis::UnknownSize;
|
uint64_t killPointerSize = AliasAnalysis::UnknownSize;
|
||||||
|
|
||||||
// If we encounter a use of the pointer, it is no longer considered dead
|
// If we encounter a use of the pointer, it is no longer considered dead
|
||||||
if (LoadInst *L = dyn_cast<LoadInst>(BBI)) {
|
if (LoadInst *L = dyn_cast<LoadInst>(BBI)) {
|
||||||
|
@ -565,7 +565,7 @@ void DSE::DeleteDeadInstruction(Instruction *I,
|
||||||
} while (!NowDeadInsts.empty());
|
} while (!NowDeadInsts.empty());
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned DSE::getPointerSize(Value *V) const {
|
uint64_t DSE::getPointerSize(Value *V) const {
|
||||||
if (TD) {
|
if (TD) {
|
||||||
if (AllocaInst *A = dyn_cast<AllocaInst>(V)) {
|
if (AllocaInst *A = dyn_cast<AllocaInst>(V)) {
|
||||||
// Get size information for the alloca
|
// Get size information for the alloca
|
||||||
|
|
|
@ -772,7 +772,7 @@ bool MemCpyOpt::processMemMove(MemMoveInst *M) {
|
||||||
|
|
||||||
// If the memmove is a constant size, use it for the alias query, this allows
|
// If the memmove is a constant size, use it for the alias query, this allows
|
||||||
// us to optimize things like: memmove(P, P+64, 64);
|
// us to optimize things like: memmove(P, P+64, 64);
|
||||||
unsigned MemMoveSize = AliasAnalysis::UnknownSize;
|
uint64_t MemMoveSize = AliasAnalysis::UnknownSize;
|
||||||
if (ConstantInt *Len = dyn_cast<ConstantInt>(M->getLength()))
|
if (ConstantInt *Len = dyn_cast<ConstantInt>(M->getLength()))
|
||||||
MemMoveSize = Len->getZExtValue();
|
MemMoveSize = Len->getZExtValue();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue