Commit c250ebf7 authored by Stefan Stipanovic's avatar Stefan Stipanovic
Browse files

getArgOperandNo helper function.

Summary: A helper function to get argument number of a arg operand Use.

Reviewers: jdoerfert, uenoku

Subscribers: hiraditya, lebedev.ri, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66844
parent 8e9e433a
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1272,6 +1272,19 @@ public:
    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 {
+2 −2
Original line number Diff line number Diff line
@@ -1572,7 +1572,7 @@ struct AANoFreeFloating : AANoFreeImpl {
        if (!CB->isArgOperand(U))
          continue;

        unsigned ArgNo = U - CB->arg_begin();
        unsigned ArgNo = CB->getArgOperandNo(U);

        const auto &NoFreeArg = A.getAAFor<AANoFree>(
            *this, IRPosition::callsite_argument(*CB, ArgNo));
@@ -4144,7 +4144,7 @@ ChangeStatus AAHeapToStackImpl::updateImpl(Attributor &A) {
        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));