reference, declarationdefinition
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)) {