Lines Matching refs:llvm

43 namespace llvm {
124 llvm::FunctionCallee objc_alloc;
127 llvm::FunctionCallee objc_allocWithZone;
130 llvm::FunctionCallee objc_alloc_init;
133 llvm::FunctionCallee objc_autoreleasePoolPop;
137 llvm::FunctionCallee objc_autoreleasePoolPopInvoke;
140 llvm::Function *objc_autoreleasePoolPush;
143 llvm::Function *objc_autorelease;
147 llvm::FunctionCallee objc_autoreleaseRuntimeFunction;
150 llvm::Function *objc_autoreleaseReturnValue;
153 llvm::Function *objc_copyWeak;
156 llvm::Function *objc_destroyWeak;
159 llvm::Function *objc_initWeak;
162 llvm::Function *objc_loadWeak;
165 llvm::Function *objc_loadWeakRetained;
168 llvm::Function *objc_moveWeak;
171 llvm::Function *objc_retain;
175 llvm::FunctionCallee objc_retainRuntimeFunction;
178 llvm::Function *objc_retainAutorelease;
181 llvm::Function *objc_retainAutoreleaseReturnValue;
184 llvm::Function *objc_retainAutoreleasedReturnValue;
187 llvm::Function *objc_retainBlock;
190 llvm::Function *objc_release;
194 llvm::FunctionCallee objc_releaseRuntimeFunction;
197 llvm::Function *objc_storeStrong;
200 llvm::Function *objc_storeWeak;
203 llvm::Function *objc_unsafeClaimAutoreleasedReturnValue;
207 llvm::InlineAsm *retainAutoreleasedReturnValueMarker;
210 llvm::Function *clang_arc_use;
213 llvm::Function *clang_arc_noop_use;
248 class BlockByrefHelpers : public llvm::FoldingSetNode {
252 llvm::Constant *CopyHelper;
253 llvm::Constant *DisposeHelper;
265 void Profile(llvm::FoldingSetNodeID &id) const { in Profile()
269 virtual void profileImpl(llvm::FoldingSetNodeID &id) const = 0;
289 Structor(int Priority, unsigned LexOrder, llvm::Constant *Initializer, in Structor()
290 llvm::Constant *AssociatedData) in Structor()
295 llvm::Constant *Initializer;
296 llvm::Constant *AssociatedData;
304 IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS; // Only used for debug info.
309 llvm::Module &TheModule;
313 llvm::LLVMContext &VMContext;
335 llvm::MDNode *NoObjCARCExceptionsMetadata = nullptr;
336 std::unique_ptr<llvm::IndexedInstrProfReader> PGOReader;
338 std::unique_ptr<llvm::SanitizerStatReport> SanStats;
343 llvm::SmallPtrSet<llvm::GlobalValue*, 10> WeakRefReferences;
349 llvm::DenseMap<StringRef, GlobalDecl> DeferredDecls;
360 llvm::DenseMap<llvm::StringRef, GlobalDecl> EmittedDeferredDecls;
368 auto L = llvm::GlobalValue::ExternalLinkage; in addEmittedDeferredDecl()
369 if (llvm::isa<FunctionDecl>(GD.getDecl())) in addEmittedDeferredDecl()
371 else if (auto *VD = llvm::dyn_cast<VarDecl>(GD.getDecl())) in addEmittedDeferredDecl()
374 if (llvm::GlobalValue::isInternalLinkage(L) || in addEmittedDeferredDecl()
375 llvm::GlobalValue::isLinkOnceLinkage(L) || in addEmittedDeferredDecl()
376 llvm::GlobalValue::isWeakLinkage(L)) { in addEmittedDeferredDecl()
390 llvm::MapVector<StringRef, llvm::TrackingVH<llvm::Constant>> Replacements;
395 llvm::SmallVector<std::pair<llvm::GlobalValue *, llvm::Constant *>, 8>
400 llvm::DenseMap<const VarDecl*, llvm::GlobalVariable*> InitializerConstants;
405 llvm::DenseSet<GlobalDecl> DiagnosedConflictingDefinitions;
416 std::vector<llvm::WeakTrackingVH> LLVMUsed;
417 std::vector<llvm::WeakTrackingVH> LLVMCompilerUsed;
428 llvm::MapVector<GlobalDecl, StringRef> MangledDeclNames;
429 llvm::StringMap<GlobalDecl, llvm::BumpPtrAllocator> Manglings;
432 std::vector<llvm::Constant*> Annotations;
436 llvm::DenseMap<StringRef, const ValueDecl *> DeferredAnnotations;
439 llvm::StringMap<llvm::Constant*> AnnotationStrings;
442 llvm::DenseMap<unsigned, llvm::Constant *> AnnotationArgs;
444 llvm::StringMap<llvm::GlobalVariable *> CFConstantStringMap;
446 llvm::DenseMap<llvm::Constant *, llvm::GlobalVariable *> ConstantStringMap;
447 llvm::DenseMap<const UnnamedGlobalConstantDecl *, llvm::GlobalVariable *>
449 llvm::DenseMap<const Decl*, llvm::Constant *> StaticLocalDeclMap;
450 llvm::DenseMap<const Decl*, llvm::GlobalVariable*> StaticLocalDeclGuardMap;
451 llvm::DenseMap<const Expr*, llvm::Constant *> MaterializedGlobalTemporaryMap;
453 llvm::DenseMap<QualType, llvm::Constant *> AtomicSetterHelperFnMap;
454 llvm::DenseMap<QualType, llvm::Constant *> AtomicGetterHelperFnMap;
457 llvm::DenseMap<QualType, llvm::Constant *> TypeDescriptorMap;
461 typedef llvm::MapVector<IdentifierInfo *,
462 llvm::GlobalValue *> StaticExternCMap;
470 std::vector<llvm::Function *> CXXThreadLocalInits;
474 std::vector<llvm::Function *> CXXGlobalInits;
481 llvm::DenseMap<const Decl*, unsigned> DelayedCXXInitPosition;
483 typedef std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>
500 typedef std::tuple<llvm::FunctionType *, llvm::WeakTrackingVH,
501 llvm::Constant *>
506 typedef std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>
521 llvm::SetVector<clang::Module *> ImportedModules;
525 llvm::SmallPtrSet<clang::Module *, 16> EmittedModuleInitializers;
528 SmallVector<llvm::MDNode *, 16> LinkerOptionsMetadata;
531 SmallVector<llvm::MDNode *, 16> ELFDependentLibraries;
538 llvm::WeakTrackingVH CFConstantStringClassRef;
558 llvm::DenseMap<const CompoundLiteralExpr *, llvm::GlobalVariable *>
563 llvm::DenseMap<const BlockExpr *, llvm::Constant *> EmittedGlobalBlocks;
568 llvm::Constant *NSConcreteGlobalBlock = nullptr;
569 llvm::Constant *NSConcreteStackBlock = nullptr;
571 llvm::FunctionCallee BlockObjectAssign = nullptr;
572 llvm::FunctionCallee BlockObjectDispose = nullptr;
574 llvm::Type *BlockDescriptorType = nullptr;
575 llvm::Type *GenericBlockLiteralType = nullptr;
586 llvm::Function *LifetimeStartFn = nullptr;
589 llvm::Function *LifetimeEndFn = nullptr;
593 llvm::MapVector<const Decl *, bool> DeferredEmptyCoverageMappingDecls;
600 typedef llvm::DenseMap<QualType, llvm::Metadata *> MetadataTypeMap;
611 CodeGenModule(ASTContext &C, IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS,
614 const CodeGenOptions &CodeGenOpts, llvm::Module &M,
670 llvm::FunctionCallee IsOSVersionAtLeastFn = nullptr;
672 llvm::FunctionCallee IsPlatformVersionAtLeastFn = nullptr;
675 llvm::IndexedInstrProfReader *getPGOReader() const { return PGOReader.get(); } in getPGOReader()
681 llvm::Constant *getStaticLocalDeclAddress(const VarDecl *D) { in getStaticLocalDeclAddress()
685 llvm::Constant *C) { in setStaticLocalDeclAddress()
689 llvm::Constant *
691 llvm::GlobalValue::LinkageTypes Linkage);
693 llvm::GlobalVariable *getStaticLocalDeclGuardAddress(const VarDecl *D) { in getStaticLocalDeclGuardAddress()
697 llvm::GlobalVariable *C) { in setStaticLocalDeclGuardAddress()
701 Address createUnnamedGlobalFrom(const VarDecl &D, llvm::Constant *Constant,
707 llvm::Constant *getAtomicSetterHelperFnMap(QualType Ty) { in getAtomicSetterHelperFnMap()
711 llvm::Constant *Fn) { in setAtomicSetterHelperFnMap()
715 llvm::Constant *getAtomicGetterHelperFnMap(QualType Ty) { in getAtomicGetterHelperFnMap()
719 llvm::Constant *Fn) { in setAtomicGetterHelperFnMap()
723 llvm::Constant *getTypeDescriptorFromMap(QualType Ty) { in getTypeDescriptorFromMap()
726 void setTypeDescriptorInMap(QualType Ty, llvm::Constant *C) { in setTypeDescriptorInMap()
732 llvm::MDNode *getNoObjCARCExceptionsMetadata() { in getNoObjCARCExceptionsMetadata()
735 llvm::MDNode::get(getLLVMContext(), std::nullopt); in getNoObjCARCExceptionsMetadata()
741 const IntrusiveRefCntPtr<llvm::vfs::FileSystem> &getFileSystem() const { in getFileSystem()
749 llvm::Module &getModule() const { return TheModule; } in getModule()
751 const llvm::DataLayout &getDataLayout() const { in getDataLayout()
755 const llvm::Triple &getTriple() const { return Target.getTriple(); } in getTriple()
757 void maybeSetTrivialComdat(const Decl &D, llvm::GlobalObject &GO);
760 llvm::LLVMContext &getLLVMContext() { return VMContext; } in getLLVMContext()
787 llvm::MDNode *getTBAATypeInfo(QualType QTy);
795 TBAAAccessInfo getTBAAVTablePtrAccessInfo(llvm::Type *VTablePtrType);
797 llvm::MDNode *getTBAAStructInfo(QualType QTy);
801 llvm::MDNode *getTBAABaseTypeInfo(QualType QTy);
804 llvm::MDNode *getTBAAAccessTagInfo(TBAAAccessInfo Info);
833 void DecorateInstructionWithTBAA(llvm::Instruction *Inst,
837 void DecorateInstructionWithInvariantGroup(llvm::Instruction *I,
841 llvm::ConstantInt *getSize(CharUnits numChars);
844 void setGlobalVisibility(llvm::GlobalValue *GV, const NamedDecl *D) const;
846 void setDSOLocal(llvm::GlobalValue *GV) const;
856 void setDLLImportDLLExport(llvm::GlobalValue *GV, GlobalDecl D) const;
857 void setDLLImportDLLExport(llvm::GlobalValue *GV, const NamedDecl *D) const;
860 void setGVProperties(llvm::GlobalValue *GV, GlobalDecl GD) const;
861 void setGVProperties(llvm::GlobalValue *GV, const NamedDecl *D) const;
863 void setGVPropertiesAux(llvm::GlobalValue *GV, const NamedDecl *D) const;
867 void setTLSMode(llvm::GlobalValue *GV, const VarDecl &D) const;
870 llvm::GlobalVariable::ThreadLocalMode GetDefaultLLVMTLSModel() const;
872 static llvm::GlobalValue::VisibilityTypes GetLLVMVisibility(Visibility V) { in GetLLVMVisibility()
874 case DefaultVisibility: return llvm::GlobalValue::DefaultVisibility; in GetLLVMVisibility()
875 case HiddenVisibility: return llvm::GlobalValue::HiddenVisibility; in GetLLVMVisibility()
876 case ProtectedVisibility: return llvm::GlobalValue::ProtectedVisibility; in GetLLVMVisibility()
881 llvm::Constant *GetAddrOfGlobal(GlobalDecl GD,
889 llvm::GlobalVariable *
890 CreateOrReplaceCXXRuntimeVariable(StringRef Name, llvm::Type *Ty,
891 llvm::GlobalValue::LinkageTypes Linkage,
892 llvm::Align Alignment);
894 llvm::Function *CreateGlobalInitOrCleanUpFunction(
895 llvm::FunctionType *ty, const Twine &name, const CGFunctionInfo &FI,
897 llvm::GlobalVariable::LinkageTypes Linkage =
898 llvm::GlobalVariable::InternalLinkage);
923 llvm::Constant *GetAddrOfGlobalVar(const VarDecl *D,
924 llvm::Type *Ty = nullptr,
930 llvm::Constant *GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty = nullptr,
937 llvm::Constant *GetFunctionStart(const ValueDecl *Decl);
947 llvm::Constant *GetAddrOfRTTIDescriptor(QualType Ty, bool ForEH = false);
961 llvm::Constant *GetAddrOfThunk(StringRef Name, llvm::Type *FnTy,
1000 llvm::Constant *
1005 llvm::FoldingSet<BlockByrefHelpers> ByrefHelpersCache;
1011 llvm::Type *getBlockDescriptorType();
1014 llvm::Type *getGenericBlockLiteralType();
1017 llvm::Constant *GetAddrOfGlobalBlock(const BlockExpr *BE, StringRef Name);
1021 llvm::Constant *getAddrOfGlobalBlockIfEmitted(const BlockExpr *BE) { in getAddrOfGlobalBlockIfEmitted()
1027 void setAddrOfGlobalBlock(const BlockExpr *BE, llvm::Constant *Addr);
1033 llvm::Constant *GetConstantArrayFromStringLiteral(const StringLiteral *E);
1059 llvm::GlobalVariable *
1065 llvm::GlobalVariable *GV);
1079 llvm::Function *codegenCXXStructor(GlobalDecl GD);
1082 llvm::Constant *
1084 llvm::FunctionType *FnType = nullptr,
1087 return cast<llvm::Constant>(getAddrAndTypeOfCXXStructor(GD, FnInfo, FnType,
1093 llvm::FunctionCallee getAddrAndTypeOfCXXStructor(
1095 llvm::FunctionType *FnType = nullptr, bool DontDefer = false,
1100 llvm::Constant *getBuiltinLibFunction(const FunctionDecl *FD,
1103 llvm::Function *getIntrinsic(unsigned IID,
1104 ArrayRef<llvm::Type *> Tys = std::nullopt);
1131 void MaybeHandleStaticInExternC(const SomeDecl *D, llvm::GlobalValue *GV);
1134 void addUsedGlobal(llvm::GlobalValue *GV);
1137 void addCompilerUsedGlobal(llvm::GlobalValue *GV);
1140 void addUsedOrCompilerUsedGlobal(llvm::GlobalValue *GV);
1143 void AddCXXDtorEntry(llvm::FunctionCallee DtorFn, llvm::Constant *Object) { in AddCXXDtorEntry()
1149 void AddCXXStermFinalizerEntry(llvm::FunctionCallee DtorFn) { in AddCXXStermFinalizerEntry()
1155 void AddCXXStermFinalizerToGlobalDtor(llvm::Function *StermFinalizer, in AddCXXStermFinalizerToGlobalDtor()
1160 void AddCXXPrioritizedStermFinalizerEntry(llvm::Function *StermFinalizer, in AddCXXPrioritizedStermFinalizerEntry()
1171 llvm::FunctionCallee
1172 CreateRuntimeFunction(llvm::FunctionType *Ty, StringRef Name,
1173 llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
1177 llvm::Constant *CreateRuntimeVariable(llvm::Type *Ty,
1183 llvm::Constant *getNSConcreteGlobalBlock();
1184 llvm::Constant *getNSConcreteStackBlock();
1185 llvm::FunctionCallee getBlockObjectAssign();
1186 llvm::FunctionCallee getBlockObjectDispose();
1190 llvm::Function *getLLVMLifetimeStartFn();
1191 llvm::Function *getLLVMLifetimeEndFn();
1196 llvm::Constant *getMemberPointerConstant(const UnaryOperator *e);
1206 llvm::Constant *EmitNullConstant(QualType T);
1210 llvm::Constant *EmitNullConstantForBase(const CXXRecordDecl *Record);
1224 void SetInternalFunctionAttributes(GlobalDecl GD, llvm::Function *F,
1229 llvm::Function *F, bool IsThunk);
1233 void SetLLVMFunctionAttributesForDefinition(const Decl *D, llvm::Function *F);
1237 void setLLVMFunctionFEnvAttributes(const FunctionDecl *D, llvm::Function *F);
1267 llvm::AttributeList &Attrs, unsigned &CallingConv,
1274 llvm::AttributeList &Attrs);
1278 void addDefaultFunctionDefinitionAttributes(llvm::AttrBuilder &attrs);
1302 llvm::GlobalVariable::LinkageTypes getFunctionLinkage(GlobalDecl GD);
1304 void setFunctionLinkage(GlobalDecl GD, llvm::Function *F) { in setFunctionLinkage()
1310 llvm::GlobalVariable::LinkageTypes getVTableLinkage(const CXXRecordDecl *RD);
1313 CharUnits GetTargetTypeStoreSize(llvm::Type *Ty) const;
1316 llvm::GlobalValue::LinkageTypes
1320 llvm::GlobalValue::LinkageTypes
1327 llvm::Constant *EmitAnnotationString(StringRef Str);
1330 llvm::Constant *EmitAnnotationUnit(SourceLocation Loc);
1333 llvm::Constant *EmitAnnotationLineNo(SourceLocation L);
1336 llvm::Constant *EmitAnnotationArgs(const AnnotateAttr *Attr);
1345 llvm::Constant *EmitAnnotateAttr(llvm::GlobalValue *GV,
1351 void AddGlobalAnnotations(const ValueDecl *D, llvm::GlobalValue *GV);
1353 bool isInNoSanitizeList(SanitizerMask Kind, llvm::Function *Fn,
1356 bool isInNoSanitizeList(SanitizerMask Kind, llvm::GlobalVariable *GV,
1363 bool imbueXRayAttrs(llvm::Function *Fn, SourceLocation Loc,
1369 isFunctionBlockedByProfileList(llvm::Function *Fn, SourceLocation Loc) const;
1374 isFunctionBlockedFromProfileInstr(llvm::Function *Fn,
1391 llvm::GlobalValue *GetGlobalValue(StringRef Ref);
1397 void SetCommonAttributes(GlobalDecl GD, llvm::GlobalValue *GV);
1399 void addReplacement(StringRef Name, llvm::Constant *C);
1401 void addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C);
1442 llvm::GlobalObject::VCallVisibility
1444 llvm::DenseSet<const CXXRecordDecl *> &Visited);
1448 llvm::GlobalVariable *VTable,
1451 llvm::Type *getVTableComponentType() const;
1454 llvm::ConstantInt *CreateCrossDsoCfiTypeId(llvm::Metadata *MD);
1457 llvm::ConstantInt *CreateKCFITypeId(QualType T);
1462 llvm::Metadata *CreateMetadataIdentifierForType(QualType T);
1466 llvm::Metadata *CreateMetadataIdentifierForVirtualMemPtrType(QualType T);
1471 llvm::Metadata *CreateMetadataIdentifierGeneralized(QualType T);
1475 llvm::Function *F);
1478 void setKCFIType(const FunctionDecl *FD, llvm::Function *F);
1492 void AddVTableTypeMetadata(llvm::GlobalVariable *VTable, CharUnits Offset,
1504 llvm::FunctionCallee getTerminateFn();
1506 llvm::SanitizerStatReport &getSanStats();
1508 llvm::Value *
1521 void GenKernelArgMetadata(llvm::Function *FN,
1528 llvm::Constant *getNullPointer(llvm::PointerType *T, QualType QT);
1544 void printPostfixForExternalizedDecl(llvm::raw_ostream &OS,
1555 void handleCUDALaunchBoundsAttr(llvm::Function *F,
1567 llvm::Function *F, const AMDGPUFlatWorkGroupSizeAttr *A,
1572 void handleAMDGPUWavesPerEUAttr(llvm::Function *F,
1575 llvm::Constant *
1576 GetOrCreateLLVMGlobal(StringRef MangledName, llvm::Type *Ty, LangAS AddrSpace,
1581 void AddGlobalCtor(llvm::Function *Ctor, int Priority = 65535,
1583 llvm::Constant *AssociatedData = nullptr);
1584 void AddGlobalDtor(llvm::Function *Dtor, int Priority = 65535,
1588 llvm::Constant *GetOrCreateLLVMFunction(
1589 StringRef MangledName, llvm::Type *Ty, GlobalDecl D, bool ForVTable,
1591 llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
1599 llvm::Constant *GetOrCreateMultiVersionResolver(GlobalDecl GD);
1610 llvm::AttrBuilder &AttrBuilder,
1612 void setNonAliasAttributes(GlobalDecl GD, llvm::GlobalObject *GO);
1615 void SetFunctionAttributes(GlobalDecl GD, llvm::Function *F,
1618 void EmitGlobalDefinition(GlobalDecl D, llvm::GlobalValue *GV = nullptr);
1620 void EmitGlobalFunctionDefinition(GlobalDecl GD, llvm::GlobalValue *GV);
1621 void EmitMultiVersionFunctionDefinition(GlobalDecl GD, llvm::GlobalValue *GV);
1652 llvm::GlobalVariable *Addr,
1655 void EmitPointerToInitFunc(const VarDecl *VD, llvm::GlobalVariable *Addr,
1656 llvm::Function *InitFunc, InitSegAttr *ISA);
1680 std::map<int, llvm::TinyPtrVector<llvm::Function *>> DtorsUsingAtExit;
1717 bool CheckAndReplaceExternCIFuncs(llvm::GlobalValue *Elem,
1718 llvm::GlobalValue *CppFunc);
1761 llvm::AttrBuilder &FuncAttrs);
1768 llvm::AttrBuilder &FuncAttrs);
1770 llvm::Metadata *CreateMetadataIdentifierImpl(QualType T, MetadataTypeMap &Map,