summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Zinenko <zinenko@google.com>2019-12-18 09:04:42 -0800
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-12-18 09:10:23 -0800
commit24ab8362f2099ed42f2e05f09fb9323ad0c5ab27 (patch)
tree6f87e1b72a84ee682f5fdf77ee5c21bcf2acc0cf
parentabcf5ff0cc6813764cf9a18789bdef96f369eb3c (diff)
downloadbcm5719-llvm-24ab8362f2099ed42f2e05f09fb9323ad0c5ab27.tar.gz
bcm5719-llvm-24ab8362f2099ed42f2e05f09fb9323ad0c5ab27.zip
Move function template definition to the header file. NFC
The definition of the function template LLVM::ModuleTranslation::lookupValues has been located in a source file. As long as it has been the only file that actually called into the function, this did not cause any problem. However, it creates linking issues if the function is used from other translation units. PiperOrigin-RevId: 286203078
-rw-r--r--mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h10
-rw-r--r--mlir/lib/Target/LLVMIR/ModuleTranslation.cpp11
2 files changed, 9 insertions, 12 deletions
diff --git a/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h b/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
index 288901221db..0b65218fd5d 100644
--- a/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
+++ b/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
@@ -87,8 +87,16 @@ protected:
llvm::IRBuilder<> &builder);
static std::unique_ptr<llvm::Module> prepareLLVMModule(Operation *m);
+ // A helper to look up remapped operands in the value remapping table.
template <typename Range>
- SmallVector<llvm::Value *, 8> lookupValues(Range &&values);
+ SmallVector<llvm::Value *, 8> lookupValues(Range &&values) {
+ SmallVector<llvm::Value *, 8> remapped;
+ remapped.reserve(llvm::size(values));
+ for (Value *v : values) {
+ remapped.push_back(valueMapping.lookup(v));
+ }
+ return remapped;
+ }
private:
/// Check whether the module contains only supported ops directly in its body.
diff --git a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
index f5f9ccabd76..7a7964d71d3 100644
--- a/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
@@ -159,17 +159,6 @@ static llvm::CmpInst::Predicate getLLVMCmpPredicate(FCmpPredicate p) {
llvm_unreachable("incorrect comparison predicate");
}
-// A helper to look up remapped operands in the value remapping table.
-template <typename Range>
-SmallVector<llvm::Value *, 8> ModuleTranslation::lookupValues(Range &&values) {
- SmallVector<llvm::Value *, 8> remapped;
- remapped.reserve(llvm::size(values));
- for (Value *v : values) {
- remapped.push_back(valueMapping.lookup(v));
- }
- return remapped;
-}
-
// Given a single MLIR operation, create the corresponding LLVM IR operation
// using the `builder`. LLVM IR Builder does not have a generic interface so
// this has to be a long chain of `if`s calling different functions with a
OpenPOWER on IntegriCloud