/// ```
/// In that case, AccessedBytesMap is `{0:4, 4:4, 8:4, 40:4}`.
/// AccessedBytesMap is std::map so it is iterated in accending order on
- /// key(Offset). So KnownBytes will be updated like this: |Access | KnownBytes
+ /// key(Offset). So KnownBytes will be updated like this:
+ ///
+ /// |Access | KnownBytes
/// |(0, 4)| 0 -> 4
/// |(4, 4)| 4 -> 8
/// |(8, 4)| 8 -> 12
isa<PHINode>(UserI) || isa<SelectInst>(UserI)) {
Follow = true;
return true;
- };
+ }
// Unknown user.
return false;
bool followUse(Attributor &A, const Use *U, const Instruction *I) {
bool TrackUse = false;
- unsigned int KnownAlign = getKnownAlignForUse(A, *this, getAssociatedValue(), U, I, TrackUse);
+ unsigned int KnownAlign =
+ getKnownAlignForUse(A, *this, getAssociatedValue(), U, I, TrackUse);
takeKnownMaximum(KnownAlign);
return TrackUse;
// callback calls).
Value *ArgOp = ACS.getCallArgOperand(getArgNo());
if (!ArgOp)
- return false;
+ return false;
// We can only propagate thread independent values through callbacks.
// This is different to direct/indirect call sites because for them we
// know the thread executing the caller and callee is the same. For
// callbacks this is not guaranteed, thus a thread dependent value could
// be different for the caller and callee, making it invalid to propagate.
if (ACS.isCallbackCall())
- if (auto *C =dyn_cast<Constant>(ArgOp))
+ if (auto *C = dyn_cast<Constant>(ArgOp))
if (C->isThreadDependent())
return false;
return checkAndUpdate(A, *this, *ArgOp, SimplifiedAssociatedValue);
// Call site argument attribute "align".
getOrCreateAAFor<AAAlign>(CSArgPos);
- // Call site argument attribute "nofree".
- getOrCreateAAFor<AANoFree>(CSArgPos);
+ // Call site argument attribute "nofree".
+ getOrCreateAAFor<AANoFree>(CSArgPos);
}
}
return true;