Lines Matching refs:llvm

40 namespace llvm {
126 llvm::FunctionCallee objc_alloc;
129 llvm::FunctionCallee objc_allocWithZone;
132 llvm::FunctionCallee objc_alloc_init;
135 llvm::FunctionCallee objc_autoreleasePoolPop;
139 llvm::FunctionCallee objc_autoreleasePoolPopInvoke;
142 llvm::Function *objc_autoreleasePoolPush;
145 llvm::Function *objc_autorelease;
149 llvm::FunctionCallee objc_autoreleaseRuntimeFunction;
152 llvm::Function *objc_autoreleaseReturnValue;
155 llvm::Function *objc_copyWeak;
158 llvm::Function *objc_destroyWeak;
161 llvm::Function *objc_initWeak;
164 llvm::Function *objc_loadWeak;
167 llvm::Function *objc_loadWeakRetained;
170 llvm::Function *objc_moveWeak;
173 llvm::Function *objc_retain;
177 llvm::FunctionCallee objc_retainRuntimeFunction;
180 llvm::Function *objc_retainAutorelease;
183 llvm::Function *objc_retainAutoreleaseReturnValue;
186 llvm::Function *objc_retainAutoreleasedReturnValue;
189 llvm::Function *objc_retainBlock;
192 llvm::Function *objc_release;
196 llvm::FunctionCallee objc_releaseRuntimeFunction;
199 llvm::Function *objc_storeStrong;
202 llvm::Function *objc_storeWeak;
205 llvm::Function *objc_unsafeClaimAutoreleasedReturnValue;
209 llvm::InlineAsm *retainAutoreleasedReturnValueMarker;
212 llvm::Function *clang_arc_use;
215 llvm::Function *clang_arc_noop_use;
252 class BlockByrefHelpers : public llvm::FoldingSetNode {
256 llvm::Constant *CopyHelper;
257 llvm::Constant *DisposeHelper;
269 void Profile(llvm::FoldingSetNodeID &id) const { in Profile()
273 virtual void profileImpl(llvm::FoldingSetNodeID &id) const = 0;
291 Structor(int Priority, llvm::Constant *Initializer, in Structor()
292 llvm::Constant *AssociatedData) in Structor()
296 llvm::Constant *Initializer;
297 llvm::Constant *AssociatedData;
309 llvm::Module &TheModule;
313 llvm::LLVMContext &VMContext;
334 llvm::MDNode *NoObjCARCExceptionsMetadata = nullptr;
335 std::unique_ptr<llvm::IndexedInstrProfReader> PGOReader;
337 std::unique_ptr<llvm::SanitizerStatReport> SanStats;
342 llvm::SmallPtrSet<llvm::GlobalValue*, 10> WeakRefReferences;
365 typedef llvm::StringMap<llvm::TrackingVH<llvm::Constant> > ReplacementsTy;
371 llvm::SmallVector<std::pair<llvm::GlobalValue *, llvm::Constant *>, 8>
376 llvm::DenseMap<const VarDecl*, llvm::GlobalVariable*> InitializerConstants;
381 llvm::DenseSet<GlobalDecl> DiagnosedConflictingDefinitions;
392 std::vector<llvm::WeakTrackingVH> LLVMUsed;
393 std::vector<llvm::WeakTrackingVH> LLVMCompilerUsed;
404 llvm::MapVector<GlobalDecl, StringRef> MangledDeclNames;
405 llvm::StringMap<GlobalDecl, llvm::BumpPtrAllocator> Manglings;
409 llvm::MapVector<std::pair<GlobalDecl, unsigned>, StringRef>
411 llvm::StringMap<std::pair<GlobalDecl, unsigned>, llvm::BumpPtrAllocator>
415 std::vector<llvm::Constant*> Annotations;
418 llvm::StringMap<llvm::Constant*> AnnotationStrings;
421 llvm::DenseMap<unsigned, llvm::Constant *> AnnotationArgs;
423 llvm::StringMap<llvm::GlobalVariable *> CFConstantStringMap;
425 llvm::DenseMap<llvm::Constant *, llvm::GlobalVariable *> ConstantStringMap;
426 llvm::DenseMap<const Decl*, llvm::Constant *> StaticLocalDeclMap;
427 llvm::DenseMap<const Decl*, llvm::GlobalVariable*> StaticLocalDeclGuardMap;
428 llvm::DenseMap<const Expr*, llvm::Constant *> MaterializedGlobalTemporaryMap;
430 llvm::DenseMap<QualType, llvm::Constant *> AtomicSetterHelperFnMap;
431 llvm::DenseMap<QualType, llvm::Constant *> AtomicGetterHelperFnMap;
434 llvm::DenseMap<QualType, llvm::Constant *> TypeDescriptorMap;
438 typedef llvm::MapVector<IdentifierInfo *,
439 llvm::GlobalValue *> StaticExternCMap;
447 std::vector<llvm::Function *> CXXThreadLocalInits;
451 std::vector<llvm::Function *> CXXGlobalInits;
458 llvm::DenseMap<const Decl*, unsigned> DelayedCXXInitPosition;
460 typedef std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>
477 typedef std::tuple<llvm::FunctionType *, llvm::WeakTrackingVH,
478 llvm::Constant *>
483 typedef std::pair<OrderGlobalInitsOrStermFinalizers, llvm::Function *>
498 llvm::SetVector<clang::Module *> ImportedModules;
502 llvm::SmallPtrSet<clang::Module *, 16> EmittedModuleInitializers;
505 SmallVector<llvm::MDNode *, 16> LinkerOptionsMetadata;
508 SmallVector<llvm::MDNode *, 16> ELFDependentLibraries;
515 llvm::WeakTrackingVH CFConstantStringClassRef;
534 llvm::DenseMap<const CompoundLiteralExpr *, llvm::GlobalVariable *>
539 llvm::DenseMap<const BlockExpr *, llvm::Constant *> EmittedGlobalBlocks;
544 llvm::Constant *NSConcreteGlobalBlock = nullptr;
545 llvm::Constant *NSConcreteStackBlock = nullptr;
547 llvm::FunctionCallee BlockObjectAssign = nullptr;
548 llvm::FunctionCallee BlockObjectDispose = nullptr;
550 llvm::Type *BlockDescriptorType = nullptr;
551 llvm::Type *GenericBlockLiteralType = nullptr;
562 llvm::Function *LifetimeStartFn = nullptr;
565 llvm::Function *LifetimeEndFn = nullptr;
569 llvm::MapVector<const Decl *, bool> DeferredEmptyCoverageMappingDecls;
576 typedef llvm::DenseMap<QualType, llvm::Metadata *> MetadataTypeMap;
584 const CodeGenOptions &CodeGenOpts, llvm::Module &M,
634 llvm::FunctionCallee IsOSVersionAtLeastFn = nullptr;
636 llvm::FunctionCallee IsPlatformVersionAtLeastFn = nullptr;
639 llvm::IndexedInstrProfReader *getPGOReader() const { return PGOReader.get(); } in getPGOReader()
645 llvm::Constant *getStaticLocalDeclAddress(const VarDecl *D) { in getStaticLocalDeclAddress()
649 llvm::Constant *C) { in setStaticLocalDeclAddress()
653 llvm::Constant *
655 llvm::GlobalValue::LinkageTypes Linkage);
657 llvm::GlobalVariable *getStaticLocalDeclGuardAddress(const VarDecl *D) { in getStaticLocalDeclGuardAddress()
661 llvm::GlobalVariable *C) { in setStaticLocalDeclGuardAddress()
665 Address createUnnamedGlobalFrom(const VarDecl &D, llvm::Constant *Constant,
671 llvm::Constant *getAtomicSetterHelperFnMap(QualType Ty) { in getAtomicSetterHelperFnMap()
675 llvm::Constant *Fn) { in setAtomicSetterHelperFnMap()
679 llvm::Constant *getAtomicGetterHelperFnMap(QualType Ty) { in getAtomicGetterHelperFnMap()
683 llvm::Constant *Fn) { in setAtomicGetterHelperFnMap()
687 llvm::Constant *getTypeDescriptorFromMap(QualType Ty) { in getTypeDescriptorFromMap()
690 void setTypeDescriptorInMap(QualType Ty, llvm::Constant *C) { in setTypeDescriptorInMap()
696 llvm::MDNode *getNoObjCARCExceptionsMetadata() { in getNoObjCARCExceptionsMetadata()
698 NoObjCARCExceptionsMetadata = llvm::MDNode::get(getLLVMContext(), None); in getNoObjCARCExceptionsMetadata()
709 llvm::Module &getModule() const { return TheModule; } in getModule()
711 const llvm::DataLayout &getDataLayout() const { in getDataLayout()
715 const llvm::Triple &getTriple() const { return Target.getTriple(); } in getTriple()
717 void maybeSetTrivialComdat(const Decl &D, llvm::GlobalObject &GO);
720 llvm::LLVMContext &getLLVMContext() { return VMContext; } in getLLVMContext()
743 llvm::MDNode *getTBAATypeInfo(QualType QTy);
751 TBAAAccessInfo getTBAAVTablePtrAccessInfo(llvm::Type *VTablePtrType);
753 llvm::MDNode *getTBAAStructInfo(QualType QTy);
757 llvm::MDNode *getTBAABaseTypeInfo(QualType QTy);
760 llvm::MDNode *getTBAAAccessTagInfo(TBAAAccessInfo Info);
791 void DecorateInstructionWithTBAA(llvm::Instruction *Inst,
795 void DecorateInstructionWithInvariantGroup(llvm::Instruction *I,
799 llvm::ConstantInt *getSize(CharUnits numChars);
802 void setGlobalVisibility(llvm::GlobalValue *GV, const NamedDecl *D) const;
804 void setDSOLocal(llvm::GlobalValue *GV) const;
806 void setDLLImportDLLExport(llvm::GlobalValue *GV, GlobalDecl D) const;
807 void setDLLImportDLLExport(llvm::GlobalValue *GV, const NamedDecl *D) const;
810 void setGVProperties(llvm::GlobalValue *GV, GlobalDecl GD) const;
811 void setGVProperties(llvm::GlobalValue *GV, const NamedDecl *D) const;
813 void setGVPropertiesAux(llvm::GlobalValue *GV, const NamedDecl *D) const;
817 void setTLSMode(llvm::GlobalValue *GV, const VarDecl &D) const;
820 llvm::GlobalVariable::ThreadLocalMode GetDefaultLLVMTLSModel() const;
822 static llvm::GlobalValue::VisibilityTypes GetLLVMVisibility(Visibility V) { in GetLLVMVisibility()
824 case DefaultVisibility: return llvm::GlobalValue::DefaultVisibility; in GetLLVMVisibility()
825 case HiddenVisibility: return llvm::GlobalValue::HiddenVisibility; in GetLLVMVisibility()
826 case ProtectedVisibility: return llvm::GlobalValue::ProtectedVisibility; in GetLLVMVisibility()
831 llvm::Constant *GetAddrOfGlobal(GlobalDecl GD,
839 llvm::GlobalVariable *
840 CreateOrReplaceCXXRuntimeVariable(StringRef Name, llvm::Type *Ty,
841 llvm::GlobalValue::LinkageTypes Linkage,
844 llvm::Function *CreateGlobalInitOrCleanUpFunction(
845 llvm::FunctionType *ty, const Twine &name, const CGFunctionInfo &FI,
871 llvm::Constant *GetAddrOfGlobalVar(const VarDecl *D,
872 llvm::Type *Ty = nullptr,
878 llvm::Constant *GetAddrOfFunction(GlobalDecl GD, llvm::Type *Ty = nullptr,
885 llvm::Constant *GetAddrOfRTTIDescriptor(QualType Ty, bool ForEH = false);
895 llvm::Constant *GetAddrOfThunk(StringRef Name, llvm::Type *FnTy,
934 llvm::Constant *
939 llvm::FoldingSet<BlockByrefHelpers> ByrefHelpersCache;
945 llvm::Type *getBlockDescriptorType();
948 llvm::Type *getGenericBlockLiteralType();
951 llvm::Constant *GetAddrOfGlobalBlock(const BlockExpr *BE, StringRef Name);
955 llvm::Constant *getAddrOfGlobalBlockIfEmitted(const BlockExpr *BE) { in getAddrOfGlobalBlockIfEmitted()
961 void setAddrOfGlobalBlock(const BlockExpr *BE, llvm::Constant *Addr);
972 llvm::Constant *GetConstantArrayFromStringLiteral(const StringLiteral *E);
998 llvm::GlobalVariable *
1004 llvm::GlobalVariable *GV);
1018 llvm::Function *codegenCXXStructor(GlobalDecl GD);
1021 llvm::Constant *
1023 llvm::FunctionType *FnType = nullptr,
1026 return cast<llvm::Constant>(getAddrAndTypeOfCXXStructor(GD, FnInfo, FnType,
1032 llvm::FunctionCallee getAddrAndTypeOfCXXStructor(
1034 llvm::FunctionType *FnType = nullptr, bool DontDefer = false,
1039 llvm::Constant *getBuiltinLibFunction(const FunctionDecl *FD,
1042 llvm::Function *getIntrinsic(unsigned IID, ArrayRef<llvm::Type*> Tys = None);
1069 void MaybeHandleStaticInExternC(const SomeDecl *D, llvm::GlobalValue *GV);
1072 void addUsedGlobal(llvm::GlobalValue *GV);
1075 void addCompilerUsedGlobal(llvm::GlobalValue *GV);
1078 void addUsedOrCompilerUsedGlobal(llvm::GlobalValue *GV);
1081 void AddCXXDtorEntry(llvm::FunctionCallee DtorFn, llvm::Constant *Object) { in AddCXXDtorEntry()
1087 void AddCXXStermFinalizerEntry(llvm::FunctionCallee DtorFn) { in AddCXXStermFinalizerEntry()
1093 void AddCXXStermFinalizerToGlobalDtor(llvm::Function *StermFinalizer, in AddCXXStermFinalizerToGlobalDtor()
1098 void AddCXXPrioritizedStermFinalizerEntry(llvm::Function *StermFinalizer, in AddCXXPrioritizedStermFinalizerEntry()
1109 llvm::FunctionCallee
1110 CreateRuntimeFunction(llvm::FunctionType *Ty, StringRef Name,
1111 llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
1115 llvm::Constant *CreateRuntimeVariable(llvm::Type *Ty,
1121 llvm::Constant *getNSConcreteGlobalBlock();
1122 llvm::Constant *getNSConcreteStackBlock();
1123 llvm::FunctionCallee getBlockObjectAssign();
1124 llvm::FunctionCallee getBlockObjectDispose();
1128 llvm::Function *getLLVMLifetimeStartFn();
1129 llvm::Function *getLLVMLifetimeEndFn();
1134 llvm::Constant *getMemberPointerConstant(const UnaryOperator *e);
1144 llvm::Constant *EmitNullConstant(QualType T);
1148 llvm::Constant *EmitNullConstantForBase(const CXXRecordDecl *Record);
1162 void SetInternalFunctionAttributes(GlobalDecl GD, llvm::Function *F,
1167 llvm::Function *F, bool IsThunk);
1171 void SetLLVMFunctionAttributesForDefinition(const Decl *D, llvm::Function *F);
1175 void setLLVMFunctionFEnvAttributes(const FunctionDecl *D, llvm::Function *F);
1202 llvm::AttributeList &Attrs, unsigned &CallingConv,
1222 void addDefaultFunctionDefinitionAttributes(llvm::Function &F);
1226 void addDefaultFunctionDefinitionAttributes(llvm::AttrBuilder &attrs);
1249 llvm::GlobalVariable::LinkageTypes getFunctionLinkage(GlobalDecl GD);
1251 void setFunctionLinkage(GlobalDecl GD, llvm::Function *F) { in setFunctionLinkage()
1257 llvm::GlobalVariable::LinkageTypes getVTableLinkage(const CXXRecordDecl *RD);
1260 CharUnits GetTargetTypeStoreSize(llvm::Type *Ty) const;
1263 llvm::GlobalValue::LinkageTypes
1268 llvm::GlobalValue::LinkageTypes
1275 llvm::Constant *EmitAnnotationString(StringRef Str);
1278 llvm::Constant *EmitAnnotationUnit(SourceLocation Loc);
1281 llvm::Constant *EmitAnnotationLineNo(SourceLocation L);
1284 llvm::Constant *EmitAnnotationArgs(const AnnotateAttr *Attr);
1293 llvm::Constant *EmitAnnotateAttr(llvm::GlobalValue *GV,
1299 void AddGlobalAnnotations(const ValueDecl *D, llvm::GlobalValue *GV);
1301 bool isInNoSanitizeList(SanitizerMask Kind, llvm::Function *Fn,
1304 bool isInNoSanitizeList(llvm::GlobalVariable *GV, SourceLocation Loc,
1310 bool imbueXRayAttrs(llvm::Function *Fn, SourceLocation Loc,
1315 bool isProfileInstrExcluded(llvm::Function *Fn, SourceLocation Loc) const;
1331 llvm::GlobalValue *GetGlobalValue(StringRef Ref);
1337 void SetCommonAttributes(GlobalDecl GD, llvm::GlobalValue *GV);
1339 void addReplacement(StringRef Name, llvm::Constant *C);
1341 void addGlobalValReplacement(llvm::GlobalValue *GV, llvm::Constant *C);
1379 llvm::GlobalObject::VCallVisibility
1381 llvm::DenseSet<const CXXRecordDecl *> &Visited);
1385 llvm::GlobalVariable *VTable,
1389 llvm::ConstantInt *CreateCrossDsoCfiTypeId(llvm::Metadata *MD);
1394 llvm::Metadata *CreateMetadataIdentifierForType(QualType T);
1398 llvm::Metadata *CreateMetadataIdentifierForVirtualMemPtrType(QualType T);
1403 llvm::Metadata *CreateMetadataIdentifierGeneralized(QualType T);
1407 llvm::Function *F);
1417 void AddVTableTypeMetadata(llvm::GlobalVariable *VTable, CharUnits Offset,
1429 llvm::FunctionCallee getTerminateFn();
1431 llvm::SanitizerStatReport &getSanStats();
1433 llvm::Value *
1446 void GenOpenCLArgMetadata(llvm::Function *FN,
1453 llvm::Constant *getNullPointer(llvm::PointerType *T, QualType QT);
1466 void printPostfixForExternalizedStaticVar(llvm::raw_ostream &OS) const;
1469 llvm::Constant *GetOrCreateLLVMFunction(
1470 StringRef MangledName, llvm::Type *Ty, GlobalDecl D, bool ForVTable,
1472 llvm::AttributeList ExtraAttrs = llvm::AttributeList(),
1475 llvm::Constant *GetOrCreateMultiVersionResolver(GlobalDecl GD,
1476 llvm::Type *DeclTy,
1480 llvm::Constant *
1481 GetOrCreateLLVMGlobal(StringRef MangledName, llvm::Type *Ty,
1486 llvm::AttrBuilder &AttrBuilder);
1487 void setNonAliasAttributes(GlobalDecl GD, llvm::GlobalObject *GO);
1490 void SetFunctionAttributes(GlobalDecl GD, llvm::Function *F,
1493 void EmitGlobalDefinition(GlobalDecl D, llvm::GlobalValue *GV = nullptr);
1495 void EmitGlobalFunctionDefinition(GlobalDecl GD, llvm::GlobalValue *GV);
1496 void EmitMultiVersionFunctionDefinition(GlobalDecl GD, llvm::GlobalValue *GV);
1523 llvm::GlobalVariable *Addr,
1526 void EmitPointerToInitFunc(const VarDecl *VD, llvm::GlobalVariable *Addr,
1527 llvm::Function *InitFunc, InitSegAttr *ISA);
1530 void AddGlobalCtor(llvm::Function *Ctor, int Priority = 65535,
1531 llvm::Constant *AssociatedData = nullptr);
1532 void AddGlobalDtor(llvm::Function *Dtor, int Priority = 65535,
1557 std::map<int, llvm::TinyPtrVector<llvm::Function *>> DtorsUsingAtExit;
1625 llvm::AttrBuilder &FuncAttrs);
1627 llvm::Metadata *CreateMetadataIdentifierImpl(QualType T, MetadataTypeMap &Map,