|
LLVM
3.7.0
|
#include "llvm/IR/Metadata.h"#include "LLVMContextImpl.h"#include "MetadataImpl.h"#include "SymbolTableListTraitsImpl.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallSet.h"#include "llvm/ADT/SmallString.h"#include "llvm/ADT/StringMap.h"#include "llvm/IR/ConstantRange.h"#include "llvm/IR/DebugInfoMetadata.h"#include "llvm/IR/Instruction.h"#include "llvm/IR/LLVMContext.h"#include "llvm/IR/Module.h"#include "llvm/IR/ValueHandle.h"#include "llvm/IR/Metadata.def"Go to the source code of this file.
Classes | |
| struct | llvm::MDNode::HasCachedHash< NodeTy > |
| struct | llvm::MDNode::HasCachedHash< NodeTy >::SFINAE< U, Val > |
Macros | |
| #define | HANDLE_METADATA_LEAF(CLASS) |
| #define | HANDLE_MDNODE_LEAF(CLASS) |
| #define | HANDLE_MDNODE_LEAF(CLASS) |
| #define | HANDLE_MDNODE_LEAF(CLASS) |
| #define | HANDLE_MDNODE_LEAF(CLASS) |
| #define | HANDLE_MDNODE_LEAF(CLASS) |
| #define | HANDLE_MDNODE_LEAF(CLASS) |
Functions | |
| static Metadata * | canonicalizeMetadataForValue (LLVMContext &Context, Metadata *MD) |
| Canonicalize metadata arguments to intrinsics. More... | |
| static Function * | getLocalFunction (Value *V) |
| static bool | isOperandUnresolved (Metadata *Op) |
| static bool | hasSelfReference (MDNode *N) |
| template<class T , class InfoT > | |
| static T * | uniquifyImpl (T *N, DenseSet< T *, InfoT > &Store) |
| static MDNode * | getOrSelfReference (LLVMContext &Context, ArrayRef< Metadata * > Ops) |
| Get a node, or a self-reference that looks like it. More... | |
| static bool | isContiguous (const ConstantRange &A, const ConstantRange &B) |
| static bool | canBeMerged (const ConstantRange &A, const ConstantRange &B) |
| static bool | tryMergeRange (SmallVectorImpl< ConstantInt * > &EndPoints, ConstantInt *Low, ConstantInt *High) |
| static void | addRange (SmallVectorImpl< ConstantInt * > &EndPoints, ConstantInt *Low, ConstantInt *High) |
| static SmallVector < TrackingMDRef, 4 > & | getNMDOps (void *Operands) |
| #define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 386 of file Metadata.cpp.
| #define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 386 of file Metadata.cpp.
| #define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 386 of file Metadata.cpp.
| #define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 386 of file Metadata.cpp.
| #define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 386 of file Metadata.cpp.
| #define HANDLE_MDNODE_LEAF | ( | CLASS | ) |
Definition at line 386 of file Metadata.cpp.
| #define HANDLE_METADATA_LEAF | ( | CLASS | ) |
|
static |
Definition at line 862 of file Metadata.cpp.
References llvm::SmallVectorBase::empty(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and tryMergeRange().
Referenced by llvm::MDNode::getMostGenericRange().
|
static |
Definition at line 839 of file Metadata.cpp.
References llvm::ConstantRange::intersectWith(), isContiguous(), and llvm::ConstantRange::isEmptySet().
Referenced by tryMergeRange().
|
static |
Canonicalize metadata arguments to intrinsics.
To support bitcode upgrades (and assembly semantic sugar) for MetadataAsValue, we need to canonicalize certain metadata.
This maintains readability of bitcode from when metadata was a type of value, and these bridges were unnecessary.
Definition at line 53 of file Metadata.cpp.
References llvm::dyn_cast(), llvm::MDNode::get(), N, and llvm::None.
Referenced by llvm::MetadataAsValue::get(), and llvm::MetadataAsValue::getIfExists().
Definition at line 242 of file Metadata.cpp.
References llvm::ARM_PROC::A, and getParent().
Referenced by llvm::ValueAsMetadata::handleRAUW().
|
static |
Definition at line 948 of file Metadata.cpp.
Referenced by llvm::NamedMDNode::addOperand(), llvm::NamedMDNode::dropAllReferences(), llvm::NamedMDNode::getNumOperands(), llvm::NamedMDNode::getOperand(), llvm::NamedMDNode::setOperand(), and llvm::NamedMDNode::~NamedMDNode().
|
static |
Get a node, or a self-reference that looks like it.
Special handling for finding self-references, for use by MDNode::concatenate() and MDNode::intersect() to maintain behaviour from when self-referencing nodes were still uniqued. If the first operand has the same operands as Ops, return the first operand instead.
Definition at line 766 of file Metadata.cpp.
References llvm::ArrayRef< T >::empty(), llvm::MDNode::get(), I, N, and llvm::ArrayRef< T >::size().
Referenced by llvm::MDNode::concatenate(), llvm::MDNode::getMostGenericAliasScope(), and llvm::MDNode::intersect().
Definition at line 540 of file Metadata.cpp.
References llvm::MDNode::operands().
|
static |
Definition at line 835 of file Metadata.cpp.
References llvm::ConstantRange::getLower(), and llvm::ConstantRange::getUpper().
Referenced by canBeMerged().
Definition at line 448 of file Metadata.cpp.
References N.
|
static |
Definition at line 843 of file Metadata.cpp.
References canBeMerged(), llvm::ConstantInt::get(), llvm::ConstantRange::getLower(), llvm::ConstantInt::getType(), llvm::ConstantRange::getUpper(), llvm::ConstantInt::getValue(), llvm::AArch64CC::LE, llvm::SmallVectorTemplateCommon< T >::size(), llvm::Union, and llvm::ConstantRange::unionWith().
Referenced by addRange(), and llvm::MDNode::getMostGenericRange().
|
static |
Definition at line 648 of file Metadata.cpp.
References llvm::getUniqued(), llvm::DenseSet< ValueT, ValueInfoT >::insert(), and N.
1.8.6