From 74278dd01e5713920a35f1c3e0731e535667c19a Mon Sep 17 00:00:00 2001 From: River Riddle Date: Tue, 17 Dec 2019 14:57:07 -0800 Subject: NFC: Use TypeSwitch to simplify existing code. PiperOrigin-RevId: 286066371 --- .../StandardToLLVM/ConvertStandardToLLVM.cpp | 33 +++++++++------------- 1 file changed, 14 insertions(+), 19 deletions(-) (limited to 'mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp') diff --git a/mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp b/mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp index 51cdd7270d9..5d6a92fee92 100644 --- a/mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp +++ b/mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp @@ -21,6 +21,7 @@ //===----------------------------------------------------------------------===// #include "mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h" +#include "mlir/ADT/TypeSwitch.h" #include "mlir/Conversion/LoopToStandard/ConvertLoopToStandard.h" #include "mlir/Conversion/StandardToLLVM/ConvertStandardToLLVMPass.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" @@ -232,25 +233,19 @@ Type LLVMTypeConverter::convertVectorType(VectorType type) { } // Dispatch based on the actual type. Return null type on error. -Type LLVMTypeConverter::convertStandardType(Type type) { - if (auto funcType = type.dyn_cast()) - return convertFunctionType(funcType); - if (auto intType = type.dyn_cast()) - return convertIntegerType(intType); - if (auto floatType = type.dyn_cast()) - return convertFloatType(floatType); - if (auto indexType = type.dyn_cast()) - return convertIndexType(indexType); - if (auto memRefType = type.dyn_cast()) - return convertMemRefType(memRefType); - if (auto memRefType = type.dyn_cast()) - return convertUnrankedMemRefType(memRefType); - if (auto vectorType = type.dyn_cast()) - return convertVectorType(vectorType); - if (auto llvmType = type.dyn_cast()) - return llvmType; - - return {}; +Type LLVMTypeConverter::convertStandardType(Type t) { + return TypeSwitch(t) + .Case([&](FloatType type) { return convertFloatType(type); }) + .Case([&](FunctionType type) { return convertFunctionType(type); }) + .Case([&](IndexType type) { return convertIndexType(type); }) + .Case([&](IntegerType type) { return convertIntegerType(type); }) + .Case([&](MemRefType type) { return convertMemRefType(type); }) + .Case([&](UnrankedMemRefType type) { + return convertUnrankedMemRefType(type); + }) + .Case([&](VectorType type) { return convertVectorType(type); }) + .Case([](LLVM::LLVMType type) { return type; }) + .Default([](Type) { return Type(); }); } LLVMOpLowering::LLVMOpLowering(StringRef rootOpName, MLIRContext *context, -- cgit v1.2.3