Base class for types.
Synopsis
Declared in <llvm/IR/DebugInfoMetadata.h>
class DIType
: public DIScope
Description
TODO: Remove the hardcoded name and context, since many types don't use them. TODO: Split up flags.
Uses the SubclassData32 Metadata slot.
Base Classes
Name |
Description |
Base class for scope‐like contexts. |
Type Aliases
Name |
Description |
Iterator over this node's operands. |
|
Range of this node's operands. |
Enums
Name |
Description |
Debug info flags. |
|
RTTI identifiers for concrete metadata subclasses. |
Member Functions
Name |
Description |
|
Copy assignment is deleted; MDNode is non‐copyable. |
Return a (temporary) clone of this. |
|
Returns a new temporary DIType with updated Flags |
|
|
|
|
|
Return the align in bits. |
|
Return the align in bytes. |
|
Return the LLVM context that owns this node. |
|
Return the directory. |
|
Return the export symbols. |
|
Return the file. |
|
Return the filename. |
|
Return the flags. |
|
Return the line. |
|
Return the metadata kind ID for this node. |
|
Return the name. |
|
Return the num extra inhabitants. |
|
Return number of MDNode operands. |
|
Return the number of uses of this temporary metadata node. |
|
Return the offset in bits. |
|
Return the operand at index |
|
Return the raw underlying file. |
|
Return the raw name operand. |
|
Return the raw offset in bits operand. |
|
Return the raw scope operand. |
|
Return the raw size in bits operand. |
|
Return the scope. |
|
Return the size in bits. |
|
Return the source. |
|
Return the tag. |
|
Return true if this node kind is always RAUW‐replaceable (e.g. DIAssignID). |
|
Return true if this is apple block extension. |
|
Return true if this is artificial. |
|
Return true if this is big endian. |
|
Return true if this is bit field. |
|
Return true if this node is distinct (not uniqued). |
|
Return true if this is forward decl. |
|
Return true if this is l value reference. |
|
Return true if this is little endian. |
|
Return true if this is objc class complete. |
|
Return true if this is object pointer. |
|
Return true if this is private. |
|
Return true if this is protected. |
|
Return true if this is public. |
|
Return true if this is r value reference. |
|
Return true if this node supports RAUW replacement. |
|
Check if node is fully resolved. |
|
Return true if this is static member. |
|
Check whether MDNode is a vtable access. |
|
Return true if this is a temporary (forward‐declaration) metadata node. |
|
Return true if this is type pass by reference. |
|
Return true if this is type pass by value. |
|
Return true if this node is uniqued in the context. |
|
Return true if this is vector. |
|
Return true if this is virtual. |
|
Return an iterator to the first operand. |
|
Return an iterator past the last operand. |
|
Return this node's operands as an array reference. |
|
|
Ordinary allocation is deleted; use the custom MDNode allocators. |
|
|
|
|
|
|
RAUW a temporary. |
|
Replace a specific operand. |
|
Resolve a unique, unresolved node. |
|
Resolve cycles. |
Static Member Functions
Name |
Description |
Check whether |
|
Methods for metadata merging. Concatenate metadata nodes |
|
Deallocate a node created by getTemporary. |
|
Convert CaptureComponents to !captures metadata. The return value may be nullptr. |
|
Return a uniqued tuple metadata node with operands |
|
Return a distinct (non‐uniqued) tuple with operands |
|
Return the flag. |
|
Return the flag string. |
|
Return an existing uniqued tuple for |
|
Merge alloc‐token metadata from two instructions. |
|
Merge callee‐type metadata from two instructions. |
|
Merge callsite metadata from two instructions. |
|
Merge memprof metadata from two instructions. |
|
Merge !prof metadata from two instructions. Currently only implemented with direct callsites with branch weights. |
|
Merge alias‐scope metadata, keeping scopes present in both. |
|
Merge align/dereferenceable metadata, returning the most generic bound. |
|
Merge FP‐math metadata, returning the most generic accuracy. |
|
Merge |
|
Merge noalias address‐space metadata, returning the most generic set. |
|
Merge !range metadata by taking the union of the integer intervals. |
|
Merge TBAA metadata, returning the most generic common tag. |
|
Return a temporary tuple with operands |
|
Intersect metadata nodes |
|
Replace a temporary node with a distinct one. |
|
Replace a temporary node with a permanent one. |
|
Replace a temporary node with a uniqued one. |
|
Split up a flags bitfield. |
|
Convert !captures metadata to CaptureComponents. MD may be nullptr. |
Static Data Members
Name |
Description |
Metadata IDs that may generate poison. |
Protected Type Aliases
Name |
Description |
Range type over mutable |
Protected Enums
Name |
Description |
Active type of storage. |
Protected Member Functions
Name |
Description |
|
Construct a DIType. |
|
Destroy this DIType. |
Drop all references held by this metadata node. |
|
Return the number of unresolved operands in this node. |
|
Return the operand as. |
|
Return the string operand. |
|
Default handling of a changed operand, which asserts. |
|
Initialize common DIType fields. |
|
Return an iterator to the first mutable operand. |
|
Return an iterator past the last mutable operand. |
|
Return a mutable range over this node's operands. |
|
Change fields in place. |
|
Delete operators |
|
Allocate an |
|
Resize the node to hold NumOps operands. |
|
Set the number of unresolved operands in this node. |
|
Set an operand. |
|
Allow subclasses to mutate the tag. |
|
Register this node as a distinct MDNode owned by the LLVMContext. |
Protected Static Member Functions
Name |
Description |
Return the canonical md string. |
|
|
Protected Data Members
Name |
Description |
Storage flag for non‐uniqued, otherwise unowned, metadata. |
|
One bit of subclass‐specific state packed into the metadata header. |
|
Sixteen bits of subclass‐specific state packed into the metadata header. |
|
Thirty‐two bits of subclass‐specific state packed into the metadata header. |
Protected Static Data Members
Name |
Description |
Number of fixed operands shared by all DIType subclasses. |
Non-Member Functions
Name |
Description |
Return the named unroll hint metadata operand from loop id |
|
Lookup or compute a mapping for a piece of metadata. |
|
Version of MapMetadata with type safety for MDNode. |
|
Upgrade a scalar TBAA tag to the struct‐path aware TBAA format. |
|
Compute known bits from the range metadata. |
|
Extract branch weights from MD_prof metadata |
|
Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes. Supports uint32_t. |
|
Faster version of extractBranchWeights() that skips checks and must only be called with "branch_weights" metadata nodes. Supports uint64_t. |
|
Retrieve the total of all weights from MD_prof data. |
|
Find and return the loop attribute node for the attribute |
|
Return the offset to the first branch weight data |
|
Parse out a conservative ConstantRange from !range metadata. |
|
Find subprogram that is enclosing this scope. |
|
Return the number of branch weights stored in |
|
Check if Branch Weight Metadata has an "expected" field from an llvm.expect* intrinsic |
|
Checks if an MDNode contains Branch Weight Metadata |
|
Check whether |
|
Return whether an MDNode might represent an access group. |
|
Checks if an MDNode contains value profiling Metadata |
|
Create a new loop identifier for a loop created from a loop transformation. |
|
Compute the union of two access‐group lists. |
|
Upgrade the loop attachment metadata node. |
|
Wrap a |
|
Returns the allocation type from an MIB metadata node. |
|
Returns the stack node from an MIB metadata node. |
Derived Classes
Name |
Description |
Basic type, like 'int' or 'float'. |
|
Composite types. |
|
Derived types. |
|
String type, Fortran CHARACTER(n) |
|
Subrange type. This is somewhat similar to DISubrange, but it is also a DIType. |
|
Type array for a subprogram. |
Created with MrDocs