Lines Matching refs:llvm
42 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;
351 llvm::StringSet<llvm::BumpPtrAllocator> DeferredResolversToEmit;
362 llvm::DenseMap<llvm::StringRef, GlobalDecl> EmittedDeferredDecls;
370 auto L = llvm::GlobalValue::ExternalLinkage; in addEmittedDeferredDecl()
371 if (llvm::isa<FunctionDecl>(GD.getDecl())) in addEmittedDeferredDecl()
373 else if (auto *VD = llvm::dyn_cast<VarDecl>(GD.getDecl())) in addEmittedDeferredDecl()
376 if (llvm::GlobalValue::isInternalLinkage(L) || in addEmittedDeferredDecl()
377 llvm::GlobalValue::isLinkOnceLinkage(L) || in addEmittedDeferredDecl()
378 llvm::GlobalValue::isWeakLinkage(L)) { in addEmittedDeferredDecl()
392 llvm::MapVector<StringRef, llvm::TrackingVH<llvm::Constant>> Replacements;
397 llvm::SmallVector<std::pair<llvm::GlobalValue *, llvm::Constant *>, 8>
402 llvm::DenseMap<const VarDecl*, llvm::GlobalVariable*> InitializerConstants;
407 llvm::DenseSet<GlobalDecl> DiagnosedConflictingDefinitions;
418 std::vector<llvm::WeakTrackingVH> LLVMUsed;
419 std::vector<llvm::WeakTrackingVH> LLVMCompilerUsed;
430 llvm::MapVector<GlobalDecl, StringRef> MangledDeclNames;
431 llvm::StringMap<GlobalDecl, llvm::BumpPtrAllocator> Manglings;
434 std::vector<llvm::Constant*> Annotations;
438 llvm::MapVector<StringRef, const ValueDecl *> DeferredAnnotations;
441 llvm::StringMap<llvm::Constant*> AnnotationStrings;
444 llvm::DenseMap<unsigned, llvm::Constant *> AnnotationArgs;
446 llvm::StringMap<llvm::GlobalVariable *> CFConstantStringMap;
448 llvm::DenseMap<llvm::Constant *, llvm::GlobalVariable *> ConstantStringMap;
449 llvm::DenseMap<const UnnamedGlobalConstantDecl *, llvm::GlobalVariable *>
451 llvm::DenseMap<const Decl*, llvm::Constant *> StaticLocalDeclMap;
452 llvm::DenseMap<const Decl*, llvm::GlobalVariable*> StaticLocalDeclGuardMap;
453 llvm::DenseMap<const Expr*, llvm::Constant *> MaterializedGlobalTemporaryMap;
455 llvm::DenseMap<QualType, llvm::Constant *> AtomicSetterHelperFnMap;
456 llvm::DenseMap<QualType, llvm::Constant *> AtomicGetterHelperFnMap;
459 llvm::DenseMap<QualType, llvm::Constant *> TypeDescriptorMap;
463 typedef llvm::MapVector<IdentifierInfo *,
464 llvm::GlobalValue *> StaticExternCMap;
472 std::vector<llvm::Function *> CXXThreadLocalInits;
476 std::vector<llvm::Function *> CXXGlobalInits;
483 llvm::DenseMap<const Decl*, unsigned> DelayedCXXInitPosition;
485 typedef std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>
493 llvm::SmallSetVector<std::pair<const FunctionDecl *, SourceLocation>, 4>
510 typedef std::tuple<llvm::FunctionType *, llvm::WeakTrackingVH,
511 llvm::Constant *>
516 typedef std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>
531 llvm::SetVector<clang::Module *> ImportedModules;
535 llvm::SmallPtrSet<clang::Module *, 16> EmittedModuleInitializers;
538 SmallVector<llvm::MDNode *, 16> LinkerOptionsMetadata;
541 SmallVector<llvm::MDNode *, 16> ELFDependentLibraries;
548 llvm::WeakTrackingVH CFConstantStringClassRef;
571 llvm::DenseMap<const CompoundLiteralExpr *, llvm::GlobalVariable *>
576 llvm::DenseMap<const BlockExpr *, llvm::Constant *> EmittedGlobalBlocks;
581 llvm::Constant *NSConcreteGlobalBlock = nullptr;
582 llvm::Constant *NSConcreteStackBlock = nullptr;
584 llvm::FunctionCallee BlockObjectAssign = nullptr;
585 llvm::FunctionCallee BlockObjectDispose = nullptr;
587 llvm::Type *BlockDescriptorType = nullptr;
588 llvm::Type *GenericBlockLiteralType = nullptr;
599 llvm::Function *LifetimeStartFn = nullptr;
602 llvm::Function *LifetimeEndFn = nullptr;
606 llvm::MapVector<const Decl *, bool> DeferredEmptyCoverageMappingDecls;
613 typedef llvm::DenseMap<QualType, llvm::Metadata *> MetadataTypeMap;
623 llvm::DenseMap<GlobalDecl, uint16_t> PtrAuthDiscriminatorHashes;
625 llvm::DenseMap<const CXXRecordDecl *, std::optional<PointerAuthQualifier>>
631 CodeGenModule(ASTContext &C, IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS,
634 const CodeGenOptions &CodeGenOpts, llvm::Module &M,
690 llvm::FunctionCallee IsOSVersionAtLeastFn = nullptr;
692 llvm::FunctionCallee IsPlatformVersionAtLeastFn = nullptr;
695 llvm::IndexedInstrProfReader *getPGOReader() const { return PGOReader.get(); } in getPGOReader()
701 llvm::Constant *getStaticLocalDeclAddress(const VarDecl *D) { in getStaticLocalDeclAddress()
705 llvm::Constant *C) { in setStaticLocalDeclAddress()
709 llvm::Constant *
711 llvm::GlobalValue::LinkageTypes Linkage);
713 llvm::GlobalVariable *getStaticLocalDeclGuardAddress(const VarDecl *D) { in getStaticLocalDeclGuardAddress()
717 llvm::GlobalVariable *C) { in setStaticLocalDeclGuardAddress()
721 Address createUnnamedGlobalFrom(const VarDecl &D, llvm::Constant *Constant,
727 llvm::Constant *getAtomicSetterHelperFnMap(QualType Ty) { in getAtomicSetterHelperFnMap()
731 llvm::Constant *Fn) { in setAtomicSetterHelperFnMap()
735 llvm::Constant *getAtomicGetterHelperFnMap(QualType Ty) { in getAtomicGetterHelperFnMap()
739 llvm::Constant *Fn) { in setAtomicGetterHelperFnMap()
743 llvm::Constant *getTypeDescriptorFromMap(QualType Ty) { in getTypeDescriptorFromMap()
746 void setTypeDescriptorInMap(QualType Ty, llvm::Constant *C) { in setTypeDescriptorInMap()
752 llvm::MDNode *getNoObjCARCExceptionsMetadata() { in getNoObjCARCExceptionsMetadata()
755 llvm::MDNode::get(getLLVMContext(), std::nullopt); in getNoObjCARCExceptionsMetadata()
761 const IntrusiveRefCntPtr<llvm::vfs::FileSystem> &getFileSystem() const { in getFileSystem()
769 llvm::Module &getModule() const { return TheModule; } in getModule()
771 const llvm::DataLayout &getDataLayout() const { in getDataLayout()
775 const llvm::Triple &getTriple() const { return Target.getTriple(); } in getTriple()
777 void maybeSetTrivialComdat(const Decl &D, llvm::GlobalObject &GO);
781 llvm::LLVMContext &getLLVMContext() { return VMContext; } in getLLVMContext()
808 llvm::MDNode *getTBAATypeInfo(QualType QTy);
816 TBAAAccessInfo getTBAAVTablePtrAccessInfo(llvm::Type *VTablePtrType);
818 llvm::MDNode *getTBAAStructInfo(QualType QTy);
822 llvm::MDNode *getTBAABaseTypeInfo(QualType QTy);
825 llvm::MDNode *getTBAAAccessTagInfo(TBAAAccessInfo Info);
854 void DecorateInstructionWithTBAA(llvm::Instruction *Inst,
858 void DecorateInstructionWithInvariantGroup(llvm::Instruction *I,
862 llvm::ConstantInt *getSize(CharUnits numChars);
865 void setGlobalVisibility(llvm::GlobalValue *GV, const NamedDecl *D) const;
867 void setDSOLocal(llvm::GlobalValue *GV) const;
877 void setDLLImportDLLExport(llvm::GlobalValue *GV, GlobalDecl D) const;
878 void setDLLImportDLLExport(llvm::GlobalValue *GV, const NamedDecl *D) const;
881 void setGVProperties(llvm::GlobalValue *GV, GlobalDecl GD) const;
882 void setGVProperties(llvm::GlobalValue *GV, const NamedDecl *D) const;
884 void setGVPropertiesAux(llvm::GlobalValue *GV, const NamedDecl *D) const;
888 void setTLSMode(llvm::GlobalValue *GV, const VarDecl &D) const;
891 llvm::GlobalVariable::ThreadLocalMode GetDefaultLLVMTLSModel() const;
893 static llvm::GlobalValue::VisibilityTypes GetLLVMVisibility(Visibility V) { in GetLLVMVisibility()
895 case DefaultVisibility: return llvm::GlobalValue::DefaultVisibility; in GetLLVMVisibility()
896 case HiddenVisibility: return llvm::GlobalValue::HiddenVisibility; in GetLLVMVisibility()
897 case ProtectedVisibility: return llvm::GlobalValue::ProtectedVisibility; in GetLLVMVisibility()
902 llvm::Constant *GetAddrOfGlobal(GlobalDecl GD,
910 llvm::GlobalVariable *
911 CreateOrReplaceCXXRuntimeVariable(StringRef Name, llvm::Type *Ty,
912 llvm::GlobalValue::LinkageTypes Linkage,
913 llvm::Align Alignment);
915 llvm::Function *CreateGlobalInitOrCleanUpFunction(
916 llvm::FunctionType *ty, const Twine &name, const CGFunctionInfo &FI,
918 llvm::GlobalVariable::LinkageTypes Linkage =
919 llvm::GlobalVariable::InternalLinkage);
944 llvm::Constant *GetAddrOfGlobalVar(const VarDecl *D,
945 llvm::Type *Ty = nullptr,
951 llvm::Constant *GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty = nullptr,
958 llvm::Constant *GetFunctionStart(const ValueDecl *Decl);
963 llvm::Constant *getRawFunctionPointer(GlobalDecl GD,
964 llvm::Type *Ty = nullptr);
969 llvm::Constant *getFunctionPointer(GlobalDecl GD, llvm::Type *Ty = nullptr);
974 llvm::Constant *getFunctionPointer(llvm::Constant *Pointer,
977 llvm::Constant *getMemberFunctionPointer(const FunctionDecl *FD,
978 llvm::Type *Ty = nullptr);
980 llvm::Constant *getMemberFunctionPointer(llvm::Constant *Pointer,
992 llvm::Constant *getConstantSignedPointer(llvm::Constant *Pointer,
994 llvm::Constant *StorageAddress,
998 llvm::Constant *
999 getConstantSignedPointer(llvm::Constant *Pointer, unsigned Key,
1000 llvm::Constant *StorageAddress,
1001 llvm::ConstantInt *OtherDiscriminator);
1003 llvm::ConstantInt *
1011 llvm::Value *StorageAddress);
1026 llvm::Constant *GetAddrOfRTTIDescriptor(QualType Ty, bool ForEH = false);
1040 llvm::Constant *GetAddrOfThunk(StringRef Name, llvm::Type *FnTy,
1079 llvm::Constant *
1084 llvm::FoldingSet<BlockByrefHelpers> ByrefHelpersCache;
1090 llvm::Type *getBlockDescriptorType();
1093 llvm::Type *getGenericBlockLiteralType();
1096 llvm::Constant *GetAddrOfGlobalBlock(const BlockExpr *BE, StringRef Name);
1100 llvm::Constant *getAddrOfGlobalBlockIfEmitted(const BlockExpr *BE) { in getAddrOfGlobalBlockIfEmitted()
1106 void setAddrOfGlobalBlock(const BlockExpr *BE, llvm::Constant *Addr);
1112 llvm::Constant *GetConstantArrayFromStringLiteral(const StringLiteral *E);
1138 llvm::GlobalVariable *
1144 llvm::GlobalVariable *GV);
1158 llvm::Function *codegenCXXStructor(GlobalDecl GD);
1161 llvm::Constant *
1163 llvm::FunctionType *FnType = nullptr,
1166 return cast<llvm::Constant>(getAddrAndTypeOfCXXStructor(GD, FnInfo, FnType,
1172 llvm::FunctionCallee getAddrAndTypeOfCXXStructor(
1174 llvm::FunctionType *FnType = nullptr, bool DontDefer = false,
1179 llvm::Constant *getBuiltinLibFunction(const FunctionDecl *FD,
1182 llvm::Function *getIntrinsic(unsigned IID,
1183 ArrayRef<llvm::Type *> Tys = std::nullopt);
1210 void MaybeHandleStaticInExternC(const SomeDecl *D, llvm::GlobalValue *GV);
1213 void addUsedGlobal(llvm::GlobalValue *GV);
1216 void addCompilerUsedGlobal(llvm::GlobalValue *GV);
1219 void addUsedOrCompilerUsedGlobal(llvm::GlobalValue *GV);
1222 void AddCXXDtorEntry(llvm::FunctionCallee DtorFn, llvm::Constant *Object) { in AddCXXDtorEntry()
1228 void AddCXXStermFinalizerEntry(llvm::FunctionCallee DtorFn) { in AddCXXStermFinalizerEntry()
1234 void AddCXXStermFinalizerToGlobalDtor(llvm::Function *StermFinalizer, in AddCXXStermFinalizerToGlobalDtor()
1239 void AddCXXPrioritizedStermFinalizerEntry(llvm::Function *StermFinalizer, in AddCXXPrioritizedStermFinalizerEntry()
1250 llvm::FunctionCallee
1251 CreateRuntimeFunction(llvm::FunctionType *Ty, StringRef Name,
1252 llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
1256 llvm::Constant *CreateRuntimeVariable(llvm::Type *Ty,
1262 llvm::Constant *getNSConcreteGlobalBlock();
1263 llvm::Constant *getNSConcreteStackBlock();
1264 llvm::FunctionCallee getBlockObjectAssign();
1265 llvm::FunctionCallee getBlockObjectDispose();
1269 llvm::Function *getLLVMLifetimeStartFn();
1270 llvm::Function *getLLVMLifetimeEndFn();
1275 llvm::Constant *getMemberPointerConstant(const UnaryOperator *e);
1285 llvm::Constant *EmitNullConstant(QualType T);
1289 llvm::Constant *EmitNullConstantForBase(const CXXRecordDecl *Record);
1303 void SetInternalFunctionAttributes(GlobalDecl GD, llvm::Function *F,
1308 llvm::Function *F, bool IsThunk);
1312 void SetLLVMFunctionAttributesForDefinition(const Decl *D, llvm::Function *F);
1316 void setLLVMFunctionFEnvAttributes(const FunctionDecl *D, llvm::Function *F);
1346 llvm::AttributeList &Attrs, unsigned &CallingConv,
1353 llvm::AttributeList &Attrs);
1357 void addDefaultFunctionDefinitionAttributes(llvm::AttrBuilder &attrs);
1381 llvm::GlobalVariable::LinkageTypes getFunctionLinkage(GlobalDecl GD);
1383 void setFunctionLinkage(GlobalDecl GD, llvm::Function *F) { in setFunctionLinkage()
1389 llvm::GlobalVariable::LinkageTypes getVTableLinkage(const CXXRecordDecl *RD);
1392 CharUnits GetTargetTypeStoreSize(llvm::Type *Ty) const;
1395 llvm::GlobalValue::LinkageTypes
1399 llvm::GlobalValue::LinkageTypes
1406 llvm::Constant *EmitAnnotationString(StringRef Str);
1409 llvm::Constant *EmitAnnotationUnit(SourceLocation Loc);
1412 llvm::Constant *EmitAnnotationLineNo(SourceLocation L);
1415 llvm::Constant *EmitAnnotationArgs(const AnnotateAttr *Attr);
1424 llvm::Constant *EmitAnnotateAttr(llvm::GlobalValue *GV,
1430 void AddGlobalAnnotations(const ValueDecl *D, llvm::GlobalValue *GV);
1432 bool isInNoSanitizeList(SanitizerMask Kind, llvm::Function *Fn,
1435 bool isInNoSanitizeList(SanitizerMask Kind, llvm::GlobalVariable *GV,
1442 bool imbueXRayAttrs(llvm::Function *Fn, SourceLocation Loc,
1448 isFunctionBlockedByProfileList(llvm::Function *Fn, SourceLocation Loc) const;
1453 isFunctionBlockedFromProfileInstr(llvm::Function *Fn,
1470 llvm::GlobalValue *GetGlobalValue(StringRef Ref);
1476 void SetCommonAttributes(GlobalDecl GD, llvm::GlobalValue *GV);
1478 void addReplacement(StringRef Name, llvm::Constant *C);
1480 void addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C);
1521 llvm::GlobalObject::VCallVisibility
1523 llvm::DenseSet<const CXXRecordDecl *> &Visited);
1527 llvm::GlobalVariable *VTable,
1530 llvm::Type *getVTableComponentType() const;
1533 llvm::ConstantInt *CreateCrossDsoCfiTypeId(llvm::Metadata *MD);
1536 llvm::ConstantInt *CreateKCFITypeId(QualType T);
1541 llvm::Metadata *CreateMetadataIdentifierForType(QualType T);
1545 llvm::Metadata *CreateMetadataIdentifierForVirtualMemPtrType(QualType T);
1550 llvm::Metadata *CreateMetadataIdentifierGeneralized(QualType T);
1554 llvm::Function *F);
1557 void setKCFIType(const FunctionDecl *FD, llvm::Function *F);
1571 void AddVTableTypeMetadata(llvm::GlobalVariable *VTable, CharUnits Offset,
1583 llvm::FunctionCallee getTerminateFn();
1585 llvm::SanitizerStatReport &getSanStats();
1587 llvm::Value *
1600 void GenKernelArgMetadata(llvm::Function *FN,
1607 llvm::Constant *getNullPointer(llvm::PointerType *T, QualType QT);
1623 void printPostfixForExternalizedDecl(llvm::raw_ostream &OS,
1634 void handleCUDALaunchBoundsAttr(llvm::Function *F,
1646 llvm::Function *F, const AMDGPUFlatWorkGroupSizeAttr *A,
1651 void handleAMDGPUWavesPerEUAttr(llvm::Function *F,
1654 llvm::Constant *
1655 GetOrCreateLLVMGlobal(StringRef MangledName, llvm::Type *Ty, LangAS AddrSpace,
1660 void AddGlobalCtor(llvm::Function *Ctor, int Priority = 65535,
1662 llvm::Constant *AssociatedData = nullptr);
1663 void AddGlobalDtor(llvm::Function *Dtor, int Priority = 65535,
1680 bool shouldDropDLLAttribute(const Decl *D, const llvm::GlobalValue *GV) const;
1682 llvm::Constant *GetOrCreateLLVMFunction(
1683 StringRef MangledName, llvm::Type *Ty, GlobalDecl D, bool ForVTable,
1685 llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
1696 llvm::Constant *GetOrCreateMultiVersionResolver(GlobalDecl GD);
1707 llvm::AttrBuilder &AttrBuilder,
1709 void setNonAliasAttributes(GlobalDecl GD, llvm::GlobalObject *GO);
1712 void SetFunctionAttributes(GlobalDecl GD, llvm::Function *F,
1715 void EmitGlobalDefinition(GlobalDecl D, llvm::GlobalValue *GV = nullptr);
1717 void EmitGlobalFunctionDefinition(GlobalDecl GD, llvm::GlobalValue *GV);
1718 void EmitMultiVersionFunctionDefinition(GlobalDecl GD, llvm::GlobalValue *GV);
1750 llvm::GlobalVariable *Addr,
1753 void EmitPointerToInitFunc(const VarDecl *VD, llvm::GlobalVariable *Addr,
1754 llvm::Function *InitFunc, InitSegAttr *ISA);
1778 std::map<int, llvm::TinyPtrVector<llvm::Function *>> DtorsUsingAtExit;
1815 bool CheckAndReplaceExternCIFuncs(llvm::GlobalValue *Elem,
1816 llvm::GlobalValue *CppFunc);
1859 llvm::AttrBuilder &FuncAttrs);
1866 llvm::AttrBuilder &FuncAttrs);
1868 llvm::Metadata *CreateMetadataIdentifierImpl(QualType T, MetadataTypeMap &Map,