|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
include/llvm/IR/Function.h 51 class DISubprogram;
include/llvm/IR/Metadata.def 98 HANDLE_SPECIALIZED_MDNODE_LEAF_UNIQUABLE(DISubprogram)
lib/Bitcode/Reader/MetadataLoader.h 25 class DISubprogram;
References
examples/Kaleidoscope/Chapter9/toy.cpp 1246 DISubprogram *SP = DBuilder->createFunction(
1249 DINode::FlagPrototyped, DISubprogram::SPFlagDefinition);
include/llvm/ADT/DenseMapInfo.h 39 static inline T* getEmptyKey() {
41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
45 static inline T* getTombstoneKey() {
47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
51 static unsigned getHashValue(const T *PtrVal) {
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/IR/DIBuilder.h 112 void finalizeSubprogram(DISubprogram *SP);
522 static DISubprogram *createArtificialSubprogram(DISubprogram *SP);
522 static DISubprogram *createArtificialSubprogram(DISubprogram *SP);
661 DISubprogram *
665 DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero,
665 DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero,
667 DISubprogram *Decl = nullptr,
672 DISubprogram *createTempFunctionFwdDecl(
676 DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero,
676 DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero,
678 DISubprogram *Decl = nullptr, DITypeArray ThrownTypes = nullptr);
699 DISubprogram *
705 DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero,
705 DISubprogram::DISPFlags SPFlags = DISubprogram::SPFlagZero,
include/llvm/IR/DebugInfo.h 31 DISubprogram *getDISubprogram(const MDNode *Scope);
86 void processSubprogram(DISubprogram *SP);
91 bool addSubprogram(DISubprogram *SP);
97 using subprogram_iterator = SmallVectorImpl<DISubprogram *>::const_iterator;
131 SmallVector<DISubprogram *, 8> SPs;
include/llvm/IR/DebugInfoMetadata.h 1337 DISubprogram *getSubprogram() const;
1660 static DISubprogram *
1666 DITemplateParameterArray TemplateParams, DISubprogram *Declaration,
1676 static DISubprogram *getImpl(LLVMContext &Context, Metadata *Scope,
1803 DISubprogram *getDeclaration() const {
1804 return cast_or_null<DISubprogram>(getRawDeclaration());
include/llvm/IR/DiagnosticInfo.h 353 DiagnosticLocation(const DISubprogram *SP);
include/llvm/IR/Function.h 822 void setSubprogram(DISubprogram *SP);
828 DISubprogram *getSubprogram() const;
include/llvm/IR/Metadata.h 982 static typename std::enable_if<std::is_base_of<MDNode, T>::value, T *>::type
982 static typename std::enable_if<std::is_base_of<MDNode, T>::value, T *>::type
983 replaceWithUniqued(std::unique_ptr<T, TempMDNodeDeleter> N) {
984 return cast<T>(N.release()->replaceWithUniquedImpl());
992 static typename std::enable_if<std::is_base_of<MDNode, T>::value, T *>::type
992 static typename std::enable_if<std::is_base_of<MDNode, T>::value, T *>::type
993 replaceWithDistinct(std::unique_ptr<T, TempMDNodeDeleter> N) {
994 return cast<T>(N.release()->replaceWithDistinctImpl());
1042 static void dispatchRecalculateHash(NodeTy *N, std::true_type) {
1046 static void dispatchRecalculateHash(NodeTy *, std::false_type) {}
1048 static void dispatchResetHash(NodeTy *N, std::true_type) {
1052 static void dispatchResetHash(NodeTy *, std::false_type) {}
1192 : public std::iterator<std::input_iterator_tag, T *, std::ptrdiff_t, void,
1193 T *> {
1200 T *operator*() const { return cast_or_null<T>(*I); }
1200 T *operator*() const { return cast_or_null<T>(*I); }
1230 const MDTupleTypedArrayWrapper<U> &Other,
1231 typename std::enable_if<std::is_convertible<U *, T *>::value>::type * =
1231 typename std::enable_if<std::is_convertible<U *, T *>::value>::type * =
1252 T *operator[](unsigned I) const { return cast_or_null<T>(N->getOperand(I)); }
1255 using iterator = TypedMDOperandIterator<T>;
include/llvm/Support/Casting.h 58 return To::classof(&Val);
66 static inline bool doit(const From &) { return true; }
77 return isa_impl<To, From>::doit(Val);
92 return isa_impl<To, From>::doit(*Val);
104 static inline bool doit(const From *Val) {
106 return isa_impl<To, From>::doit(*Val);
106 return isa_impl<To, From>::doit(*Val);
122 return isa_impl_wrap<To, SimpleFrom,
132 return isa_impl_cl<To,FromTy>::doit(Val);
142 return isa_impl_wrap<X, const Y,
168 using ret_type = const To &; // Normal case, return Ty&
172 using ret_type = To *; // Pointer arg case, return Ty*
176 using ret_type = const To *; // Constant pointer arg case, return const Ty*
198 using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
210 To, From, typename simplify_type<From>::SimpleType>::ret_type;
218 static typename cast_retty<To, From>::ret_type doit(From &Val) {
219 return cast_convert_val<To, SimpleFrom,
227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
228 typename cast_retty<To, FromTy>::ret_type Res2
248 typename cast_retty<X, const Y>::ret_type>::type
252 X, const Y, typename simplify_type<const Y>::SimpleType>::doit(Val);
256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
258 return cast_convert_val<X, Y,
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
265 return cast_convert_val<X, Y*,
265 return cast_convert_val<X, Y*,
266 typename simplify_type<Y*>::SimpleType>::doit(Val);
285 typename cast_retty<X, const Y>::ret_type>::type
290 return cast<X>(Val);
296 typename cast_retty<X, Y>::ret_type>::type
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
306 cast_or_null(Y *Val) {
309 return cast<X>(Val);
337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
352 typename cast_retty<X, const Y>::ret_type>::type
354 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
354 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
360 typename cast_retty<X, Y>::ret_type>::type
362 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
362 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
368 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
368 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
91 typedef PointerLikeTypeTraits<T *> NonConst;
93 static inline const void *getAsVoidPointer(const T *P) {
96 static inline const T *getFromVoidPointer(const void *P) {
lib/Analysis/ModuleDebugInfoPrinter.cpp 84 for (DISubprogram *S : Finder.subprograms()) {
lib/AsmParser/LLParser.cpp 3861 struct DISPFlagField : public MDFieldImpl<DISubprogram::DISPFlags> {
3862 DISPFlagField() : MDFieldImpl(DISubprogram::SPFlagZero) {}
4176 Val = DISubprogram::getFlag(Lex.getStrVal());
4185 DISubprogram::DISPFlags Combined = DISubprogram::SPFlagZero;
4185 DISubprogram::DISPFlags Combined = DISubprogram::SPFlagZero;
4187 DISubprogram::DISPFlags Val;
4704 DISubprogram::DISPFlags SPFlags =
4706 : DISubprogram::toSPFlags(isLocal.Val, isDefinition.Val,
4708 if ((SPFlags & DISubprogram::SPFlagDefinition) && !IsDistinct)
lib/Bitcode/Reader/BitcodeReader.cpp 5268 if (DISubprogram *SP = MDLoader->lookupSubprogramForFunction(F))
lib/Bitcode/Reader/MetadataLoader.cpp 459 SmallDenseMap<Function *, DISubprogram *, 16> FunctionsWithSPs;
488 if (auto *SP = dyn_cast_or_null<DISubprogram>(Op))
488 if (auto *SP = dyn_cast_or_null<DISubprogram>(Op))
664 DISubprogram *lookupSubprogramForFunction(Function *F) {
1493 DISubprogram::DISPFlags SPFlags;
1512 SPFlags |= DISubprogram::SPFlagMainSubprogram;
1514 SPFlags = DISubprogram::toSPFlags(
1520 IsDistinct = (Record[0] & 1) || (SPFlags & DISubprogram::SPFlagDefinition);
1548 DISubprogram *SP = GET_OR_DISTINCT(
2151 DISubprogram *MetadataLoader::lookupSubprogramForFunction(Function *F) {
lib/Bitcode/Reader/MetadataLoader.h 68 DISubprogram *lookupSubprogramForFunction(Function *F);
lib/Bitcode/Writer/BitcodeWriter.cpp 314 void writeDISubprogram(const DISubprogram *N,
1667 void ModuleBitcodeWriter::writeDISubprogram(const DISubprogram *N,
lib/CodeGen/AsmPrinter/AsmPrinter.cpp 831 if (auto *SP = dyn_cast<DISubprogram>(V->getScope())) {
831 if (auto *SP = dyn_cast<DISubprogram>(V->getScope())) {
920 if (auto *SP = dyn_cast<DISubprogram>(
920 if (auto *SP = dyn_cast<DISubprogram>(
lib/CodeGen/AsmPrinter/CodeViewDebug.cpp 267 const DISubprogram *Inlinee) {
306 static const DISubprogram *getQualifiedNameComponents(
308 const DISubprogram *ClosestSubprogram = nullptr;
311 ClosestSubprogram = dyn_cast<DISubprogram>(Scope);
374 TypeIndex CodeViewDebug::getFuncIdForSubprogram(const DISubprogram *SP) {
436 TypeIndex CodeViewDebug::getMemberFunctionType(const DISubprogram *SP,
479 const DISubprogram *Inlinee = Var.DIVar->getScope()->getSubprogram();
863 for (const DISubprogram *SP : InlinedSubprograms) {
993 auto *SP = GV->getSubprogram();
1296 void CodeViewDebug::collectVariableInfo(const DISubprogram *SP) {
1472 const DISubprogram *ClosestSubprogram =
1956 static MethodOptions translateMethodOptionFlags(const DISubprogram *SP) {
1965 static MethodKind translateMethodKindFlags(const DISubprogram *SP,
2016 if (ImmediateScope && isa<DISubprogram>(ImmediateScope))
2021 if (isa<DISubprogram>(Scope)) {
2098 using MethodsList = TinyPtrVector<const DISubprogram *>;
2175 if (auto *SP = dyn_cast<DISubprogram>(Element)) {
2175 if (auto *SP = dyn_cast<DISubprogram>(Element)) {
2401 for (const DISubprogram *SP : MethodItr.second) {
lib/CodeGen/AsmPrinter/CodeViewDebug.h 110 const DISubprogram *Inlinee = nullptr;
223 const DISubprogram *Inlinee);
225 codeview::TypeIndex getFuncIdForSubprogram(const DISubprogram *SP);
243 SmallSetVector<const DISubprogram *, 4> InlinedSubprograms;
267 const DISubprogram *CurrentSubprogram = nullptr;
285 void setCurrentSubprogram(const DISubprogram *SP) {
342 void collectVariableInfo(const DISubprogram *SP);
386 codeview::TypeIndex getMemberFunctionType(const DISubprogram *SP,
lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp 175 auto *SP = MF->getFunction().getSubprogram();
lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp 383 DIE &DwarfCompileUnit::updateSubprogramScopeDIE(const DISubprogram *SP) {
432 if (Scope->getParent() && isa<DISubprogram>(DS)) {
526 auto *InlinedSP = getDISubprogram(DS);
810 DIE &DwarfCompileUnit::constructSubprogramScopeDIE(const DISubprogram *Sub,
857 auto *SP = cast<DISubprogram>(Scope->getScopeNode());
868 else if (auto *SPDecl = SP->getDeclaration()) {
943 DIE &ScopeDIE, const DISubprogram *CalleeSP, bool IsTail,
1011 else if (auto *SP = dyn_cast<DISubprogram>(Entity))
1011 else if (auto *SP = dyn_cast<DISubprogram>(Entity))
1029 void DwarfCompileUnit::finishSubprogramDefinition(const DISubprogram *SP) {
1267 const DISubprogram *SP, DIE &SPDie) {
1268 auto *SPDecl = SP->getDeclaration();
lib/CodeGen/AsmPrinter/DwarfCompileUnit.h 184 DIE &updateSubprogramScopeDIE(const DISubprogram *SP);
223 DIE &constructSubprogramScopeDIE(const DISubprogram *Sub,
250 DIE &constructCallSiteEntryDIE(DIE &ScopeDIE, const DISubprogram *CalleeSP,
263 void finishSubprogramDefinition(const DISubprogram *SP);
343 void applySubprogramAttributesToDefinition(const DISubprogram *SP,
lib/CodeGen/AsmPrinter/DwarfDebug.cpp 452 const DISubprogram *SP, DIE &Die) {
519 auto *SP = cast<DISubprogram>(Scope->getScopeNode());
689 void DwarfDebug::constructCallSiteEntryDIEs(const DISubprogram &SP,
727 const DISubprogram *CalleeSP = nullptr;
883 if (auto *SP = dyn_cast_or_null<DISubprogram>(Scope))
883 if (auto *SP = dyn_cast_or_null<DISubprogram>(Scope))
1044 for (const DISubprogram *SP : ProcessedSPNodes) {
1509 const DISubprogram *SP,
1637 const auto *SP = MI->getMF()->getFunction().getSubprogram();
1769 const DISubprogram *SP = PrologEndLoc->getInlinedAtScope()->getSubprogram();
1782 auto *SP = MF->getFunction().getSubprogram();
1816 const DISubprogram *SP = MF->getFunction().getSubprogram();
1856 auto *SP = cast<DISubprogram>(AScope->getScopeNode());
lib/CodeGen/AsmPrinter/DwarfDebug.h 317 SetVector<const DISubprogram *, SmallVector<const DISubprogram *, 16>,
317 SetVector<const DISubprogram *, SmallVector<const DISubprogram *, 16>,
318 SmallPtrSet<const DISubprogram *, 16>>
441 void constructCallSiteEntryDIEs(const DISubprogram &SP, DwarfCompileUnit &CU,
568 void collectEntityInfo(DwarfCompileUnit &TheCU, const DISubprogram *SP,
719 void addSubprogramNames(const DICompileUnit &CU, const DISubprogram *SP,
lib/CodeGen/AsmPrinter/DwarfUnit.cpp 201 (isa<DISubprogram>(D) && !cast<DISubprogram>(D)->isDefinition())) &&
201 (isa<DISubprogram>(D) && !cast<DISubprogram>(D)->isDefinition())) &&
437 void DwarfUnit::addSourceLine(DIE &Die, const DISubprogram *SP) {
626 if (auto *SP = dyn_cast<DISubprogram>(Context))
910 if (auto *SP = dyn_cast<DISubprogram>(Element))
1123 DIE *DwarfUnit::getOrCreateSubprogramDIE(const DISubprogram *SP, bool Minimal) {
1133 if (auto *SPDecl = SP->getDeclaration()) {
1155 bool DwarfUnit::applySubprogramDefinitionAttributes(const DISubprogram *SP,
1159 if (auto *SPDecl = SP->getDeclaration()) {
1198 void DwarfUnit::applySubprogramAttributes(const DISubprogram *SP, DIE &SPDie,
lib/CodeGen/AsmPrinter/DwarfUnit.h 79 bool applySubprogramDefinitionAttributes(const DISubprogram *SP, DIE &SPDie);
193 void addSourceLine(DIE &Die, const DISubprogram *SP);
228 DIE *getOrCreateSubprogramDIE(const DISubprogram *SP, bool Minimal = false);
230 void applySubprogramAttributes(const DISubprogram *SP, DIE &SPDie,
lib/CodeGen/LexicalScopes.cpp 227 if (isa<DISubprogram>(Scope))
lib/CodeGen/MachineOutliner.cpp 906 DISubprogram *getSubprogramOrNull(const OutlinedFunction &OF) {
907 DISubprogram *SP;
1156 if (DISubprogram *SP = getSubprogramOrNull(OF)) {
1167 DISubprogram *OutlinedSP = DB.createFunction(
1175 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
1175 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
lib/CodeGen/SafeStack.cpp 775 if (DISubprogram *SP = F.getSubprogram())
lib/IR/AsmWriter.cpp 1616 void printDISPFlags(StringRef Name, DISubprogram::DISPFlags Flags);
1716 DISubprogram::DISPFlags Flags) {
1726 SmallVector<DISubprogram::DISPFlags, 8> SplitFlags;
1727 auto Extra = DISubprogram::splitFlags(Flags, SplitFlags);
1731 auto StringF = DISubprogram::getFlagString(F);
1948 static void writeDISubprogram(raw_ostream &Out, const DISubprogram *N,
lib/IR/Core.cpp 1232 if (const DISubprogram *DSP = F->getSubprogram())
1256 if (const DISubprogram *DSP = F->getSubprogram())
1279 if (const DISubprogram *DSP = F->getSubprogram())
lib/IR/DIBuilder.cpp 48 void DIBuilder::finalizeSubprogram(DISubprogram *SP) {
91 for (auto *SP : SPs)
94 if (auto *SP = dyn_cast<DISubprogram>(N))
94 if (auto *SP = dyn_cast<DISubprogram>(N))
537 DISubprogram *DIBuilder::createArtificialSubprogram(DISubprogram *SP) {
537 DISubprogram *DIBuilder::createArtificialSubprogram(DISubprogram *SP) {
688 DISubprogram *Fn = getDISubprogram(Scope);
727 DISubprogram *Fn = getDISubprogram(Scope);
745 static DISubprogram *getSubprogram(bool IsDistinct, Ts &&... Args) {
747 return DISubprogram::getDistinct(std::forward<Ts>(Args)...);
748 return DISubprogram::get(std::forward<Ts>(Args)...);
751 DISubprogram *DIBuilder::createFunction(
754 DINode::DIFlags Flags, DISubprogram::DISPFlags SPFlags,
755 DITemplateParameterArray TParams, DISubprogram *Decl,
757 bool IsDefinition = SPFlags & DISubprogram::SPFlagDefinition;
758 auto *Node = getSubprogram(
770 DISubprogram *DIBuilder::createTempFunctionFwdDecl(
773 DINode::DIFlags Flags, DISubprogram::DISPFlags SPFlags,
774 DITemplateParameterArray TParams, DISubprogram *Decl,
776 bool IsDefinition = SPFlags & DISubprogram::SPFlagDefinition;
777 return DISubprogram::getTemporary(VMContext, getNonCompileUnitScope(Context),
785 DISubprogram *DIBuilder::createMethod(
789 DISubprogram::DISPFlags SPFlags, DITemplateParameterArray TParams,
795 bool IsDefinition = SPFlags & DISubprogram::SPFlagDefinition;
796 auto *SP = getSubprogram(
lib/IR/DebugInfo.cpp 43 DISubprogram *llvm::getDISubprogram(const MDNode *Scope) {
66 if (auto *SP = cast_or_null<DISubprogram>(F.getSubprogram()))
66 if (auto *SP = cast_or_null<DISubprogram>(F.getSubprogram()))
92 processSubprogram(cast<DISubprogram>(RT));
97 else if (auto *SP = dyn_cast<DISubprogram>(Entity))
97 else if (auto *SP = dyn_cast<DISubprogram>(Entity))
138 else if (auto *SP = dyn_cast<DISubprogram>(D))
138 else if (auto *SP = dyn_cast<DISubprogram>(D))
159 if (auto *SP = dyn_cast<DISubprogram>(Scope)) {
159 if (auto *SP = dyn_cast<DISubprogram>(Scope)) {
174 void DebugInfoFinder::processSubprogram(DISubprogram *SP) {
257 bool DebugInfoFinder::addSubprogram(DISubprogram *SP) {
395 DenseMap<DISubprogram *, StringRef> NewToLinkageName;
426 DISubprogram *getReplacementSubprogram(DISubprogram *MDS) {
426 DISubprogram *getReplacementSubprogram(DISubprogram *MDS) {
429 DISubprogram *Declaration = nullptr;
439 return DISubprogram::getDistinct(
450 auto *NewMDS = DISubprogram::get(
450 auto *NewMDS = DISubprogram::get(
524 if (auto *MDSub = dyn_cast<DISubprogram>(N)) {
524 if (auto *MDSub = dyn_cast<DISubprogram>(N)) {
563 if (auto *MDS = dyn_cast<DISubprogram>(Parent))
563 if (auto *MDS = dyn_cast<DISubprogram>(Parent))
632 if (auto *SP = F.getSubprogram()) {
634 auto *NewSP = cast<DISubprogram>(Mapper.mapNode(SP));
634 auto *NewSP = cast<DISubprogram>(Mapper.mapNode(SP));
709 template <typename DIT> DIT *unwrapDI(LLVMMetadataRef Ref) {
721 static DISubprogram::DISPFlags
723 return DISubprogram::toSPFlags(IsLocalToUnit, IsDefinition, IsOptimized);
1426 unwrap<Function>(Func)->setSubprogram(unwrap<DISubprogram>(SP));
1430 return unwrapDI<DISubprogram>(Subprogram)->getLine();
lib/IR/DebugInfoMetadata.cpp 216 if (auto *SP = dyn_cast<DISubprogram>(this))
239 if (auto *SP = dyn_cast<DISubprogram>(this))
580 DISubprogram *DILocalScope::getSubprogram() const {
583 return const_cast<DISubprogram *>(cast<DISubprogram>(this));
592 DISubprogram::DISPFlags DISubprogram::getFlag(StringRef Flag) {
612 DISubprogram::DISPFlags
627 DISubprogram *DISubprogram::getImpl(
lib/IR/DebugLoc.cpp 52 if (auto *SP = getDISubprogram(Scope))
lib/IR/DiagnosticInfo.cpp 119 DiagnosticLocation::DiagnosticLocation(const DISubprogram *SP) {
166 if (DISubprogram *SP = F->getSubprogram())
lib/IR/LLVMContextImpl.h 640 MDNodeKeyImpl(const DISubprogram *N)
653 bool isKeyOf(const DISubprogram *RHS) const {
669 bool isDefinition() const { return SPFlags & DISubprogram::SPFlagDefinition; }
689 using KeyTy = MDNodeKeyImpl<DISubprogram>;
691 static bool isSubsetEqual(const KeyTy &LHS, const DISubprogram *RHS) {
696 static bool isSubsetEqual(const DISubprogram *LHS, const DISubprogram *RHS) {
696 static bool isSubsetEqual(const DISubprogram *LHS, const DISubprogram *RHS) {
707 const DISubprogram *RHS) {
1139 using KeyTy = MDNodeKeyImpl<NodeTy>;
1140 using SubsetEqualTy = MDNodeSubsetEqualImpl<NodeTy>;
1142 static inline NodeTy *getEmptyKey() {
1143 return DenseMapInfo<NodeTy *>::getEmptyKey();
1146 static inline NodeTy *getTombstoneKey() {
1147 return DenseMapInfo<NodeTy *>::getTombstoneKey();
1152 static unsigned getHashValue(const NodeTy *N) {
1156 static bool isEqual(const KeyTy &LHS, const NodeTy *RHS) {
1162 static bool isEqual(const NodeTy *LHS, const NodeTy *RHS) {
1162 static bool isEqual(const NodeTy *LHS, const NodeTy *RHS) {
lib/IR/Metadata.cpp 331 static DISubprogram *getLocalFunctionMetadata(Value *V) {
761 static T *uniquifyImpl(T *N, DenseSet<T *, InfoT> &Store) {
761 static T *uniquifyImpl(T *N, DenseSet<T *, InfoT> &Store) {
761 static T *uniquifyImpl(T *N, DenseSet<T *, InfoT> &Store) {
762 if (T *U = getUniqued(Store, N))
778 static const bool value = sizeof(check<NodeTy>(nullptr)) == sizeof(Yes);
1518 void Function::setSubprogram(DISubprogram *SP) {
1522 DISubprogram *Function::getSubprogram() const {
1523 return cast_or_null<DISubprogram>(getMetadata(LLVMContext::MD_dbg));
1527 if (DISubprogram *SP = getSubprogram()) {
lib/IR/MetadataImpl.h 22 static T *getUniqued(DenseSet<T *, InfoT> &Store,
22 static T *getUniqued(DenseSet<T *, InfoT> &Store,
42 T *MDNode::storeImpl(T *N, StorageType Storage, StoreT &Store) {
42 T *MDNode::storeImpl(T *N, StorageType Storage, StoreT &Store) {
lib/IR/Verifier.cpp 268 DenseMap<const DISubprogram *, const Function *> DISubprogramAttachments;
877 if (auto *SP = dyn_cast<DISubprogram>(N.getRawScope()))
877 if (auto *SP = dyn_cast<DISubprogram>(N.getRawScope()))
1101 void Verifier::visitDISubprogram(const DISubprogram &N) {
1159 if (auto *SP = dyn_cast<DISubprogram>(N.getRawScope()))
1159 if (auto *SP = dyn_cast<DISubprogram>(N.getRawScope()))
2292 auto *SP = cast<DISubprogram>(I.second);
2292 auto *SP = cast<DISubprogram>(I.second);
2321 auto *N = F.getSubprogram();
2349 DISubprogram *SP = Scope ? Scope->getSubprogram() : nullptr;
4742 static DISubprogram *getSubprogram(Metadata *LocalScope) {
4746 if (auto *SP = dyn_cast<DISubprogram>(LocalScope))
4746 if (auto *SP = dyn_cast<DISubprogram>(LocalScope))
4942 DISubprogram *VarSP = getSubprogram(Var->getRawScope());
4943 DISubprogram *LocSP = getSubprogram(Loc->getRawScope());
4977 DISubprogram *LabelSP = getSubprogram(Label->getRawScope());
4978 DISubprogram *LocSP = getSubprogram(Loc->getRawScope());
lib/Target/BPF/BTFDebug.cpp 662 std::string BTFDebug::populateFileContent(const DISubprogram *SP) {
694 void BTFDebug::constructLineInfo(const DISubprogram *SP, MCSymbol *Label,
847 auto *SP = MF->getFunction().getSubprogram();
1033 auto *S = MI->getMF()->getFunction().getSubprogram();
lib/Target/BPF/BTFDebug.h 287 std::string populateFileContent(const DISubprogram *SP);
290 void constructLineInfo(const DISubprogram *SP, MCSymbol *Label, uint32_t Line,
lib/Target/X86/X86DiscriminateMemOps.cpp 92 DISubprogram *FDI = MF.getFunction().getSubprogram();
lib/Transforms/IPO/MergeFunctions.cpp 725 DISubprogram *DIS = G->getSubprogram();
lib/Transforms/IPO/SampleProfile.cpp 1528 if (DISubprogram *S = F.getSubprogram())
lib/Transforms/IPO/StripSymbols.cpp 327 for (DISubprogram *SP : F.subprograms()) {
lib/Transforms/Instrumentation/GCOVProfiling.cpp 179 static StringRef getFunctionName(const DISubprogram *SP) {
190 static SmallString<128> getFilename(const DISubprogram *SP) {
342 GCOVFunction(const DISubprogram *SP, Function *F, raw_ostream *os,
443 const DISubprogram *SP;
692 DISubprogram *SP = F.getSubprogram();
778 DISubprogram *SP = F.getSubprogram();
1005 auto *SP = cast_or_null<DISubprogram>(CountersBySP[j].second);
1005 auto *SP = cast_or_null<DISubprogram>(CountersBySP[j].second);
lib/Transforms/Scalar/ADCE.cpp 423 if (isa<DISubprogram>(LS))
lib/Transforms/Utils/CloneFunction.cpp 128 DISubprogram *SP = OldFunc->getSubprogram();
192 for (DISubprogram *ISP : DIFinder.subprograms())
tools/clang/lib/CodeGen/CGDebugInfo.cpp 192 isa<llvm::DISubprogram>(Scope)) {
1538 llvm::DISubprogram *CGDebugInfo::CreateCXXMemberFunction(
1569 llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
1569 llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
1574 SPFlags |= llvm::DISubprogram::SPFlagPureVirtual;
1576 SPFlags |= llvm::DISubprogram::SPFlagVirtual;
1631 SPFlags |= llvm::DISubprogram::SPFlagOptimized;
1634 llvm::DISubprogram *SP = DBuilder.createMethod(
3323 llvm::DISubprogram *CGDebugInfo::getFunctionFwdDeclOrStub(GlobalDecl GD,
3328 llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
3328 llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
3346 SPFlags |= llvm::DISubprogram::SPFlagLocalToUnit;
3348 SPFlags |= llvm::DISubprogram::SPFlagOptimized;
3352 SPFlags |= llvm::DISubprogram::SPFlagDefinition;
3359 llvm::DISubprogram *SP = DBuilder.createTempFunctionFwdDecl(
3370 llvm::DISubprogram *CGDebugInfo::getFunctionForwardDeclaration(GlobalDecl GD) {
3374 llvm::DISubprogram *CGDebugInfo::getFunctionStub(GlobalDecl GD) {
3428 llvm::DISubprogram *CGDebugInfo::getFunctionDeclaration(const Decl *D) {
3447 auto *SP = dyn_cast_or_null<llvm::DISubprogram>(MI->second);
3447 auto *SP = dyn_cast_or_null<llvm::DISubprogram>(MI->second);
3455 auto *SP = dyn_cast_or_null<llvm::DISubprogram>(MI->second);
3455 auto *SP = dyn_cast_or_null<llvm::DISubprogram>(MI->second);
3549 llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
3549 llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
3560 auto *SP = dyn_cast_or_null<llvm::DISubprogram>(FI->second);
3560 auto *SP = dyn_cast_or_null<llvm::DISubprogram>(FI->second);
3595 SPFlags |= llvm::DISubprogram::SPFlagLocalToUnit;
3597 SPFlags |= llvm::DISubprogram::SPFlagOptimized;
3600 llvm::DISubprogram::DISPFlags SPFlagsForDef =
3601 SPFlags | llvm::DISubprogram::SPFlagDefinition;
3611 llvm::DISubprogram *SP = DBuilder.createFunction(
3641 llvm::DISubprogram *FD = DBuilder.createFunction(
3694 llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
3694 llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
3696 SPFlags |= llvm::DISubprogram::SPFlagOptimized;
3698 llvm::DISubprogram *SP = DBuilder.createFunction(
3735 llvm::DISubprogram *SP = nullptr;
3737 SP = dyn_cast_or_null<llvm::DISubprogram>(FI->second);
tools/clang/lib/CodeGen/CGDebugInfo.h 105 llvm::DenseMap<const ObjCInterfaceDecl *, std::vector<llvm::DISubprogram *>>
222 llvm::DISubprogram *CreateCXXMemberFunction(const CXXMethodDecl *Method,
602 llvm::DISubprogram *getFunctionDeclaration(const Decl *D);
612 llvm::DISubprogram *getFunctionFwdDeclOrStub(GlobalDecl GD, bool Stub);
616 llvm::DISubprogram *getFunctionForwardDeclaration(GlobalDecl GD);
620 llvm::DISubprogram *getFunctionStub(GlobalDecl GD);
tools/clang/lib/CodeGen/CGVTables.cpp 120 auto *DIS = Fn->getSubprogram();
123 auto *NewDIS = DIS->replaceWithDistinct(DIS->clone());
tools/opt/BreakpointPrinter.cpp 49 auto *SP = cast_or_null<DISubprogram>(NMD->getOperand(i));
49 auto *SP = cast_or_null<DISubprogram>(NMD->getOperand(i));
tools/opt/Debugify.cpp 98 DISubprogram::DISPFlags SPFlags =
99 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized;
99 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized;
101 SPFlags |= DISubprogram::SPFlagLocalToUnit;
unittests/CodeGen/MachineInstrTest.cpp 325 DISubprogram *DIS = DISubprogram::getDistinct(
325 DISubprogram *DIS = DISubprogram::getDistinct(
327 DISubprogram::SPFlagZero, nullptr);
unittests/IR/IRBuilderTest.cpp 678 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
678 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
684 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized, nullptr,
684 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized, nullptr,
700 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
700 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
705 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
705 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
723 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
723 DISubprogram::SPFlagDefinition | DISubprogram::SPFlagOptimized);
743 DISubprogram *GSP = DIBuilder::createArtificialSubprogram(F->getSubprogram());
811 DISubprogram::SPFlagDefinition);
unittests/IR/MetadataTest.cpp 85 DISubprogram *getSubprogram() {
86 return DISubprogram::getDistinct(
88 DINode::FlagZero, DISubprogram::SPFlagZero, nullptr);
858 DISubprogram *N = getSubprogram();
883 DISubprogram *N = getSubprogram();
929 auto *SP1 = DISubprogram::getDistinct(Context, F, "a", "a", F, 0, nullptr,
929 auto *SP1 = DISubprogram::getDistinct(Context, F, "a", "a", F, 0, nullptr,
931 DISubprogram::SPFlagZero, nullptr);
932 auto *SP2 = DISubprogram::getDistinct(Context, F, "b", "b", F, 0, nullptr,
932 auto *SP2 = DISubprogram::getDistinct(Context, F, "b", "b", F, 0, nullptr,
934 DISubprogram::SPFlagZero, nullptr);
1809 DISubprogram *Declaration = getSubprogram();
1813 DISubprogram::DISPFlags SPFlags =
1817 SPFlags |= DISubprogram::SPFlagDefinition;
1819 auto *N = DISubprogram::get(
1819 auto *N = DISubprogram::get(
1973 DISubprogram *SP = getSubprogram();
2651 DISubprogram *SP1 = getSubprogram();
2652 DISubprogram *SP2 = getSubprogram();
2702 DISubprogram *SP = getSubprogram();
2767 DISubprogram *SP = getSubprogram();
unittests/IR/VerifierTest.cpp 183 DISubprogram::SPFlagLocalToUnit | DISubprogram::SPFlagDefinition));
183 DISubprogram::SPFlagLocalToUnit | DISubprogram::SPFlagDefinition));
unittests/Transforms/Utils/CloningTest.cpp 480 auto *Subprogram = DBuilder.createFunction(
482 DISubprogram::SPFlagLocalToUnit | DISubprogram::SPFlagDefinition);
482 DISubprogram::SPFlagLocalToUnit | DISubprogram::SPFlagDefinition);
510 auto *InlinedSP = DBuilder.createFunction(
512 DISubprogram::SPFlagLocalToUnit | DISubprogram::SPFlagDefinition);
512 DISubprogram::SPFlagLocalToUnit | DISubprogram::SPFlagDefinition);
588 auto *OldSubprogram = cast<DISubprogram>(OldDL.getInlinedAtScope());
588 auto *OldSubprogram = cast<DISubprogram>(OldDL.getInlinedAtScope());
589 auto *NewSubprogram = cast<DISubprogram>(NewDL.getInlinedAtScope());
589 auto *NewSubprogram = cast<DISubprogram>(NewDL.getInlinedAtScope());
751 auto *Subprogram = DBuilder.createFunction(
753 DISubprogram::SPFlagLocalToUnit | DISubprogram::SPFlagDefinition);
753 DISubprogram::SPFlagLocalToUnit | DISubprogram::SPFlagDefinition);
796 DISubprogram *SP = NewF->getSubprogram();
826 DISubprogram *SP = NewM->getFunction("f")->getSubprogram();
841 DISubprogram *SP = NewM->getFunction("f")->getSubprogram();
usr/include/c++/7.4.0/bits/unique_ptr.h 122 using type = _Up*;
137 using pointer = typename _Ptr<_Tp, _Dp>::type;
161 typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
163 __uniq_ptr_impl<_Tp, _Dp> _M_t;
166 using pointer = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
167 using element_type = _Tp;
252 unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
602 is_void<_Tp>>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1645 { typedef _Tp& type; };
1650 : public __add_lvalue_reference_helper<_Tp>
1983 { typedef _Up type; };
utils/unittest/googletest/include/gtest/gtest-printers.h 407 T* p, ::std::ostream* os) {
416 if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {