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 | |
Public Types inherited from llvm::Value | |
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 Public Attributes inherited from llvm::Value | |
static const unsigned | MaxAlignmentExponent = 29 |
The maximum alignment for instructions. More... | |
static const unsigned | MaximumAlignment = 1u << MaxAlignmentExponent |
Protected Types inherited from llvm::Value | |
enum | : unsigned { NumUserOperandsBits = 28 } |
The number of operands in the subclass. More... | |
Protected Member Functions inherited from llvm::Value | |
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) |
Protected Attributes inherited from llvm::Value | |
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.