IR: MDNode => Value: Instruction::setMetadata()

Change `Instruction::setMetadata()` API to accept `Value` instead of
`MDNode`.  Part of PR21433.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220994 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith 2014-10-31 20:13:11 +00:00
parent 2d32816a45
commit 815275f5de
3 changed files with 13 additions and 10 deletions

View File

@ -23,12 +23,12 @@
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Operator.h"
#include "llvm/IR/ValueHandle.h"
#include "llvm/Support/CBindingWrapping.h"
namespace llvm {
class MDNode;
/// \brief This provides the default implementation of the IRBuilder
/// 'InsertHelper' method that is called whenever an instruction is created by

View File

@ -176,9 +176,9 @@ public:
/// setMetadata - Set the metadata of the specified kind to the specified
/// node. This updates/replaces metadata if already present, or removes it if
/// Node is null.
void setMetadata(unsigned KindID, MDNode *Node);
void setMetadata(StringRef Kind, MDNode *Node);
/// MD is null.
void setMetadata(unsigned KindID, Value *MD);
void setMetadata(StringRef Kind, Value *MD);
/// \brief Drop unknown metadata.
/// Passes are required to drop metadata they don't understand. This is a

View File

@ -600,9 +600,9 @@ StringRef NamedMDNode::getName() const {
// Instruction Metadata method implementations.
//
void Instruction::setMetadata(StringRef Kind, MDNode *Node) {
if (!Node && !hasMetadata()) return;
setMetadata(getContext().getMDKindID(Kind), Node);
void Instruction::setMetadata(StringRef Kind, Value *MD) {
if (!MD && !hasMetadata()) return;
setMetadata(getContext().getMDKindID(Kind), MD);
}
MDNode *Instruction::getMetadataImpl(StringRef Kind) const {
@ -655,9 +655,12 @@ void Instruction::dropUnknownMetadata(ArrayRef<unsigned> KnownIDs) {
/// setMetadata - Set the metadata of of the specified kind to the specified
/// node. This updates/replaces metadata if already present, or removes it if
/// Node is null.
void Instruction::setMetadata(unsigned KindID, MDNode *Node) {
if (!Node && !hasMetadata()) return;
/// MD is null.
void Instruction::setMetadata(unsigned KindID, Value *MD) {
if (!MD && !hasMetadata()) return;
// For now, we only expect MDNodes here.
MDNode *Node = cast<MDNode>(MD);
// Handle 'dbg' as a special case since it is not stored in the hash table.
if (KindID == LLVMContext::MD_dbg) {