[PATCH] D66844: getArgOperandNo helper function
Stefan Stipanovic via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 21 15:25:07 PDT 2019
sstefan1 updated this revision to Diff 221204.
sstefan1 added a comment.
Herald added a subscriber: hiraditya.
small refactoring to use getArgOperandNo
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66844/new/
https://reviews.llvm.org/D66844
Files:
llvm/include/llvm/IR/InstrTypes.h
llvm/lib/Transforms/IPO/Attributor.cpp
Index: llvm/lib/Transforms/IPO/Attributor.cpp
===================================================================
--- llvm/lib/Transforms/IPO/Attributor.cpp
+++ llvm/lib/Transforms/IPO/Attributor.cpp
@@ -3363,7 +3363,7 @@
const auto &NoFreeAA =
A.getAAFor<AANoFree>(*this, IRPosition::callsite_function(*CB));
- unsigned ArgNo = U - CB->arg_begin();
+ unsigned ArgNo = CB->getArgOperandNo(U);
const auto &NoCaptureAA = A.getAAFor<AANoCapture>(
*this, IRPosition::callsite_argument(*CB, ArgNo));
Index: llvm/include/llvm/IR/InstrTypes.h
===================================================================
--- llvm/include/llvm/IR/InstrTypes.h
+++ llvm/include/llvm/IR/InstrTypes.h
@@ -1267,6 +1267,19 @@
return isArgOperand(&UI.getUse());
}
+ /// Given a use for a arg operand, get the arg operand number that
+ /// corresponds to it.
+ unsigned getArgOperandNo(const Use *U) const {
+ assert(isArgOperand(U) && "Arg operand # out of range!");
+ return U - arg_begin();
+ }
+
+ /// Given a value use iterator, return the arg operand number corresponding to
+ /// it. Iterator must actually correspond to a data operand.
+ unsigned getArgOperandNo(Value::const_user_iterator UI) const {
+ return getArgOperandNo(&UI.getUse());
+ }
+
/// Returns true if this CallSite passes the given Value* as an argument to
/// the called function.
bool hasArgument(const Value *V) const {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66844.221204.patch
Type: text/x-patch
Size: 1471 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190921/a8c58a7d/attachment.bin>
More information about the llvm-commits
mailing list