From 0c3923e1dc7ac7cf51f8bf6eff016473cf72ee6c Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Sat, 3 Aug 2019 11:35:22 -0700 Subject: [PATCH] Fix clang 5.0 by using type aliases for LLVM DenseSet/Map When inlining the declaration for llvm::DenseSet/DenseMap in the mlir namespace from a forward declaration, clang does not take the default for the template parameters if their are declared later. namespace llvm { template class DenseMap; } namespace mlir { using llvm::DenseMap; } namespace llvm { template class DenseMap {}; } namespace mlir { DenseMap<> map; } PiperOrigin-RevId: 261495612 --- mlir/include/mlir/Support/LLVM.h | 8 ++++++-- mlir/lib/Analysis/SliceAnalysis.cpp | 2 +- mlir/lib/Transforms/MaterializeVectors.cpp | 1 - mlir/lib/Transforms/Vectorize.cpp | 1 - 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/mlir/include/mlir/Support/LLVM.h b/mlir/include/mlir/Support/LLVM.h index ff7335bb2b9d..f0dd1216652a 100644 --- a/mlir/include/mlir/Support/LLVM.h +++ b/mlir/include/mlir/Support/LLVM.h @@ -73,9 +73,13 @@ using llvm::isa_and_nonnull; // Containers. using llvm::ArrayRef; -using llvm::DenseMap; using llvm::DenseMapInfo; -using llvm::DenseSet; +template , + typename BucketT = llvm::detail::DenseMapPair> +using DenseMap = llvm::DenseMap; +template > +using DenseSet = llvm::DenseSet; using llvm::MutableArrayRef; using llvm::None; using llvm::Optional; diff --git a/mlir/lib/Analysis/SliceAnalysis.cpp b/mlir/lib/Analysis/SliceAnalysis.cpp index 68ab2d30612c..c240d779c440 100644 --- a/mlir/lib/Analysis/SliceAnalysis.cpp +++ b/mlir/lib/Analysis/SliceAnalysis.cpp @@ -26,6 +26,7 @@ #include "mlir/IR/Function.h" #include "mlir/IR/Operation.h" #include "mlir/Support/Functional.h" +#include "mlir/Support/LLVM.h" #include "mlir/Support/STLExtras.h" #include "llvm/ADT/SetVector.h" @@ -35,7 +36,6 @@ using namespace mlir; -using llvm::DenseSet; using llvm::SetVector; static void getForwardSliceImpl(Operation *op, diff --git a/mlir/lib/Transforms/MaterializeVectors.cpp b/mlir/lib/Transforms/MaterializeVectors.cpp index da8fc69fc0a8..d3458011b37b 100644 --- a/mlir/lib/Transforms/MaterializeVectors.cpp +++ b/mlir/lib/Transforms/MaterializeVectors.cpp @@ -143,7 +143,6 @@ /// ``` using llvm::dbgs; -using llvm::DenseSet; using llvm::SetVector; using namespace mlir; diff --git a/mlir/lib/Transforms/Vectorize.cpp b/mlir/lib/Transforms/Vectorize.cpp index 43a6a2f7a82c..9470ca56e5ad 100644 --- a/mlir/lib/Transforms/Vectorize.cpp +++ b/mlir/lib/Transforms/Vectorize.cpp @@ -539,7 +539,6 @@ using namespace mlir; using functional::makePtrDynCaster; using functional::map; using llvm::dbgs; -using llvm::DenseSet; using llvm::SetVector; static llvm::cl::OptionCategory clOptionsCategory("vectorize options");