/// isValidName - Return true if Name is a valid custom metadata handler name.
static bool isValidName(StringRef Name);
- /// copyMD - If metadata is attached with Instruction In1 then attach
- /// the same metadata to In2.
- void copyMD(Instruction *In1, Instruction *In2);
-
/// getMDKindNames - Populate client supplied SmallVector with the name for
/// each custom metadata ID. ID #0 is not used, so it is filled in as empty.
void getMDKindNames(SmallVectorImpl<StringRef> &) const;
/// removeAllMetadata - Remove all metadata attached to an instruction.
void removeAllMetadata(Instruction *Inst);
-
- /// copyMD - If metadata is attached with Instruction In1 then attach
- /// the same metadata to In2.
- void copyMD(Instruction *In1, Instruction *In2);
};
}
}
-/// copyMD - If metadata is attached with Instruction In1 then attach
-/// the same metadata to In2.
-void MetadataContextImpl::copyMD(Instruction *In1, Instruction *In2) {
- assert(In1 && In2 && "Invalid instruction!");
- MDMapTy &In1Info = MetadataStore[In1];
- if (In1Info.empty())
- return;
-
- for (MDMapTy::iterator I = In1Info.begin(), E = In1Info.end(); I != E; ++I)
- In2->setMetadata(I->first, I->second);
-}
-
//===----------------------------------------------------------------------===//
// MetadataContext implementation.
//
return pImpl->getMDKindID(Name);
}
-/// copyMD - If metadata is attached with Instruction In1 then attach
-/// the same metadata to In2.
-void MetadataContext::copyMD(Instruction *In1, Instruction *In2) {
- pImpl->copyMD(In1, In2);
-}
-
/// getHandlerNames - Populate client supplied smallvector using custome
/// metadata name and ID.
void MetadataContext::getMDKindNames(SmallVectorImpl<StringRef> &N) const {