diff options
author | Igor Laevsky <igmyrj@gmail.com> | 2016-01-16 12:15:53 +0000 |
---|---|---|
committer | Igor Laevsky <igmyrj@gmail.com> | 2016-01-16 12:15:53 +0000 |
commit | 28eeb3f66cb02ac1670ac38c230e89773007ba70 (patch) | |
tree | 6bdfcb0417088ec741dfacd24a0aa9366a79639b /llvm/lib/Analysis/BasicAliasAnalysis.cpp | |
parent | e05fcecd36ddcf3c4bdd674205ceb1d05f68ae24 (diff) | |
download | llvm-28eeb3f66cb02ac1670ac38c230e89773007ba70.zip llvm-28eeb3f66cb02ac1670ac38c230e89773007ba70.tar.gz llvm-28eeb3f66cb02ac1670ac38c230e89773007ba70.tar.bz2 |
[BasicAliasAnalysis] Take into account operand bundles in the getModRefInfo function
Differential Revision: http://reviews.llvm.org/D16225
llvm-svn: 257991
Diffstat (limited to 'llvm/lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/BasicAliasAnalysis.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index c3d2803..4b60e46 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -717,14 +717,14 @@ ModRefInfo BasicAAResult::getModRefInfo(ImmutableCallSite CS, if (!isa<Constant>(Object) && CS.getInstruction() != Object && isNonEscapingLocalObject(Object)) { bool PassedAsArg = false; - unsigned ArgNo = 0; - for (ImmutableCallSite::arg_iterator CI = CS.arg_begin(), CE = CS.arg_end(); - CI != CE; ++CI, ++ArgNo) { + unsigned OperandNo = 0; + for (auto CI = CS.data_operands_begin(), CE = CS.data_operands_end(); + CI != CE; ++CI, ++OperandNo) { // Only look at the no-capture or byval pointer arguments. If this // pointer were passed to arguments that were neither of these, then it // couldn't be no-capture. if (!(*CI)->getType()->isPointerTy() || - (!CS.doesNotCapture(ArgNo) && !CS.isByValArgument(ArgNo))) + (!CS.doesNotCapture(OperandNo) && !CS.isByValArgument(OperandNo))) continue; // If this is a no-capture pointer argument, see if we can tell that it |