index 573e49fbb06954cff94d35f0cd0be83129008153..a010341305c18b1172922f31b0483480a483b545 100644 (file)
Value *V;
protected:
- ValueAsMetadata(LLVMContext &Context, unsigned ID, Value *V)
+ ValueAsMetadata(unsigned ID, Value *V)
: Metadata(ID), V(V) {
assert(V && "Expected valid value");
}
class ConstantAsMetadata : public ValueAsMetadata {
friend class ValueAsMetadata;
- ConstantAsMetadata(LLVMContext &Context, Constant *C)
- : ValueAsMetadata(Context, ConstantAsMetadataKind, C) {}
+ ConstantAsMetadata(Constant *C)
+ : ValueAsMetadata(ConstantAsMetadataKind, C) {}
public:
static ConstantAsMetadata *get(Constant *C) {
class LocalAsMetadata : public ValueAsMetadata {
friend class ValueAsMetadata;
- LocalAsMetadata(LLVMContext &Context, Value *Local)
- : ValueAsMetadata(Context, LocalAsMetadataKind, Local) {
+ LocalAsMetadata(Value *Local)
+ : ValueAsMetadata(LocalAsMetadataKind, Local) {
assert(!isa<Constant>(Local) && "Expected local value");
}
/// \brief Pointer to one byte past the end of the string.
iterator end() const { return getString().end(); }
+ const unsigned char *bytes_begin() const { return getString().bytes_begin(); }
+ const unsigned char *bytes_end() const { return getString().bytes_end(); }
+
/// \brief Methods for support type inquiry through isa, cast, and dyn_cast.
static bool classof(const Metadata *MD) {
return MD->getMetadataID() == MDStringKind;
}
MDNode(LLVMContext &Context, unsigned ID, ArrayRef<Metadata *> MDs);
- ~MDNode() { dropAllReferences(); }
+ ~MDNode() {}
void dropAllReferences();
void storeDistinctInContext();
static MDNode *get(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
return getMDNode(Context, MDs, true);
}
- static MDNode *getWhenValsUnresolved(LLVMContext &Context,
- ArrayRef<Metadata *> MDs) {
- // TODO: Remove this.
- return get(Context, MDs);
- }
static MDNode *getIfExists(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
return getMDNode(Context, MDs, false);
/// collision, the uniquing bit is dropped.
///
/// TODO: Make uniquing opt-out (status: mandatory, sometimes dropped).
-/// TODO: Drop support for RAUW.
class GenericMDNode : public MDNode {
friend class Metadata;
friend class MDNode;
MDNodeFwdDecl(LLVMContext &C, ArrayRef<Metadata *> Vals)
: MDNode(C, MDNodeFwdDeclKind, Vals) {}
- ~MDNodeFwdDecl() {}
+ ~MDNodeFwdDecl() { dropAllReferences(); }
public:
static bool classof(const Metadata *MD) {
MDNode *getOperand(unsigned i) const;
unsigned getNumOperands() const;
void addOperand(MDNode *M);
+ void setOperand(unsigned I, MDNode *New);
StringRef getName() const;
void print(raw_ostream &ROS) const;
void dump() const;