From: Frederik Gossen Date: Mon, 2 Nov 2020 16:10:59 +0000 (+0000) Subject: Revert "[MLIR] Use `llvm::is_one_of` in walk templates" X-Git-Tag: llvmorg-13-init~7402 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6b74a5aab11fcc7610e5991de0f1b06b652aea98;p=platform%2Fupstream%2Fllvm.git Revert "[MLIR] Use `llvm::is_one_of` in walk templates" This reverts commit 56299b1e58bf3720dff2fe60163739ee1554a371. Cannot build with gcc/g++ 7.5.0. --- diff --git a/mlir/include/mlir/IR/Visitors.h b/mlir/include/mlir/IR/Visitors.h index 74aabbd..cf7b3fa 100644 --- a/mlir/include/mlir/IR/Visitors.h +++ b/mlir/include/mlir/IR/Visitors.h @@ -92,8 +92,10 @@ WalkResult walk(Operation *op, function_ref callback); template < typename FuncTy, typename ArgT = detail::first_argument, typename RetT = decltype(std::declval()(std::declval()))> -typename std::enable_if< - llvm::is_one_of::value, RetT>::type +typename std::enable_if::value || + std::is_same::value || + std::is_same::value, + RetT>::type walk(Operation *op, FuncTy &&callback) { return walk(op, function_ref(callback)); } @@ -107,10 +109,11 @@ walk(Operation *op, FuncTy &&callback) { template < typename FuncTy, typename ArgT = detail::first_argument, typename RetT = decltype(std::declval()(std::declval()))> -typename std::enable_if< - !llvm::is_one_of::value && - std::is_same::value, - RetT>::type +typename std::enable_if::value && + !std::is_same::value && + !std::is_same::value && + std::is_same::value, + RetT>::type walk(Operation *op, FuncTy &&callback) { auto wrapperFn = [&](Operation *op) { if (auto derivedOp = dyn_cast(op)) @@ -132,10 +135,11 @@ walk(Operation *op, FuncTy &&callback) { template < typename FuncTy, typename ArgT = detail::first_argument, typename RetT = decltype(std::declval()(std::declval()))> -typename std::enable_if< - !llvm::is_one_of::value && - std::is_same::value, - RetT>::type +typename std::enable_if::value && + !std::is_same::value && + !std::is_same::value && + std::is_same::value, + RetT>::type walk(Operation *op, FuncTy &&callback) { auto wrapperFn = [&](Operation *op) { if (auto derivedOp = dyn_cast(op))