diff options
author | Michael Kruse <llvm@meinersbur.de> | 2016-10-25 13:37:43 +0000 |
---|---|---|
committer | Michael Kruse <llvm@meinersbur.de> | 2016-10-25 13:37:43 +0000 |
commit | 426e6f71f80b52f0e46fdf28add25525b30e657c (patch) | |
tree | 53782f8f7413c3d91fcfa4315b6d758e533286e8 /polly/lib/Analysis/ScopInfo.cpp | |
parent | 62fbfe4e21fc0e2e57bea6880aa0332b5cec531a (diff) | |
download | bcm5719-llvm-426e6f71f80b52f0e46fdf28add25525b30e657c.tar.gz bcm5719-llvm-426e6f71f80b52f0e46fdf28add25525b30e657c.zip |
[ScopInfo] Fix: use raw source pointer.
When adding an llvm.memcpy instruction to AliasSetTracker, it uses the raw
source and target pointers which preserve bitcasts.
MemAccInst::getPointerOperand() also returns the raw target pointers, but
Scop::buildAliasGroups() did not for the source pointer. This lead to mismatches
between AliasSetTracker and ScopInfo on which pointer to use.
Fixed by also using raw pointers in Scop::buildAliasGroups().
llvm-svn: 285071
Diffstat (limited to 'polly/lib/Analysis/ScopInfo.cpp')
-rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index e97c03ddc21..36b639753d4 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -2935,7 +2935,7 @@ bool Scop::buildAliasGroups(AliasAnalysis &AA) { HasWriteAccess.insert(MA->getBaseAddr()); MemAccInst Acc(MA->getAccessInstruction()); if (MA->isRead() && isa<MemTransferInst>(Acc)) - PtrToAcc[cast<MemTransferInst>(Acc)->getSource()] = MA; + PtrToAcc[cast<MemTransferInst>(Acc)->getRawSource()] = MA; else PtrToAcc[Acc.getPointerOperand()] = MA; AST.add(Acc); |