Lines Matching refs:llvm

40 namespace llvm {
121 llvm::FunctionCallee objc_alloc;
124 llvm::FunctionCallee objc_allocWithZone;
127 llvm::FunctionCallee objc_alloc_init;
130 llvm::FunctionCallee objc_autoreleasePoolPop;
134 llvm::FunctionCallee objc_autoreleasePoolPopInvoke;
137 llvm::Function *objc_autoreleasePoolPush;
140 llvm::Function *objc_autorelease;
144 llvm::FunctionCallee objc_autoreleaseRuntimeFunction;
147 llvm::Function *objc_autoreleaseReturnValue;
150 llvm::Function *objc_copyWeak;
153 llvm::Function *objc_destroyWeak;
156 llvm::Function *objc_initWeak;
159 llvm::Function *objc_loadWeak;
162 llvm::Function *objc_loadWeakRetained;
165 llvm::Function *objc_moveWeak;
168 llvm::Function *objc_retain;
172 llvm::FunctionCallee objc_retainRuntimeFunction;
175 llvm::Function *objc_retainAutorelease;
178 llvm::Function *objc_retainAutoreleaseReturnValue;
181 llvm::Function *objc_retainAutoreleasedReturnValue;
184 llvm::Function *objc_retainBlock;
187 llvm::Function *objc_release;
191 llvm::FunctionCallee objc_releaseRuntimeFunction;
194 llvm::Function *objc_storeStrong;
197 llvm::Function *objc_storeWeak;
200 llvm::Function *objc_unsafeClaimAutoreleasedReturnValue;
204 llvm::InlineAsm *retainAutoreleasedReturnValueMarker;
207 llvm::Function *clang_arc_use;
210 llvm::Function *clang_arc_noop_use;
247 class BlockByrefHelpers : public llvm::FoldingSetNode {
251 llvm::Constant *CopyHelper;
252 llvm::Constant *DisposeHelper;
264 void Profile(llvm::FoldingSetNodeID &id) const { in Profile()
268 virtual void profileImpl(llvm::FoldingSetNodeID &id) const = 0;
286 Structor(int Priority, llvm::Constant *Initializer, in Structor()
287 llvm::Constant *AssociatedData) in Structor()
291 llvm::Constant *Initializer;
292 llvm::Constant *AssociatedData;
300 IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS; // Only used for debug info.
305 llvm::Module &TheModule;
309 llvm::LLVMContext &VMContext;
331 llvm::MDNode *NoObjCARCExceptionsMetadata = nullptr;
332 std::unique_ptr<llvm::IndexedInstrProfReader> PGOReader;
334 std::unique_ptr<llvm::SanitizerStatReport> SanStats;
339 llvm::SmallPtrSet<llvm::GlobalValue*, 10> WeakRefReferences;
345 llvm::DenseMap<StringRef, GlobalDecl> DeferredDecls;
356 llvm::DenseMap<llvm::StringRef, GlobalDecl> EmittedDeferredDecls;
359 if (!llvm::isa<FunctionDecl>(GD.getDecl())) in addEmittedDeferredDecl()
361 llvm::GlobalVariable::LinkageTypes L = getFunctionLinkage(GD); in addEmittedDeferredDecl()
362 if (llvm::GlobalValue::isLinkOnceLinkage(L) || in addEmittedDeferredDecl()
363 llvm::GlobalValue::isWeakLinkage(L)) { in addEmittedDeferredDecl()
377 typedef llvm::StringMap<llvm::TrackingVH<llvm::Constant> > ReplacementsTy;
383 llvm::SmallVector<std::pair<llvm::GlobalValue *, llvm::Constant *>, 8>
388 llvm::DenseMap<const VarDecl*, llvm::GlobalVariable*> InitializerConstants;
393 llvm::DenseSet<GlobalDecl> DiagnosedConflictingDefinitions;
404 std::vector<llvm::WeakTrackingVH> LLVMUsed;
405 std::vector<llvm::WeakTrackingVH> LLVMCompilerUsed;
416 llvm::MapVector<GlobalDecl, StringRef> MangledDeclNames;
417 llvm::StringMap<GlobalDecl, llvm::BumpPtrAllocator> Manglings;
420 std::vector<llvm::Constant*> Annotations;
423 llvm::StringMap<llvm::Constant*> AnnotationStrings;
426 llvm::DenseMap<unsigned, llvm::Constant *> AnnotationArgs;
428 llvm::StringMap<llvm::GlobalVariable *> CFConstantStringMap;
430 llvm::DenseMap<llvm::Constant *, llvm::GlobalVariable *> ConstantStringMap;
431 llvm::DenseMap<const UnnamedGlobalConstantDecl *, llvm::GlobalVariable *>
433 llvm::DenseMap<const Decl*, llvm::Constant *> StaticLocalDeclMap;
434 llvm::DenseMap<const Decl*, llvm::GlobalVariable*> StaticLocalDeclGuardMap;
435 llvm::DenseMap<const Expr*, llvm::Constant *> MaterializedGlobalTemporaryMap;
437 llvm::DenseMap<QualType, llvm::Constant *> AtomicSetterHelperFnMap;
438 llvm::DenseMap<QualType, llvm::Constant *> AtomicGetterHelperFnMap;
441 llvm::DenseMap<QualType, llvm::Constant *> TypeDescriptorMap;
445 typedef llvm::MapVector<IdentifierInfo *,
446 llvm::GlobalValue *> StaticExternCMap;
454 std::vector<llvm::Function *> CXXThreadLocalInits;
458 std::vector<llvm::Function *> CXXGlobalInits;
465 llvm::DenseMap<const Decl*, unsigned> DelayedCXXInitPosition;
467 typedef std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>
484 typedef std::tuple<llvm::FunctionType *, llvm::WeakTrackingVH,
485 llvm::Constant *>
490 typedef std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>
505 llvm::SetVector<clang::Module *> ImportedModules;
509 llvm::SmallPtrSet<clang::Module *, 16> EmittedModuleInitializers;
512 SmallVector<llvm::MDNode *, 16> LinkerOptionsMetadata;
515 SmallVector<llvm::MDNode *, 16> ELFDependentLibraries;
522 llvm::WeakTrackingVH CFConstantStringClassRef;
542 llvm::DenseMap<const CompoundLiteralExpr *, llvm::GlobalVariable *>
547 llvm::DenseMap<const BlockExpr *, llvm::Constant *> EmittedGlobalBlocks;
552 llvm::Constant *NSConcreteGlobalBlock = nullptr;
553 llvm::Constant *NSConcreteStackBlock = nullptr;
555 llvm::FunctionCallee BlockObjectAssign = nullptr;
556 llvm::FunctionCallee BlockObjectDispose = nullptr;
558 llvm::Type *BlockDescriptorType = nullptr;
559 llvm::Type *GenericBlockLiteralType = nullptr;
570 llvm::Function *LifetimeStartFn = nullptr;
573 llvm::Function *LifetimeEndFn = nullptr;
577 llvm::MapVector<const Decl *, bool> DeferredEmptyCoverageMappingDecls;
584 typedef llvm::DenseMap<QualType, llvm::Metadata *> MetadataTypeMap;
589 llvm::DenseMap<const llvm::Constant *, llvm::GlobalVariable *> RTTIProxyMap;
592 CodeGenModule(ASTContext &C, IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS,
595 const CodeGenOptions &CodeGenOpts, llvm::Module &M,
651 llvm::FunctionCallee IsOSVersionAtLeastFn = nullptr;
653 llvm::FunctionCallee IsPlatformVersionAtLeastFn = nullptr;
656 llvm::IndexedInstrProfReader *getPGOReader() const { return PGOReader.get(); } in getPGOReader()
662 llvm::Constant *getStaticLocalDeclAddress(const VarDecl *D) { in getStaticLocalDeclAddress()
666 llvm::Constant *C) { in setStaticLocalDeclAddress()
670 llvm::Constant *
672 llvm::GlobalValue::LinkageTypes Linkage);
674 llvm::GlobalVariable *getStaticLocalDeclGuardAddress(const VarDecl *D) { in getStaticLocalDeclGuardAddress()
678 llvm::GlobalVariable *C) { in setStaticLocalDeclGuardAddress()
682 Address createUnnamedGlobalFrom(const VarDecl &D, llvm::Constant *Constant,
688 llvm::Constant *getAtomicSetterHelperFnMap(QualType Ty) { in getAtomicSetterHelperFnMap()
692 llvm::Constant *Fn) { in setAtomicSetterHelperFnMap()
696 llvm::Constant *getAtomicGetterHelperFnMap(QualType Ty) { in getAtomicGetterHelperFnMap()
700 llvm::Constant *Fn) { in setAtomicGetterHelperFnMap()
704 llvm::Constant *getTypeDescriptorFromMap(QualType Ty) { in getTypeDescriptorFromMap()
707 void setTypeDescriptorInMap(QualType Ty, llvm::Constant *C) { in setTypeDescriptorInMap()
713 llvm::MDNode *getNoObjCARCExceptionsMetadata() { in getNoObjCARCExceptionsMetadata()
715 NoObjCARCExceptionsMetadata = llvm::MDNode::get(getLLVMContext(), None); in getNoObjCARCExceptionsMetadata()
721 const IntrusiveRefCntPtr<llvm::vfs::FileSystem> &getFileSystem() const { in getFileSystem()
729 llvm::Module &getModule() const { return TheModule; } in getModule()
731 const llvm::DataLayout &getDataLayout() const { in getDataLayout()
735 const llvm::Triple &getTriple() const { return Target.getTriple(); } in getTriple()
737 void maybeSetTrivialComdat(const Decl &D, llvm::GlobalObject &GO);
740 llvm::LLVMContext &getLLVMContext() { return VMContext; } in getLLVMContext()
763 llvm::MDNode *getTBAATypeInfo(QualType QTy);
771 TBAAAccessInfo getTBAAVTablePtrAccessInfo(llvm::Type *VTablePtrType);
773 llvm::MDNode *getTBAAStructInfo(QualType QTy);
777 llvm::MDNode *getTBAABaseTypeInfo(QualType QTy);
780 llvm::MDNode *getTBAAAccessTagInfo(TBAAAccessInfo Info);
811 void DecorateInstructionWithTBAA(llvm::Instruction *Inst,
815 void DecorateInstructionWithInvariantGroup(llvm::Instruction *I,
819 llvm::ConstantInt *getSize(CharUnits numChars);
822 void setGlobalVisibility(llvm::GlobalValue *GV, const NamedDecl *D) const;
824 void setDSOLocal(llvm::GlobalValue *GV) const;
834 void setDLLImportDLLExport(llvm::GlobalValue *GV, GlobalDecl D) const;
835 void setDLLImportDLLExport(llvm::GlobalValue *GV, const NamedDecl *D) const;
838 void setGVProperties(llvm::GlobalValue *GV, GlobalDecl GD) const;
839 void setGVProperties(llvm::GlobalValue *GV, const NamedDecl *D) const;
841 void setGVPropertiesAux(llvm::GlobalValue *GV, const NamedDecl *D) const;
845 void setTLSMode(llvm::GlobalValue *GV, const VarDecl &D) const;
848 llvm::GlobalVariable::ThreadLocalMode GetDefaultLLVMTLSModel() const;
850 static llvm::GlobalValue::VisibilityTypes GetLLVMVisibility(Visibility V) { in GetLLVMVisibility()
852 case DefaultVisibility: return llvm::GlobalValue::DefaultVisibility; in GetLLVMVisibility()
853 case HiddenVisibility: return llvm::GlobalValue::HiddenVisibility; in GetLLVMVisibility()
854 case ProtectedVisibility: return llvm::GlobalValue::ProtectedVisibility; in GetLLVMVisibility()
859 llvm::Constant *GetAddrOfGlobal(GlobalDecl GD,
867 llvm::GlobalVariable *
868 CreateOrReplaceCXXRuntimeVariable(StringRef Name, llvm::Type *Ty,
869 llvm::GlobalValue::LinkageTypes Linkage,
872 llvm::Function *CreateGlobalInitOrCleanUpFunction(
873 llvm::FunctionType *ty, const Twine &name, const CGFunctionInfo &FI,
875 llvm::GlobalVariable::LinkageTypes Linkage =
876 llvm::GlobalVariable::InternalLinkage);
901 llvm::Constant *GetAddrOfGlobalVar(const VarDecl *D,
902 llvm::Type *Ty = nullptr,
908 llvm::Constant *GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty = nullptr,
915 llvm::Constant *GetFunctionStart(const ValueDecl *Decl);
918 llvm::Constant *GetAddrOfRTTIDescriptor(QualType Ty, bool ForEH = false);
932 llvm::Constant *GetAddrOfThunk(StringRef Name, llvm::Type *FnTy,
971 llvm::Constant *
976 llvm::FoldingSet<BlockByrefHelpers> ByrefHelpersCache;
982 llvm::Type *getBlockDescriptorType();
985 llvm::Type *getGenericBlockLiteralType();
988 llvm::Constant *GetAddrOfGlobalBlock(const BlockExpr *BE, StringRef Name);
992 llvm::Constant *getAddrOfGlobalBlockIfEmitted(const BlockExpr *BE) { in getAddrOfGlobalBlockIfEmitted()
998 void setAddrOfGlobalBlock(const BlockExpr *BE, llvm::Constant *Addr);
1009 llvm::Constant *GetConstantArrayFromStringLiteral(const StringLiteral *E);
1035 llvm::GlobalVariable *
1041 llvm::GlobalVariable *GV);
1055 llvm::Function *codegenCXXStructor(GlobalDecl GD);
1058 llvm::Constant *
1060 llvm::FunctionType *FnType = nullptr,
1063 return cast<llvm::Constant>(getAddrAndTypeOfCXXStructor(GD, FnInfo, FnType,
1069 llvm::FunctionCallee getAddrAndTypeOfCXXStructor(
1071 llvm::FunctionType *FnType = nullptr, bool DontDefer = false,
1076 llvm::Constant *getBuiltinLibFunction(const FunctionDecl *FD,
1079 llvm::Function *getIntrinsic(unsigned IID, ArrayRef<llvm::Type*> Tys = None);
1106 void MaybeHandleStaticInExternC(const SomeDecl *D, llvm::GlobalValue *GV);
1109 void addUsedGlobal(llvm::GlobalValue *GV);
1112 void addCompilerUsedGlobal(llvm::GlobalValue *GV);
1115 void addUsedOrCompilerUsedGlobal(llvm::GlobalValue *GV);
1118 void AddCXXDtorEntry(llvm::FunctionCallee DtorFn, llvm::Constant *Object) { in AddCXXDtorEntry()
1124 void AddCXXStermFinalizerEntry(llvm::FunctionCallee DtorFn) { in AddCXXStermFinalizerEntry()
1130 void AddCXXStermFinalizerToGlobalDtor(llvm::Function *StermFinalizer, in AddCXXStermFinalizerToGlobalDtor()
1135 void AddCXXPrioritizedStermFinalizerEntry(llvm::Function *StermFinalizer, in AddCXXPrioritizedStermFinalizerEntry()
1146 llvm::FunctionCallee
1147 CreateRuntimeFunction(llvm::FunctionType *Ty, StringRef Name,
1148 llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
1152 llvm::Constant *CreateRuntimeVariable(llvm::Type *Ty,
1158 llvm::Constant *getNSConcreteGlobalBlock();
1159 llvm::Constant *getNSConcreteStackBlock();
1160 llvm::FunctionCallee getBlockObjectAssign();
1161 llvm::FunctionCallee getBlockObjectDispose();
1165 llvm::Function *getLLVMLifetimeStartFn();
1166 llvm::Function *getLLVMLifetimeEndFn();
1171 llvm::Constant *getMemberPointerConstant(const UnaryOperator *e);
1181 llvm::Constant *EmitNullConstant(QualType T);
1185 llvm::Constant *EmitNullConstantForBase(const CXXRecordDecl *Record);
1199 void SetInternalFunctionAttributes(GlobalDecl GD, llvm::Function *F,
1204 llvm::Function *F, bool IsThunk);
1208 void SetLLVMFunctionAttributesForDefinition(const Decl *D, llvm::Function *F);
1212 void setLLVMFunctionFEnvAttributes(const FunctionDecl *D, llvm::Function *F);
1239 llvm::AttributeList &Attrs, unsigned &CallingConv,
1259 void addDefaultFunctionDefinitionAttributes(llvm::Function &F);
1263 void addDefaultFunctionDefinitionAttributes(llvm::AttrBuilder &attrs);
1287 llvm::GlobalVariable::LinkageTypes getFunctionLinkage(GlobalDecl GD);
1289 void setFunctionLinkage(GlobalDecl GD, llvm::Function *F) { in setFunctionLinkage()
1295 llvm::GlobalVariable::LinkageTypes getVTableLinkage(const CXXRecordDecl *RD);
1298 CharUnits GetTargetTypeStoreSize(llvm::Type *Ty) const;
1301 llvm::GlobalValue::LinkageTypes
1306 llvm::GlobalValue::LinkageTypes
1313 llvm::Constant *EmitAnnotationString(StringRef Str);
1316 llvm::Constant *EmitAnnotationUnit(SourceLocation Loc);
1319 llvm::Constant *EmitAnnotationLineNo(SourceLocation L);
1322 llvm::Constant *EmitAnnotationArgs(const AnnotateAttr *Attr);
1331 llvm::Constant *EmitAnnotateAttr(llvm::GlobalValue *GV,
1337 void AddGlobalAnnotations(const ValueDecl *D, llvm::GlobalValue *GV);
1339 bool isInNoSanitizeList(SanitizerMask Kind, llvm::Function *Fn,
1342 bool isInNoSanitizeList(SanitizerMask Kind, llvm::GlobalVariable *GV,
1349 bool imbueXRayAttrs(llvm::Function *Fn, SourceLocation Loc,
1354 bool isFunctionBlockedByProfileList(llvm::Function *Fn,
1359 bool isFunctionBlockedFromProfileInstr(llvm::Function *Fn,
1376 llvm::GlobalValue *GetGlobalValue(StringRef Ref);
1382 void SetCommonAttributes(GlobalDecl GD, llvm::GlobalValue *GV);
1384 void addReplacement(StringRef Name, llvm::Constant *C);
1386 void addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C);
1409 llvm::Optional<CharUnits> getOMPAllocateAlignment(const VarDecl *VD);
1427 llvm::GlobalObject::VCallVisibility
1429 llvm::DenseSet<const CXXRecordDecl *> &Visited);
1433 llvm::GlobalVariable *VTable,
1437 llvm::ConstantInt *CreateCrossDsoCfiTypeId(llvm::Metadata *MD);
1442 llvm::Metadata *CreateMetadataIdentifierForType(QualType T);
1446 llvm::Metadata *CreateMetadataIdentifierForVirtualMemPtrType(QualType T);
1451 llvm::Metadata *CreateMetadataIdentifierGeneralized(QualType T);
1455 llvm::Function *F);
1465 void AddVTableTypeMetadata(llvm::GlobalVariable *VTable, CharUnits Offset,
1476 llvm::GlobalVariable *
1477 GetOrCreateRTTIProxyGlobalVariable(llvm::Constant *Addr);
1480 llvm::FunctionCallee getTerminateFn();
1482 llvm::SanitizerStatReport &getSanStats();
1484 llvm::Value *
1497 void GenKernelArgMetadata(llvm::Function *FN,
1504 llvm::Constant *getNullPointer(llvm::PointerType *T, QualType QT);
1520 void printPostfixForExternalizedDecl(llvm::raw_ostream &OS,
1529 llvm::Constant *GetOrCreateLLVMFunction(
1530 StringRef MangledName, llvm::Type *Ty, GlobalDecl D, bool ForVTable,
1532 llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
1540 llvm::Constant *GetOrCreateMultiVersionResolver(GlobalDecl GD);
1550 llvm::Constant *
1551 GetOrCreateLLVMGlobal(StringRef MangledName, llvm::Type *Ty, LangAS AddrSpace,
1556 llvm::AttrBuilder &AttrBuilder);
1557 void setNonAliasAttributes(GlobalDecl GD, llvm::GlobalObject *GO);
1560 void SetFunctionAttributes(GlobalDecl GD, llvm::Function *F,
1563 void EmitGlobalDefinition(GlobalDecl D, llvm::GlobalValue *GV = nullptr);
1565 void EmitGlobalFunctionDefinition(GlobalDecl GD, llvm::GlobalValue *GV);
1566 void EmitMultiVersionFunctionDefinition(GlobalDecl GD, llvm::GlobalValue *GV);
1596 llvm::GlobalVariable *Addr,
1599 void EmitPointerToInitFunc(const VarDecl *VD, llvm::GlobalVariable *Addr,
1600 llvm::Function *InitFunc, InitSegAttr *ISA);
1603 void AddGlobalCtor(llvm::Function *Ctor, int Priority = 65535,
1604 llvm::Constant *AssociatedData = nullptr);
1605 void AddGlobalDtor(llvm::Function *Dtor, int Priority = 65535,
1630 std::map<int, llvm::TinyPtrVector<llvm::Function *>> DtorsUsingAtExit;
1667 bool CheckAndReplaceExternCIFuncs(llvm::GlobalValue *Elem,
1668 llvm::GlobalValue *CppFunc);
1712 llvm::AttrBuilder &FuncAttrs);
1714 llvm::Metadata *CreateMetadataIdentifierImpl(QualType T, MetadataTypeMap &Map,