LLVM
8.0.1
|
Metadata wrapper in the Value hierarchy. More...
#include "llvm/IR/Metadata.h"
Static Public Member Functions | |
static MetadataAsValue * | get (LLVMContext &Context, Metadata *MD) |
static MetadataAsValue * | getIfExists (LLVMContext &Context, Metadata *MD) |
static bool | classof (const Value *V) |
Friends | |
class | ReplaceableMetadataImpl |
class | LLVMContextImpl |
Additional Inherited Members | |
![]() | |
enum | ValueTy |
Concrete subclass of this. More... | |
using | use_iterator = use_iterator_impl< Use > |
using | const_use_iterator = use_iterator_impl< const Use > |
using | user_iterator = user_iterator_impl< User > |
using | const_user_iterator = user_iterator_impl< const User > |
![]() | |
static const unsigned | MaxAlignmentExponent = 29 |
The maximum alignment for instructions. More... | |
static const unsigned | MaximumAlignment = 1u << MaxAlignmentExponent |
![]() | |
enum | : unsigned { NumUserOperandsBits = 28 } |
The number of operands in the subclass. More... | |
![]() | |
Value (Type *Ty, unsigned scid) | |
~Value () | |
Value's destructor should be virtual by design, but that would require that Value and all of its subclasses have a vtable that effectively duplicates the information in the value ID. More... | |
unsigned short | getSubclassDataFromValue () const |
void | setValueSubclassData (unsigned short D) |
![]() | |
unsigned char | SubclassOptionalData: 7 |
Hold subclass data that can be dropped. More... | |
unsigned | NumUserOperands: NumUserOperandsBits |
unsigned | IsUsedByMD: 1 |
unsigned | HasName: 1 |
unsigned | HasHungOffUses: 1 |
unsigned | HasDescriptor: 1 |
Metadata wrapper in the Value hierarchy.
A member of the Value hierarchy to represent a reference to metadata. This allows, e.g., instrinsics to have metadata as operands.
Notably, this is the only thing in either hierarchy that is allowed to reference LocalAsMetadata.
Definition at line 174 of file Metadata.h.
MetadataAsValue::~MetadataAsValue | ( | ) |
Definition at line 68 of file Metadata.cpp.
References getType().
Definition at line 193 of file Metadata.h.
References llvm::Value::getValueID().
|
static |
Definition at line 106 of file Metadata.cpp.
References canonicalizeMetadataForValue(), llvm::Type::getMetadataTy(), llvm::LLVMContextImpl::MetadataAsValues, and llvm::LLVMContext::pImpl.
Referenced by llvm::formLCSSAForInstructions(), FunctionNumber(), getDbgIntrinsicValueImpl(), getDeclareIntrin(), getMDNodeOperandImpl(), llvm::insertDebugValuesForPHIs(), LLVMGetCurrentDebugLocation(), LLVMGetMetadata(), LLVMGetNamedMetadataOperands(), LLVMMDNodeInContext(), LLVMMDStringInContext(), LLVMMetadataAsValue(), operator<<(), readTriple(), llvm::remapInstruction(), llvm::replaceDbgUsesWithUndef(), rewriteDebugUsers(), RewriteUsesOfClonedInstructions(), llvm::salvageDebugInfo(), truncateIVUse(), llvm::InstCombiner::visitCallInst(), and wrapValueInMetadata().
|
static |
Definition at line 114 of file Metadata.cpp.
References assert(), canonicalizeMetadataForValue(), llvm::LLVMContextImpl::MetadataAsValues, llvm::LLVMContext::pImpl, llvm::Ref, llvm::SPII::Store, llvm::MetadataTracking::track(), and llvm::MetadataTracking::untrack().
Referenced by llvm::FindDbgAddrUses(), llvm::findDbgUsers(), llvm::findDbgValues(), mergeInlinedArrayAllocas(), and llvm::replaceDbgValueForAlloca().
|
inline |
Definition at line 191 of file Metadata.h.
Referenced by extractMDNode(), and forEachUser().
|
friend |
Definition at line 176 of file Metadata.h.
|
friend |
Definition at line 175 of file Metadata.h.