summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/AliasSetTracker.cpp
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2018-08-13 22:25:16 +0000
committerPhilip Reames <listmail@philipreames.com>2018-08-13 22:25:16 +0000
commit0f396696d19bb8e434297bd2baca0654bed37e4f (patch)
tree43aeb227d4ddf8877b9b40f601b7ce02b338db49 /llvm/lib/Analysis/AliasSetTracker.cpp
parent651d683ee34f7ccd9dc1240a190123f91699129b (diff)
downloadbcm5719-llvm-0f396696d19bb8e434297bd2baca0654bed37e4f.tar.gz
bcm5719-llvm-0f396696d19bb8e434297bd2baca0654bed37e4f.zip
[AST] Cleanup code by using MemoryLocation utility [NFC]
Differential Revision: https://reviews.llvm.org/D50588 llvm-svn: 339625
Diffstat (limited to 'llvm/lib/Analysis/AliasSetTracker.cpp')
-rw-r--r--llvm/lib/Analysis/AliasSetTracker.cpp54
1 files changed, 11 insertions, 43 deletions
diff --git a/llvm/lib/Analysis/AliasSetTracker.cpp b/llvm/lib/Analysis/AliasSetTracker.cpp
index 8f903fa4f1e..cd8da0a8693 100644
--- a/llvm/lib/Analysis/AliasSetTracker.cpp
+++ b/llvm/lib/Analysis/AliasSetTracker.cpp
@@ -357,71 +357,39 @@ void AliasSetTracker::add(Value *Ptr, LocationSize Size,
void AliasSetTracker::add(LoadInst *LI) {
if (isStrongerThanMonotonic(LI->getOrdering())) return addUnknown(LI);
- AAMDNodes AAInfo;
- LI->getAAMetadata(AAInfo);
-
- AliasSet::AccessLattice Access = AliasSet::RefAccess;
- const DataLayout &DL = LI->getModule()->getDataLayout();
- AliasSet &AS = addPointer(LI->getOperand(0),
- DL.getTypeStoreSize(LI->getType()), AAInfo, Access);
+ auto MemLoc = MemoryLocation::get(LI);
+ AliasSet &AS = addPointer(MemLoc, AliasSet::RefAccess);
if (LI->isVolatile()) AS.setVolatile();
}
void AliasSetTracker::add(StoreInst *SI) {
if (isStrongerThanMonotonic(SI->getOrdering())) return addUnknown(SI);
- AAMDNodes AAInfo;
- SI->getAAMetadata(AAInfo);
-
- AliasSet::AccessLattice Access = AliasSet::ModAccess;
- const DataLayout &DL = SI->getModule()->getDataLayout();
- Value *Val = SI->getOperand(0);
- AliasSet &AS = addPointer(
- SI->getOperand(1), DL.getTypeStoreSize(Val->getType()), AAInfo, Access);
+ auto MemLoc = MemoryLocation::get(SI);
+ AliasSet &AS = addPointer(MemLoc, AliasSet::ModAccess);
if (SI->isVolatile()) AS.setVolatile();
}
void AliasSetTracker::add(VAArgInst *VAAI) {
- AAMDNodes AAInfo;
- VAAI->getAAMetadata(AAInfo);
-
- addPointer(VAAI->getOperand(0), MemoryLocation::UnknownSize, AAInfo,
+ addPointer(MemoryLocation::get(VAAI),
AliasSet::ModRefAccess);
}
void AliasSetTracker::add(AnyMemSetInst *MSI) {
- AAMDNodes AAInfo;
- MSI->getAAMetadata(AAInfo);
-
- uint64_t Len;
-
- if (ConstantInt *C = dyn_cast<ConstantInt>(MSI->getLength()))
- Len = C->getZExtValue();
- else
- Len = MemoryLocation::UnknownSize;
-
- AliasSet &AS =
- addPointer(MSI->getRawDest(), Len, AAInfo, AliasSet::ModAccess);
+ auto MemLoc = MemoryLocation::getForDest(MSI);
+ AliasSet &AS = addPointer(MemLoc, AliasSet::ModAccess);
auto *MS = dyn_cast<MemSetInst>(MSI);
if (MS && MS->isVolatile())
AS.setVolatile();
}
void AliasSetTracker::add(AnyMemTransferInst *MTI) {
- AAMDNodes AAInfo;
- MTI->getAAMetadata(AAInfo);
-
- uint64_t Len;
- if (ConstantInt *C = dyn_cast<ConstantInt>(MTI->getLength()))
- Len = C->getZExtValue();
- else
- Len = MemoryLocation::UnknownSize;
+ auto SrcLoc = MemoryLocation::getForSource(MTI);
+ auto DestLoc = MemoryLocation::getForDest(MTI);
- AliasSet &ASSrc =
- addPointer(MTI->getRawSource(), Len, AAInfo, AliasSet::RefAccess);
+ AliasSet &ASSrc = addPointer(SrcLoc, AliasSet::RefAccess);
- AliasSet &ASDst =
- addPointer(MTI->getRawDest(), Len, AAInfo, AliasSet::ModAccess);
+ AliasSet &ASDst = addPointer(DestLoc, AliasSet::ModAccess);
auto* MT = dyn_cast<MemTransferInst>(MTI);
if (MT && MT->isVolatile()) {
OpenPOWER on IntegriCloud