Lines Matching refs:Attribute
175 if (F.getAttributes().hasAttrSomewhere(Attribute::InAlloca) || in checkFunctionMemoryAccess()
176 F.getAttributes().hasAttrSomewhere(Attribute::Preallocated)) in checkFunctionMemoryAccess()
292 A.removeAttr(Attribute::Writable); in addMemoryAttrs()
610 static Attribute::AttrKind
618 return Attribute::None; in determinePointerAccessAttrs()
631 return Attribute::None; in determinePointerAccessAttrs()
676 return Attribute::None; in determinePointerAccessAttrs()
703 CB.dataOperandHasImpliedAttr(UseIndex, Attribute::WriteOnly)) { in determinePointerAccessAttrs()
706 return Attribute::None; in determinePointerAccessAttrs()
715 return Attribute::None; in determinePointerAccessAttrs()
723 return Attribute::None; in determinePointerAccessAttrs()
728 return Attribute::None; in determinePointerAccessAttrs()
738 return Attribute::None; in determinePointerAccessAttrs()
743 return Attribute::None; in determinePointerAccessAttrs()
745 return Attribute::ReadOnly; in determinePointerAccessAttrs()
747 return Attribute::WriteOnly; in determinePointerAccessAttrs()
749 return Attribute::ReadNone; in determinePointerAccessAttrs()
767 if (F->getAttributes().hasAttrSomewhere(Attribute::Returned)) in addArgumentReturnedAttrs()
791 RetArg->addAttr(Attribute::Returned); in addArgumentReturnedAttrs()
828 FArg->addAttr(Attribute::NonNull); in addArgumentAttrsFromCallsites()
841 static bool addAccessAttr(Argument *A, Attribute::AttrKind R) { in addAccessAttr()
842 assert((R == Attribute::ReadOnly || R == Attribute::ReadNone || in addAccessAttr()
843 R == Attribute::WriteOnly) in addAccessAttr()
853 A->removeAttr(Attribute::WriteOnly); in addAccessAttr()
854 A->removeAttr(Attribute::ReadOnly); in addAccessAttr()
855 A->removeAttr(Attribute::ReadNone); in addAccessAttr()
857 if (R == Attribute::ReadNone || R == Attribute::ReadOnly) in addAccessAttr()
858 A->removeAttr(Attribute::Writable); in addAccessAttr()
860 if (R == Attribute::ReadOnly) in addAccessAttr()
862 else if (R == Attribute::WriteOnly) in addAccessAttr()
892 A.addAttr(Attribute::NoCapture); in addArgumentAttrs()
910 A.addAttr(Attribute::NoCapture); in addArgumentAttrs()
934 Attribute::AttrKind R = determinePointerAccessAttrs(&A, Self); in addArgumentAttrs()
935 if (R != Attribute::None) in addArgumentAttrs()
959 A->addAttr(Attribute::NoCapture); in addArgumentAttrs()
966 Attribute::AttrKind R = determinePointerAccessAttrs(&*A, Self); in addArgumentAttrs()
967 if (R != Attribute::None) in addArgumentAttrs()
1006 A->addAttr(Attribute::NoCapture); in addArgumentAttrs()
1022 auto meetAccessAttr = [](Attribute::AttrKind A, Attribute::AttrKind B) { in addArgumentAttrs()
1025 if (A == Attribute::ReadNone) in addArgumentAttrs()
1027 if (B == Attribute::ReadNone) in addArgumentAttrs()
1029 return Attribute::None; in addArgumentAttrs()
1032 Attribute::AttrKind AccessAttr = Attribute::ReadNone; in addArgumentAttrs()
1035 Attribute::AttrKind K = determinePointerAccessAttrs(A, ArgumentSCCNodes); in addArgumentAttrs()
1037 if (AccessAttr == Attribute::None) in addArgumentAttrs()
1041 if (AccessAttr != Attribute::None) { in addArgumentAttrs()
1101 if (CB.hasRetAttr(Attribute::NoAlias)) in isFunctionMallocLike()
1242 if (F->getAttributes().hasRetAttr(Attribute::NonNull)) in addNonNullAttrs()
1263 F->addRetAttr(Attribute::NonNull); in addNonNullAttrs()
1276 if (F->getAttributes().hasRetAttr(Attribute::NonNull) || in addNonNullAttrs()
1281 F->addRetAttr(Attribute::NonNull); in addNonNullAttrs()
1296 if (Attrs.hasRetAttr(Attribute::NoUndef)) in addNoUndefAttrs()
1308 if (F->hasFnAttribute(Attribute::SanitizeMemory)) in addNoUndefAttrs()
1325 if (Attrs.hasRetAttr(Attribute::NonNull) && in addNoUndefAttrs()
1333 Attribute Attr = Attrs.getRetAttr(Attribute::Range); in addNoUndefAttrs()
1341 F->addRetAttr(Attribute::NoUndef); in addNoUndefAttrs()
1374 Attribute::AttrKind AKind;
1380 InferenceDescriptor(Attribute::AttrKind AK, in InferenceDescriptor()
1510 if (CB->hasFnAttr(Attribute::NoFree)) in InstrBreaksNoFree()
1558 if (CB->hasFnAttr(Attribute::NoSync)) in InstrBreaksNoSync()
1589 Attribute::Convergent, in inferConvergent()
1621 Attribute::NoUnwind, in inferAttrsFromFunctionBodies()
1644 Attribute::NoFree, in inferAttrsFromFunctionBodies()
1660 Attribute::NoSync, in inferAttrsFromFunctionBodies()
1701 Callee->hasFnAttribute(Attribute::NoCallback)))) in addNoRecurseAttrs()
1716 return CB->hasFnAttr(Attribute::NoReturn); in instructionDoesNotReturn()
1752 if (!F || !F->hasExactDefinition() || F->hasFnAttribute(Attribute::Naked) || in addNoReturnAttrs()
1809 if (!F || F->hasOptNone() || F->hasFnAttribute(Attribute::Naked) || in createSCCNodeSet()