diff options
author | Hal Finkel <hfinkel@anl.gov> | 2012-02-10 15:52:40 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2012-02-10 15:52:40 +0000 |
commit | 1bde3f86d108f48f202f0042f8995b389d7f6872 (patch) | |
tree | 2e1d3e8b45d3ba4c8d58721768a6a208c85db083 /llvm/lib/Transforms/Vectorize/BBVectorize.cpp | |
parent | 56f6b0f219eaeb6a938a99c6e64fc0e99696ea07 (diff) | |
download | bcm5719-llvm-1bde3f86d108f48f202f0042f8995b389d7f6872.tar.gz bcm5719-llvm-1bde3f86d108f48f202f0042f8995b389d7f6872.zip |
Update BBVectorize to use aliasesUnknownInst.
This allows BBVectorize to check the "unknown instruction" list in the
alias sets. This is important to prevent instruction fusing from reordering
function calls. Resolves PR11920.
llvm-svn: 150250
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/BBVectorize.cpp')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/BBVectorize.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/llvm/lib/Transforms/Vectorize/BBVectorize.cpp b/llvm/lib/Transforms/Vectorize/BBVectorize.cpp index ea26c1a3d37..9592d2572f2 100644 --- a/llvm/lib/Transforms/Vectorize/BBVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/BBVectorize.cpp @@ -692,16 +692,10 @@ namespace { } else { for (AliasSetTracker::iterator W = WriteSet.begin(), WE = WriteSet.end(); W != WE; ++W) { - for (AliasSet::iterator A = W->begin(), AE = W->end(); - A != AE; ++A) { - AliasAnalysis::Location ptrLoc(A->getValue(), A->getSize(), - A->getTBAAInfo()); - if (AA->getModRefInfo(J, ptrLoc) != AliasAnalysis::NoModRef) { - UsesI = true; - break; - } + if (W->aliasesUnknownInst(J, *AA)) { + UsesI = true; + break; } - if (UsesI) break; } } } |