Lines Matching refs:llvm
34 namespace llvm {
61 llvm::DIBuilder DBuilder;
62 llvm::DICompileUnit *TheCU = nullptr;
66 llvm::MDNode *CurInlinedAt = nullptr;
67 llvm::DIType *VTablePtrType = nullptr;
68 llvm::DIType *ClassTy = nullptr;
69 llvm::DICompositeType *ObjTy = nullptr;
70 llvm::DIType *SelTy = nullptr;
72 llvm::DIType *SingletonId = nullptr;
74 llvm::DIType *OCLSamplerDITy = nullptr;
75 llvm::DIType *OCLEventDITy = nullptr;
76 llvm::DIType *OCLClkEventDITy = nullptr;
77 llvm::DIType *OCLQueueDITy = nullptr;
78 llvm::DIType *OCLNDRangeDITy = nullptr;
79 llvm::DIType *OCLReserveIDDITy = nullptr;
81 llvm::DIType *Id##Ty = nullptr;
85 llvm::DenseMap<const void *, llvm::TrackingMDRef> TypeCache;
87 std::map<llvm::StringRef, llvm::StringRef, std::greater<llvm::StringRef>>
92 llvm::SmallDenseMap<QualType, llvm::Metadata *> SizeExprCache;
108 llvm::DIType *Decl;
109 llvm::DIFile *Unit;
110 ObjCInterfaceCacheEntry(const ObjCInterfaceType *Type, llvm::DIType *Decl, in ObjCInterfaceCacheEntry()
111 llvm::DIFile *Unit) in ObjCInterfaceCacheEntry()
116 llvm::SmallVector<ObjCInterfaceCacheEntry, 32> ObjCInterfaceCache;
121 llvm::DenseMap<const ObjCInterfaceDecl *,
122 std::vector<llvm::PointerIntPair<llvm::DISubprogram *, 1>>>
126 llvm::DenseMap<const Module *, llvm::TrackingMDRef> ModuleCache;
132 std::vector<std::pair<const TagType *, llvm::TrackingMDRef>> ReplaceMap;
136 std::vector<std::pair<const DeclaratorDecl *, llvm::TrackingMDRef>>
140 std::vector<llvm::TypedTrackingMDRef<llvm::DIScope>> LexicalBlockStack;
141 llvm::DenseMap<const Decl *, llvm::TrackingMDRef> RegionMap;
149 llvm::BumpPtrAllocator DebugInfoNames;
152 llvm::DenseMap<const char *, llvm::TrackingMDRef> DIFileCache;
153 llvm::DenseMap<const FunctionDecl *, llvm::TrackingMDRef> SPCache;
157 llvm::DenseMap<const Decl *, llvm::TrackingMDRef> DeclCache;
158 llvm::DenseMap<const Decl *, llvm::TrackingMDRef> ImportedDeclCache;
159 llvm::DenseMap<const NamespaceDecl *, llvm::TrackingMDRef> NamespaceCache;
160 llvm::DenseMap<const NamespaceAliasDecl *, llvm::TrackingMDRef>
162 llvm::DenseMap<const Decl *, llvm::TypedTrackingMDRef<llvm::DIDerivedType>>
165 using ParamDecl2StmtTy = llvm::DenseMap<const ParmVarDecl *, const Stmt *>;
167 llvm::DenseMap<const ParmVarDecl *, llvm::DILocalVariable *>;
178 llvm::DIType *CreateType(const BuiltinType *Ty);
179 llvm::DIType *CreateType(const ComplexType *Ty);
180 llvm::DIType *CreateType(const AutoType *Ty);
181 llvm::DIType *CreateType(const BitIntType *Ty);
182 llvm::DIType *CreateQualifiedType(QualType Ty, llvm::DIFile *Fg);
183 llvm::DIType *CreateQualifiedType(const FunctionProtoType *Ty,
184 llvm::DIFile *Fg);
185 llvm::DIType *CreateType(const TypedefType *Ty, llvm::DIFile *Fg);
186 llvm::DIType *CreateType(const TemplateSpecializationType *Ty,
187 llvm::DIFile *Fg);
188 llvm::DIType *CreateType(const ObjCObjectPointerType *Ty, llvm::DIFile *F);
189 llvm::DIType *CreateType(const PointerType *Ty, llvm::DIFile *F);
190 llvm::DIType *CreateType(const BlockPointerType *Ty, llvm::DIFile *F);
191 llvm::DIType *CreateType(const FunctionType *Ty, llvm::DIFile *F);
193 llvm::DIType *CreateType(const RecordType *Tyg);
194 llvm::DIType *CreateTypeDefinition(const RecordType *Ty);
195 llvm::DICompositeType *CreateLimitedType(const RecordType *Ty);
197 llvm::DICompositeType *CT);
199 llvm::DIType *CreateType(const ObjCInterfaceType *Ty, llvm::DIFile *F);
200 llvm::DIType *CreateTypeDefinition(const ObjCInterfaceType *Ty,
201 llvm::DIFile *F);
203 llvm::DIType *CreateType(const ObjCObjectType *Ty, llvm::DIFile *F);
204 llvm::DIType *CreateType(const ObjCTypeParamType *Ty, llvm::DIFile *Unit);
206 llvm::DIType *CreateType(const VectorType *Ty, llvm::DIFile *F);
207 llvm::DIType *CreateType(const ConstantMatrixType *Ty, llvm::DIFile *F);
208 llvm::DIType *CreateType(const ArrayType *Ty, llvm::DIFile *F);
209 llvm::DIType *CreateType(const LValueReferenceType *Ty, llvm::DIFile *F);
210 llvm::DIType *CreateType(const RValueReferenceType *Ty, llvm::DIFile *Unit);
211 llvm::DIType *CreateType(const MemberPointerType *Ty, llvm::DIFile *F);
212 llvm::DIType *CreateType(const AtomicType *Ty, llvm::DIFile *F);
213 llvm::DIType *CreateType(const PipeType *Ty, llvm::DIFile *F);
215 llvm::DIType *CreateEnumType(const EnumType *Ty);
216 llvm::DIType *CreateTypeDefinition(const EnumType *Ty);
223 llvm::DIType *CreateSelfType(const QualType &QualTy, llvm::DIType *Ty);
228 llvm::DIType *getTypeOrNull(const QualType);
233 llvm::DISubroutineType *getOrCreateMethodType(const CXXMethodDecl *Method,
234 llvm::DIFile *F, bool decl);
235 llvm::DISubroutineType *
237 llvm::DIFile *Unit, bool decl);
238 llvm::DISubroutineType *
239 getOrCreateFunctionType(const Decl *D, QualType FnType, llvm::DIFile *F);
241 llvm::DIType *getOrCreateVTablePtrType(llvm::DIFile *F);
244 llvm::DINamespace *getOrCreateNamespace(const NamespaceDecl *N);
245 llvm::DIType *CreatePointerLikeType(llvm::dwarf::Tag Tag, const Type *Ty,
246 QualType PointeeTy, llvm::DIFile *F);
247 llvm::DIType *getOrCreateStructPtrType(StringRef Name, llvm::DIType *&Cache);
251 llvm::DISubprogram *CreateCXXMemberFunction(const CXXMethodDecl *Method,
252 llvm::DIFile *F,
253 llvm::DIType *RecordTy);
258 void CollectCXXMemberFunctions(const CXXRecordDecl *Decl, llvm::DIFile *F,
259 SmallVectorImpl<llvm::Metadata *> &E,
260 llvm::DIType *T);
265 void CollectCXXBases(const CXXRecordDecl *Decl, llvm::DIFile *F,
266 SmallVectorImpl<llvm::Metadata *> &EltTys,
267 llvm::DIType *RecordTy);
272 const CXXRecordDecl *RD, llvm::DIFile *Unit,
273 SmallVectorImpl<llvm::Metadata *> &EltTys, llvm::DIType *RecordTy,
275 llvm::DenseSet<CanonicalDeclPtr<const CXXRecordDecl>> &SeenTypes,
276 llvm::DINode::DIFlags StartingFlags);
280 llvm::ArrayRef<TemplateArgument> Args;
283 llvm::DINodeArray CollectTemplateParams(Optional<TemplateArgs> Args,
284 llvm::DIFile *Unit);
287 llvm::DINodeArray CollectFunctionTemplateParams(const FunctionDecl *FD,
288 llvm::DIFile *Unit);
292 llvm::DINodeArray CollectVarTemplateParams(const VarDecl *VD,
293 llvm::DIFile *Unit);
301 llvm::DINodeArray CollectCXXTemplateParams(const RecordDecl *TS,
302 llvm::DIFile *F);
305 llvm::DINodeArray CollectBTFDeclTagAnnotations(const Decl *D);
307 llvm::DIType *createFieldType(StringRef name, QualType type,
310 llvm::DIFile *tunit, llvm::DIScope *scope,
312 llvm::DINodeArray Annotations = nullptr);
314 llvm::DIType *createFieldType(StringRef name, QualType type,
316 uint64_t offsetInBits, llvm::DIFile *tunit,
317 llvm::DIScope *scope,
324 llvm::DIType *createBitFieldType(const FieldDecl *BitFieldDecl,
325 llvm::DIScope *RecordTy,
331 SmallVectorImpl<llvm::Metadata *> &E,
332 llvm::DIType *RecordTy);
333 llvm::DIDerivedType *CreateRecordStaticField(const VarDecl *Var,
334 llvm::DIType *RecordTy,
337 llvm::DIFile *F,
338 SmallVectorImpl<llvm::Metadata *> &E,
339 llvm::DIType *RecordTy, const RecordDecl *RD);
341 SmallVectorImpl<llvm::Metadata *> &E);
342 void CollectRecordFields(const RecordDecl *Decl, llvm::DIFile *F,
343 SmallVectorImpl<llvm::Metadata *> &E,
344 llvm::DICompositeType *RecordTy);
348 void CollectVTableInfo(const CXXRecordDecl *Decl, llvm::DIFile *F,
349 SmallVectorImpl<llvm::Metadata *> &EltTys);
369 const BlockPointerType *Ty, llvm::DIFile *Unit,
370 llvm::DIDerivedType *DescTy, unsigned LineNo,
371 SmallVectorImpl<llvm::Metadata *> &EltTys);
377 const llvm::StructLayout &BlockLayout, llvm::DIFile *Unit,
378 SmallVectorImpl<llvm::Metadata *> &Fields);
390 void registerVLASizeExpression(QualType Ty, llvm::Metadata *SizeExpr) { in registerVLASizeExpression()
420 void setInlinedAt(llvm::MDNode *InlinedAt) { CurInlinedAt = InlinedAt; } in setInlinedAt()
423 llvm::MDNode *getInlinedAt() const { return CurInlinedAt; } in getInlinedAt()
426 llvm::DebugLoc SourceLocToDebugLoc(SourceLocation Loc);
442 llvm::Function *Fn, bool CurFnIsThunk);
452 QualType FnType, llvm::Function *Fn = nullptr);
456 void EmitFuncDeclForCallSite(llvm::CallBase *CallOrInvoke,
461 void EmitFunctionEnd(CGBuilderTy &Builder, llvm::Function *Fn);
475 llvm::DILocalVariable *
476 EmitDeclareOfAutoVariable(const VarDecl *Decl, llvm::Value *AI,
486 const VarDecl *variable, llvm::Value *storage, CGBuilderTy &Builder,
487 const CGBlockInfo &blockInfo, llvm::Instruction *InsertPoint = nullptr);
491 llvm::DILocalVariable *EmitDeclareOfArgVariable(const VarDecl *Decl,
492 llvm::Value *AI,
500 llvm::AllocaInst *LocalAddr,
504 void EmitGlobalVariable(llvm::GlobalVariable *GV, const VarDecl *Decl);
510 void EmitExternalVariable(llvm::GlobalVariable *GV, const VarDecl *Decl);
513 void EmitGlobalAlias(const llvm::GlobalValue *GV, const GlobalDecl Decl);
541 void AddStringLiteralDebugInfo(llvm::GlobalVariable *GV,
545 llvm::DIImportedEntity *EmitNamespaceAlias(const NamespaceAliasDecl &NA);
548 llvm::DIType *getOrCreateRecordType(QualType Ty, SourceLocation L);
551 llvm::DIType *getOrCreateInterfaceType(QualType Ty, SourceLocation Loc);
554 llvm::DIType *getOrCreateStandaloneType(QualType Ty, SourceLocation Loc);
557 void addHeapAllocSiteMetadata(llvm::CallBase *CallSite, QualType AllocatedTy,
571 llvm::DIMacro *CreateMacro(llvm::DIMacroFile *Parent, unsigned MType,
576 llvm::DIMacroFile *CreateTempMacroFile(llvm::DIMacroFile *Parent,
589 llvm::DILocalVariable *EmitDeclare(const VarDecl *decl, llvm::Value *AI,
590 llvm::Optional<unsigned> ArgNo,
597 llvm::DILocalVariable *EmitDeclare(const BindingDecl *decl, llvm::Value *AI,
598 llvm::Optional<unsigned> ArgNo,
604 llvm::DIType *BlockByRefWrapper;
606 llvm::DIType *WrappedType;
616 llvm::DIScope *getDeclContextDescriptor(const Decl *D);
618 llvm::DIScope *getContextDescriptor(const Decl *Context,
619 llvm::DIScope *Default);
621 llvm::DIScope *getCurrentContextDescriptor(const Decl *Decl);
624 llvm::DICompositeType *getOrCreateRecordFwdDecl(const RecordType *,
625 llvm::DIScope *);
634 Optional<llvm::DIFile::ChecksumKind>
642 llvm::DIFile *getOrCreateFile(SourceLocation Loc);
645 llvm::DIFile *
647 Optional<llvm::DIFile::ChecksumInfo<StringRef>> CSInfo,
651 llvm::DIType *getOrCreateType(QualType Ty, llvm::DIFile *Fg);
655 llvm::DIModule *getOrCreateModuleRef(ASTSourceDescriptor Mod,
659 llvm::DIModule *getParentModuleOrNull(const Decl *D);
663 llvm::DICompositeType *getOrCreateLimitedType(const RecordType *Ty);
666 llvm::DIType *CreateTypeNode(QualType Ty, llvm::DIFile *Fg);
669 llvm::DIType *CreateMemberType(llvm::DIFile *Unit, QualType FType,
674 llvm::DINode *getDeclarationOrDefinition(const Decl *D);
678 llvm::DISubprogram *getFunctionDeclaration(const Decl *D);
686 llvm::DISubprogram *
687 getObjCMethodDeclaration(const Decl *D, llvm::DISubroutineType *FnType,
688 unsigned LineNo, llvm::DINode::DIFlags Flags,
689 llvm::DISubprogram::DISPFlags SPFlags);
695 llvm::DIDerivedType *
699 llvm::DISubprogram *getFunctionFwdDeclOrStub(GlobalDecl GD, bool Stub);
703 llvm::DISubprogram *getFunctionForwardDeclaration(GlobalDecl GD);
707 llvm::DISubprogram *getFunctionStub(GlobalDecl GD);
711 llvm::DIGlobalVariable *
721 llvm::DIGlobalVariableExpression *
722 CollectAnonRecordDecls(const RecordDecl *RD, llvm::DIFile *Unit,
724 llvm::GlobalVariable *Var, llvm::DIScope *DContext);
729 llvm::DINode::DIFlags getCallSiteRelatedAttrs() const;
757 llvm::Function *InitFn);
770 void collectFunctionDeclProps(GlobalDecl GD, llvm::DIFile *Unit,
772 llvm::DIScope *&FDContext,
773 llvm::DINodeArray &TParamsArray,
774 llvm::DINode::DIFlags &Flags);
777 void collectVarDeclProps(const VarDecl *VD, llvm::DIFile *&Unit,
780 llvm::MDTuple *&TemplateParameters,
781 llvm::DIScope *&VDContext);
804 llvm::DebugLoc OriginalLocation;
811 ApplyDebugLocation(CodeGenFunction &CGF, llvm::DebugLoc Loc);