LLVM 20.0.0git
|
Subprogram description. More...
#include "llvm/IR/DebugInfoMetadata.h"
Public Types | |
enum | DISPFlags : uint32_t { SPFlagNonvirtual = SPFlagZero , SPFlagVirtuality = SPFlagVirtual | SPFlagPureVirtual } |
Debug info subprogram flags. More... | |
Public Types inherited from llvm::DINode | |
enum | DIFlags : uint32_t { FlagAccessibility = FlagPrivate | FlagProtected | FlagPublic , FlagPtrToMemberRep } |
Debug info flags. More... | |
Public Types inherited from llvm::MDNode | |
using | op_iterator = const MDOperand * |
using | op_range = iterator_range< op_iterator > |
Public Types inherited from llvm::Metadata | |
enum | MetadataKind |
Static Public Member Functions | |
static DISPFlags | getFlag (StringRef Flag) |
static StringRef | getFlagString (DISPFlags Flag) |
static DISPFlags | splitFlags (DISPFlags Flags, SmallVectorImpl< DISPFlags > &SplitFlags) |
Split up a flags bitfield for easier printing. | |
static DISPFlags | toSPFlags (bool IsLocalToUnit, bool IsDefinition, bool IsOptimized, unsigned Virtuality=SPFlagNonvirtual, bool IsMainSubprogram=false) |
static bool | classof (const Metadata *MD) |
Static Public Member Functions inherited from llvm::DILocalScope | |
static DILocalScope * | cloneScopeForSubprogram (DILocalScope &RootScope, DISubprogram &NewSP, LLVMContext &Ctx, DenseMap< const MDNode *, MDNode * > &Cache) |
Traverses the scope chain rooted at RootScope until it hits a Subprogram, recreating the chain with "NewSP" instead. | |
static bool | classof (const Metadata *MD) |
Static Public Member Functions inherited from llvm::DIScope | |
static bool | classof (const Metadata *MD) |
Static Public Member Functions inherited from llvm::DINode | |
static DIFlags | getFlag (StringRef Flag) |
static StringRef | getFlagString (DIFlags Flag) |
static DIFlags | splitFlags (DIFlags Flags, SmallVectorImpl< DIFlags > &SplitFlags) |
Split up a flags bitfield. | |
static bool | classof (const Metadata *MD) |
Static Public Member Functions inherited from llvm::MDNode | |
static MDTuple * | get (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
static MDTuple * | getIfExists (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
static MDTuple * | getDistinct (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
static TempMDTuple | getTemporary (LLVMContext &Context, ArrayRef< Metadata * > MDs) |
static void | deleteTemporary (MDNode *N) |
Deallocate a node created by getTemporary. | |
template<class T > | |
static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithPermanent (std::unique_ptr< T, TempMDNodeDeleter > N) |
Replace a temporary node with a permanent one. | |
template<class T > | |
static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithUniqued (std::unique_ptr< T, TempMDNodeDeleter > N) |
Replace a temporary node with a uniqued one. | |
template<class T > | |
static std::enable_if_t< std::is_base_of< MDNode, T >::value, T * > | replaceWithDistinct (std::unique_ptr< T, TempMDNodeDeleter > N) |
Replace a temporary node with a distinct one. | |
static bool | classof (const Metadata *MD) |
Methods for support type inquiry through isa, cast, and dyn_cast: | |
static MDNode * | concatenate (MDNode *A, MDNode *B) |
Methods for metadata merging. | |
static MDNode * | intersect (MDNode *A, MDNode *B) |
static MDNode * | getMostGenericTBAA (MDNode *A, MDNode *B) |
static MDNode * | getMostGenericFPMath (MDNode *A, MDNode *B) |
static MDNode * | getMostGenericRange (MDNode *A, MDNode *B) |
static MDNode * | getMostGenericAliasScope (MDNode *A, MDNode *B) |
static MDNode * | getMostGenericAlignmentOrDereferenceable (MDNode *A, MDNode *B) |
static MDNode * | getMergedProfMetadata (MDNode *A, MDNode *B, const Instruction *AInstr, const Instruction *BInstr) |
Merge !prof metadata from two instructions. | |
Friends | |
class | LLVMContextImpl |
class | MDNode |
Additional Inherited Members | |
Protected Types inherited from llvm::MDNode | |
using | mutable_op_range = iterator_range< MDOperand * > |
Protected Types inherited from llvm::Metadata | |
enum | StorageType { Uniqued , Distinct , Temporary } |
Active type of storage. More... | |
Protected Member Functions inherited from llvm::DILocalScope | |
DILocalScope (LLVMContext &C, unsigned ID, StorageType Storage, unsigned Tag, ArrayRef< Metadata * > Ops) | |
~DILocalScope ()=default | |
Protected Member Functions inherited from llvm::DIScope | |
DIScope (LLVMContext &C, unsigned ID, StorageType Storage, unsigned Tag, ArrayRef< Metadata * > Ops) | |
~DIScope ()=default | |
Protected Member Functions inherited from llvm::DINode | |
DINode (LLVMContext &C, unsigned ID, StorageType Storage, unsigned Tag, ArrayRef< Metadata * > Ops1, ArrayRef< Metadata * > Ops2=std::nullopt) | |
~DINode ()=default | |
template<class Ty > | |
Ty * | getOperandAs (unsigned I) const |
StringRef | getStringOperand (unsigned I) const |
void | setTag (unsigned Tag) |
Allow subclasses to mutate the tag. | |
Protected Member Functions inherited from llvm::MDNode | |
MDNode (LLVMContext &Context, unsigned ID, StorageType Storage, ArrayRef< Metadata * > Ops1, ArrayRef< Metadata * > Ops2=std::nullopt) | |
~MDNode ()=default | |
void * | operator new (size_t Size, size_t NumOps, StorageType Storage) |
void | operator delete (void *Mem) |
void | operator delete (void *, unsigned) |
Required by std, but never called. | |
void | operator delete (void *, unsigned, bool) |
Required by std, but never called. | |
void | dropAllReferences () |
MDOperand * | mutable_begin () |
MDOperand * | mutable_end () |
mutable_op_range | mutable_operands () |
void | setOperand (unsigned I, Metadata *New) |
Set an operand. | |
unsigned | getNumUnresolved () const |
void | setNumUnresolved (unsigned N) |
void | storeDistinctInContext () |
void | resize (size_t NumOps) |
Resize the node to hold NumOps operands. | |
Protected Member Functions inherited from llvm::Metadata | |
Metadata (unsigned ID, StorageType Storage) | |
~Metadata ()=default | |
void | handleChangedOperand (void *, Metadata *) |
Default handling of a changed operand, which asserts. | |
Static Protected Member Functions inherited from llvm::DINode | |
static MDString * | getCanonicalMDString (LLVMContext &Context, StringRef S) |
Static Protected Member Functions inherited from llvm::MDNode | |
template<class T , class StoreT > | |
static T * | storeImpl (T *N, StorageType Storage, StoreT &Store) |
template<class T > | |
static T * | storeImpl (T *N, StorageType Storage) |
Protected Attributes inherited from llvm::Metadata | |
unsigned char | Storage: 7 |
Storage flag for non-uniqued, otherwise unowned, metadata. | |
unsigned char | SubclassData1: 1 |
unsigned short | SubclassData16 = 0 |
unsigned | SubclassData32 = 0 |
Subprogram description.
Definition at line 1673 of file DebugInfoMetadata.h.
Debug info subprogram flags.
Enumerator | |
---|---|
SPFlagNonvirtual | |
SPFlagVirtuality |
Definition at line 1688 of file DebugInfoMetadata.h.
Definition at line 1939 of file DebugInfoMetadata.h.
References llvm::Metadata::getMetadataID().
llvm::DISubprogram::DEFINE_MDNODE_GET | ( | DISubprogram | , |
(DIScope *Scope, StringRef Name, StringRef LinkageName, DIFile *File, unsigned Line, DISubroutineType *Type, unsigned ScopeLine, DIType *ContainingType, unsigned VirtualIndex, int ThisAdjustment, DIFlags Flags, DISPFlags SPFlags, DICompileUnit *Unit, DITemplateParameterArray TemplateParams=nullptr, DISubprogram *Declaration=nullptr, DINodeArray RetainedNodes=nullptr, DITypeArray ThrownTypes=nullptr, DINodeArray Annotations=nullptr, StringRef TargetFuncName="") | , | ||
(Scope, Name, LinkageName, File, Line, Type, ScopeLine, ContainingType, VirtualIndex, ThisAdjustment, Flags, SPFlags, Unit, TemplateParams, Declaration, RetainedNodes, ThrownTypes, Annotations, TargetFuncName) | |||
) |
|
static |
Definition at line 1088 of file DebugInfoMetadata.cpp.
References llvm::StringSwitch< T, R >::Default().
Referenced by llvm::LLParser::parseMDField().
Definition at line 1095 of file DebugInfoMetadata.cpp.
References SPFlagVirtuality.
|
static |
Split up a flags bitfield for easier printing.
Split Flags
into SplitFlags
, a vector of its components. Returns any remaining (unrecognized) bits.
Definition at line 1109 of file DebugInfoMetadata.cpp.
|
static |
Definition at line 1032 of file DebugInfoMetadata.cpp.
References SPFlagVirtuality.
Referenced by pack_into_DISPFlags().
|
friend |
Definition at line 1674 of file DebugInfoMetadata.h.
|
friend |
Definition at line 1675 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags DISPFlags Metadata Metadata Metadata Metadata Metadata Metadata* llvm::DISubprogram::Annotations = nullptr |
Definition at line 1783 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata* llvm::DISubprogram::ContainingType |
Definition at line 1779 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags DISPFlags Metadata Metadata Metadata* llvm::DISubprogram::Declaration = nullptr |
Definition at line 1781 of file DebugInfoMetadata.h.
Definition at line 1777 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags llvm::DISubprogram::Flags |
Definition at line 1780 of file DebugInfoMetadata.h.
Definition at line 1778 of file DebugInfoMetadata.h.
Definition at line 1777 of file DebugInfoMetadata.h.
Definition at line 1777 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags DISPFlags Metadata Metadata Metadata Metadata* llvm::DISubprogram::RetainedNodes = nullptr |
Definition at line 1782 of file DebugInfoMetadata.h.
Metadata* llvm::DISubprogram::Scope |
Definition at line 1777 of file DebugInfoMetadata.h.
Definition at line 1778 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags DISPFlags llvm::DISubprogram::SPFlags |
Definition at line 1780 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags DISPFlags Metadata Metadata Metadata Metadata Metadata Metadata MDString* llvm::DISubprogram::TargetFuncName |
Definition at line 1783 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags DISPFlags Metadata Metadata* llvm::DISubprogram::TemplateParams = nullptr |
Definition at line 1781 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int llvm::DISubprogram::ThisAdjustment |
Definition at line 1779 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags DISPFlags Metadata Metadata Metadata Metadata Metadata* llvm::DISubprogram::ThrownTypes = nullptr |
Definition at line 1782 of file DebugInfoMetadata.h.
Definition at line 1778 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned int DIFlags DISPFlags Metadata* llvm::DISubprogram::Unit |
Definition at line 1780 of file DebugInfoMetadata.h.
Metadata MDString MDString Metadata unsigned Metadata unsigned Metadata unsigned llvm::DISubprogram::VirtualIndex |
Definition at line 1779 of file DebugInfoMetadata.h.