Lines Matching refs:Function
1 //===- Function.cpp - Implement the Global object classes -----------------===//
9 // This file implements the Function class for the IR library.
13 #include "llvm/IR/Function.h"
76 using ProfileCount = Function::ProfileCount;
88 void Function::convertToNewDbgValues() {
95 void Function::convertFromNewDbgValues() {
102 void Function::setIsNewDbgInfoFormat(bool NewFlag) {
108 void Function::setNewDbgInfoFormatFlag(bool NewFlag) {
119 Argument::Argument(Type *Ty, const Twine &Name, Function *Par, unsigned ArgNo)
124 void Argument::setParent(Function *parent) {
355 // Helper Methods in Function
358 LLVMContext &Function::getContext() const {
362 const DataLayout &Function::getDataLayout() const {
366 unsigned Function::getInstructionCount() const {
374 Function *Function::Create(FunctionType *Ty, LinkageTypes Linkage,
379 Function *Function::createWithDefaultAttr(FunctionType *Ty,
383 auto *F = new Function(Ty, Linkage, AddrSpace, N, M);
443 void Function::removeFromParent() {
447 void Function::eraseFromParent() {
451 void Function::splice(Function::iterator ToIt, Function *FromF,
452 Function::iterator FromBeginIt,
453 Function::iterator FromEndIt) {
463 Function::iterator Function::erase(Function::iterator FromIt,
464 Function::iterator ToIt) {
469 // Function Implementation
480 Function::Function(FunctionType *Ty, LinkageTypes Linkage, unsigned AddrSpace,
483 OperandTraits<Function>::op_begin(this), 0, Linkage, name,
511 Function::~Function() {
522 void Function::BuildLazyArguments() const {
530 new (Arguments + i) Argument(ArgTy, "", const_cast<Function *>(this), i);
537 const_cast<Function*>(this)->setValueSubclassData(SDC);
545 bool Function::isConstrainedFPIntrinsic() const {
549 void Function::clearArguments() {
558 void Function::stealArgumentListFrom(Function &Src) {
595 void Function::deleteBodyImpl(bool ShouldDrop) {
612 // The code needs to match Function::allocHungoffUselist().
625 void Function::addAttributeAtIndex(unsigned i, Attribute Attr) {
629 void Function::addFnAttr(Attribute::AttrKind Kind) {
633 void Function::addFnAttr(StringRef Kind, StringRef Val) {
637 void Function::addFnAttr(Attribute Attr) {
641 void Function::addFnAttrs(const AttrBuilder &Attrs) {
645 void Function::addRetAttr(Attribute::AttrKind Kind) {
649 void Function::addRetAttr(Attribute Attr) {
653 void Function::addRetAttrs(const AttrBuilder &Attrs) {
657 void Function::addParamAttr(unsigned ArgNo, Attribute::AttrKind Kind) {
661 void Function::addParamAttr(unsigned ArgNo, Attribute Attr) {
665 void Function::addParamAttrs(unsigned ArgNo, const AttrBuilder &Attrs) {
669 void Function::removeAttributeAtIndex(unsigned i, Attribute::AttrKind Kind) {
673 void Function::removeAttributeAtIndex(unsigned i, StringRef Kind) {
677 void Function::removeFnAttr(Attribute::AttrKind Kind) {
681 void Function::removeFnAttr(StringRef Kind) {
685 void Function::removeFnAttrs(const AttributeMask &AM) {
689 void Function::removeRetAttr(Attribute::AttrKind Kind) {
693 void Function::removeRetAttr(StringRef Kind) {
697 void Function::removeRetAttrs(const AttributeMask &Attrs) {
701 void Function::removeParamAttr(unsigned ArgNo, Attribute::AttrKind Kind) {
705 void Function::removeParamAttr(unsigned ArgNo, StringRef Kind) {
709 void Function::removeParamAttrs(unsigned ArgNo, const AttributeMask &Attrs) {
714 void Function::addDereferenceableParamAttr(unsigned ArgNo, uint64_t Bytes) {
719 bool Function::hasFnAttribute(Attribute::AttrKind Kind) const {
723 bool Function::hasFnAttribute(StringRef Kind) const {
727 bool Function::hasRetAttribute(Attribute::AttrKind Kind) const {
731 bool Function::hasParamAttribute(unsigned ArgNo,
736 Attribute Function::getAttributeAtIndex(unsigned i,
741 Attribute Function::getAttributeAtIndex(unsigned i, StringRef Kind) const {
745 Attribute Function::getFnAttribute(Attribute::AttrKind Kind) const {
749 Attribute Function::getFnAttribute(StringRef Kind) const {
753 Attribute Function::getRetAttribute(Attribute::AttrKind Kind) const {
757 uint64_t Function::getFnAttributeAsParsedInteger(StringRef Name,
771 Attribute Function::getParamAttribute(unsigned ArgNo,
776 void Function::addDereferenceableOrNullParamAttr(unsigned ArgNo,
782 void Function::addRangeRetAttr(const ConstantRange &CR) {
786 DenormalMode Function::getDenormalMode(const fltSemantics &FPType) const {
798 DenormalMode Function::getDenormalModeRaw() const {
804 DenormalMode Function::getDenormalModeF32Raw() const {
814 const std::string &Function::getGC() const {
815 assert(hasGC() && "Function has no collector");
819 void Function::setGC(std::string Str) {
824 void Function::clearGC() {
831 bool Function::hasStackProtectorFnAttr() const {
837 /// Copy all additional attributes (those not needed to create a Function) from
838 /// the Function Src to this one.
839 void Function::copyAttributesFrom(const Function *Src) {
855 MemoryEffects Function::getMemoryEffects() const {
858 void Function::setMemoryEffects(MemoryEffects ME) {
863 bool Function::doesNotAccessMemory() const {
866 void Function::setDoesNotAccessMemory() {
871 bool Function::onlyReadsMemory() const {
874 void Function::setOnlyReadsMemory() {
879 bool Function::onlyWritesMemory() const {
882 void Function::setOnlyWritesMemory() {
888 bool Function::onlyAccessesArgMemory() const {
891 void Function::setOnlyAccessesArgMemory() {
897 bool Function::onlyAccessesInaccessibleMemory() const {
900 void Function::setOnlyAccessesInaccessibleMemory() {
906 bool Function::onlyAccessesInaccessibleMemOrArgMem() const {
909 void Function::setOnlyAccessesInaccessibleMemOrArgMem() {
927 bool Function::isTargetIntrinsic(Intrinsic::ID IID) {
931 bool Function::isTargetIntrinsic() const {
956 Intrinsic::ID Function::lookupIntrinsicID(StringRef Name) {
976 void Function::updateAfterNameChange() {
1513 Function *Intrinsic::getDeclaration(Module *M, ID id, ArrayRef<Type*> Tys) {
1517 return cast<Function>(
1827 bool Intrinsic::getIntrinsicSignature(Function *F,
1833 std::optional<Function *> Intrinsic::remangleIntrinsicFunction(Function *F) {
1845 Function *NewDecl = [&] {
1847 if (auto *ExistingF = dyn_cast<Function>(ExistingGV))
1870 bool Function::hasAddressTaken(const User **PutOffender,
1938 bool Function::isDefTriviallyDead() const {
1954 bool Function::callsFunctionThatReturnsTwice() const {
1963 Constant *Function::getPersonalityFn() const {
1968 void Function::setPersonalityFn(Constant *Fn) {
1973 Constant *Function::getPrefixData() const {
1978 void Function::setPrefixData(Constant *PrefixData) {
1983 Constant *Function::getPrologueData() const {
1988 void Function::setPrologueData(Constant *PrologueData) {
1993 void Function::allocHungoffUselist() {
2009 void Function::setHungoffOperand(Constant *C) {
2018 void Function::setValueSubclassDataBit(unsigned Bit, bool On) {
2026 void Function::setEntryCount(ProfileCount Count,
2043 void Function::setEntryCount(uint64_t Count, Function::ProfileCountType Type,
2048 std::optional<ProfileCount> Function::getEntryCount(bool AllowSynthetic) const {
2070 DenseSet<GlobalValue::GUID> Function::getImportGUIDs() const {
2082 void Function::setSectionPrefix(StringRef Prefix) {
2088 std::optional<StringRef> Function::getSectionPrefix() const {
2098 bool Function::nullPointerIsDefined() const {
2102 bool llvm::NullPointerIsDefined(const Function *F, unsigned AS) {