From: Duncan P. N. Exon Smith Date: Fri, 31 Oct 2014 20:13:11 +0000 (+0000) Subject: IR: MDNode => Value: Instruction::setMetadata() X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=815275f5de3ce5d79a1d399d2ba86177c4de1aa5 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 --- diff --git a/include/llvm/IR/IRBuilder.h b/include/llvm/IR/IRBuilder.h index d803bf407e6..35dda0b9aa0 100644 --- a/include/llvm/IR/IRBuilder.h +++ b/include/llvm/IR/IRBuilder.h @@ -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 diff --git a/include/llvm/IR/Instruction.h b/include/llvm/IR/Instruction.h index 4a713ef7df1..4baacba78ed 100644 --- a/include/llvm/IR/Instruction.h +++ b/include/llvm/IR/Instruction.h @@ -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 diff --git a/lib/IR/Metadata.cpp b/lib/IR/Metadata.cpp index cc118496033..24c78fea646 100644 --- a/lib/IR/Metadata.cpp +++ b/lib/IR/Metadata.cpp @@ -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 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(MD); // Handle 'dbg' as a special case since it is not stored in the hash table. if (KindID == LLVMContext::MD_dbg) {