summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2010-08-24 18:50:07 +0000
committerDan Gohman <gohman@apple.com>2010-08-24 18:50:07 +0000
commit05ea54e8869a81b8dd846397175f218f97968907 (patch)
tree5d9f9e714dc70ddb8ca88d4384056198e2faadc3 /include
parent1f1b865c4062365712a1549191482bd6dd174f51 (diff)
downloadllvm-05ea54e8869a81b8dd846397175f218f97968907.tar.gz
llvm-05ea54e8869a81b8dd846397175f218f97968907.tar.bz2
llvm-05ea54e8869a81b8dd846397175f218f97968907.tar.xz
Use MapValue in the Linker instead of having a private function
which does the same thing. This eliminates redundant code and handles MDNodes better. MDNode linking still doesn't fully work yet though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111941 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Transforms/Utils/ValueMapper.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/llvm/Transforms/Utils/ValueMapper.h b/include/llvm/Transforms/Utils/ValueMapper.h
new file mode 100644
index 0000000000..b219e8e59d
--- /dev/null
+++ b/include/llvm/Transforms/Utils/ValueMapper.h
@@ -0,0 +1,29 @@
+//===- ValueMapper.h - Remapping for constants and metadata -----*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines the MapValue interface which is used by various parts of
+// the Transforms/Utils library to implement cloning and linking facilities.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_UTILS_VALUEMAPPER_H
+#define LLVM_TRANSFORMS_UTILS_VALUEMAPPER_H
+
+#include "llvm/ADT/ValueMap.h"
+
+namespace llvm {
+ class Value;
+ class Instruction;
+ typedef ValueMap<const Value *, Value *> ValueToValueMapTy;
+
+ Value *MapValue(const Value *V, ValueToValueMapTy &VM);
+ void RemapInstruction(Instruction *I, ValueToValueMapTy &VM);
+} // End llvm namespace
+
+#endif