diff --git a/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVEnums.h b/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVEnums.h index 72aa8644981c7..0ec78bfe3b9f5 100644 --- a/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVEnums.h +++ b/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVEnums.h @@ -52,6 +52,10 @@ ArrayRef getDirectImpliedCapabilities(Capability cap); /// third one will also be returned. SmallVector getRecursiveImpliedCapabilities(Capability cap); +/// Converts a SPIR-V Decoration enum value to its snake_case string +/// representation for use in MLIR attributes. +std::string getDecorationString(Decoration decoration); + } // namespace spirv } // namespace mlir diff --git a/mlir/lib/Conversion/SPIRVCommon/Pattern.h b/mlir/lib/Conversion/SPIRVCommon/Pattern.h index 2ea54baaf8953..d947d483f2dd5 100644 --- a/mlir/lib/Conversion/SPIRVCommon/Pattern.h +++ b/mlir/lib/Conversion/SPIRVCommon/Pattern.h @@ -13,23 +13,11 @@ #include "mlir/Dialect/SPIRV/IR/SPIRVOpTraits.h" #include "mlir/IR/TypeUtilities.h" #include "mlir/Transforms/DialectConversion.h" -#include "llvm/ADT/StringExtras.h" #include "llvm/Support/FormatVariadic.h" -#include namespace mlir { namespace spirv { -//===----------------------------------------------------------------------===// -// Utility Functions -//===----------------------------------------------------------------------===// - -/// Converts a SPIR-V Decoration enum value to its snake_case string -/// representation for use in MLIR attributes. -inline std::string getDecorationString(spirv::Decoration decor) { - return llvm::convertToSnakeFromCamelCase(stringifyDecoration(decor)); -} - /// Converts elementwise unary, binary and ternary standard operations to SPIR-V /// operations. template diff --git a/mlir/lib/Dialect/SPIRV/IR/MemoryOps.cpp b/mlir/lib/Dialect/SPIRV/IR/MemoryOps.cpp index e3187d3dc1901..a49bcff441b9d 100644 --- a/mlir/lib/Dialect/SPIRV/IR/MemoryOps.cpp +++ b/mlir/lib/Dialect/SPIRV/IR/MemoryOps.cpp @@ -657,8 +657,7 @@ LogicalResult VariableOp::verify() { } auto getDecorationAttr = [op = getOperation()](spirv::Decoration decoration) { - return op->getAttr( - llvm::convertToSnakeFromCamelCase(stringifyDecoration(decoration))); + return op->getAttr(spirv::getDecorationString(decoration)); }; // TODO: generate these strings using ODS. @@ -667,8 +666,7 @@ LogicalResult VariableOp::verify() { spirv::Decoration::BuiltIn}) { if (auto attr = getDecorationAttr(decoration)) return emitOpError("cannot have '") - << llvm::convertToSnakeFromCamelCase( - stringifyDecoration(decoration)) + << spirv::getDecorationString(decoration) << "' attribute (only allowed in spirv.GlobalVariable)"; } diff --git a/mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp b/mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp index 22b57d6c0821a..7c3bfd72115e6 100644 --- a/mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp +++ b/mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp @@ -141,7 +141,7 @@ void SPIRVDialect::initialize() { } std::string SPIRVDialect::getAttributeName(Decoration decoration) { - return llvm::convertToSnakeFromCamelCase(stringifyDecoration(decoration)); + return getDecorationString(decoration); } //===----------------------------------------------------------------------===// diff --git a/mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp b/mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp index c7541613a52f3..3cab289998763 100644 --- a/mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp +++ b/mlir/lib/Dialect/SPIRV/IR/SPIRVEnums.cpp @@ -101,3 +101,7 @@ spirv::getRecursiveImpliedCapabilities(spirv::Capability cap) { return allCaps.takeVector(); } + +std::string spirv::getDecorationString(spirv::Decoration decoration) { + return llvm::convertToSnakeFromCamelCase(stringifyDecoration(decoration)); +}