MLIR 22.0.0git
SerializeOps.cpp File Reference
#include "Serializer.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVAttributes.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVEnums.h"
#include "mlir/IR/RegionGraphTraits.h"
#include "mlir/Target/SPIRV/SPIRVBinaryUtils.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/Debug.h"
#include "mlir/Dialect/SPIRV/IR/SPIRVSerialization.inc"

Go to the source code of this file.

Namespaces

namespace  mlir
 Include the generated interface declarations.
namespace  mlir::spirv

Macros

#define DEBUG_TYPE   "spirv-serialization"
#define GET_SERIALIZATION_FNS

Functions

static LogicalResult visitInPrettyBlockOrder (Block *headerBlock, function_ref< LogicalResult(Block *)> blockHandler, bool skipHeader=false, BlockRange skipBlocks={})
 A pre-order depth-first visitor function for processing basic blocks.
template<>
LogicalResult mlir::spirv::Serializer::processOp< spirv::EntryPointOp > (spirv::EntryPointOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp< spirv::ExecutionModeOp > (spirv::ExecutionModeOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp< spirv::FunctionCallOp > (spirv::FunctionCallOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp< spirv::CopyMemoryOp > (spirv::CopyMemoryOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp< spirv::GenericCastToPtrExplicitOp > (spirv::GenericCastToPtrExplicitOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AccessChainOp > (::mlir::spirv::AccessChainOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicAndOp > (::mlir::spirv::AtomicAndOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicCompareExchangeOp > (::mlir::spirv::AtomicCompareExchangeOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicCompareExchangeWeakOp > (::mlir::spirv::AtomicCompareExchangeWeakOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicExchangeOp > (::mlir::spirv::AtomicExchangeOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicIAddOp > (::mlir::spirv::AtomicIAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicIDecrementOp > (::mlir::spirv::AtomicIDecrementOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicIIncrementOp > (::mlir::spirv::AtomicIIncrementOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicISubOp > (::mlir::spirv::AtomicISubOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicOrOp > (::mlir::spirv::AtomicOrOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicSMaxOp > (::mlir::spirv::AtomicSMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicSMinOp > (::mlir::spirv::AtomicSMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicUMaxOp > (::mlir::spirv::AtomicUMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicUMinOp > (::mlir::spirv::AtomicUMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::AtomicXorOp > (::mlir::spirv::AtomicXorOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitCountOp > (::mlir::spirv::BitCountOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitFieldInsertOp > (::mlir::spirv::BitFieldInsertOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitFieldSExtractOp > (::mlir::spirv::BitFieldSExtractOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitFieldUExtractOp > (::mlir::spirv::BitFieldUExtractOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitReverseOp > (::mlir::spirv::BitReverseOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitcastOp > (::mlir::spirv::BitcastOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitwiseAndOp > (::mlir::spirv::BitwiseAndOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitwiseOrOp > (::mlir::spirv::BitwiseOrOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::BitwiseXorOp > (::mlir::spirv::BitwiseXorOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLAcosOp > (::mlir::spirv::CLAcosOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLAcoshOp > (::mlir::spirv::CLAcoshOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLAsinOp > (::mlir::spirv::CLAsinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLAsinhOp > (::mlir::spirv::CLAsinhOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLAtan2Op > (::mlir::spirv::CLAtan2Op op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLAtanOp > (::mlir::spirv::CLAtanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLAtanhOp > (::mlir::spirv::CLAtanhOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLCeilOp > (::mlir::spirv::CLCeilOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLCosOp > (::mlir::spirv::CLCosOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLCoshOp > (::mlir::spirv::CLCoshOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLErfOp > (::mlir::spirv::CLErfOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLExpOp > (::mlir::spirv::CLExpOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLFAbsOp > (::mlir::spirv::CLFAbsOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLFMaxOp > (::mlir::spirv::CLFMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLFMinOp > (::mlir::spirv::CLFMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLFloorOp > (::mlir::spirv::CLFloorOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLFmaOp > (::mlir::spirv::CLFmaOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLLogOp > (::mlir::spirv::CLLogOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLMixOp > (::mlir::spirv::CLMixOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLPowOp > (::mlir::spirv::CLPowOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLPrintfOp > (::mlir::spirv::CLPrintfOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLRintOp > (::mlir::spirv::CLRintOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLRoundOp > (::mlir::spirv::CLRoundOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLRsqrtOp > (::mlir::spirv::CLRsqrtOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLSAbsOp > (::mlir::spirv::CLSAbsOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLSMaxOp > (::mlir::spirv::CLSMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLSMinOp > (::mlir::spirv::CLSMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLSinOp > (::mlir::spirv::CLSinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLSinhOp > (::mlir::spirv::CLSinhOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLSqrtOp > (::mlir::spirv::CLSqrtOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLTanOp > (::mlir::spirv::CLTanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLTanhOp > (::mlir::spirv::CLTanhOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLUMaxOp > (::mlir::spirv::CLUMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CLUMinOp > (::mlir::spirv::CLUMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CompositeConstructOp > (::mlir::spirv::CompositeConstructOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CompositeExtractOp > (::mlir::spirv::CompositeExtractOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::CompositeInsertOp > (::mlir::spirv::CompositeInsertOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ControlBarrierOp > (::mlir::spirv::ControlBarrierOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ConvertFToSOp > (::mlir::spirv::ConvertFToSOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ConvertFToUOp > (::mlir::spirv::ConvertFToUOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ConvertPtrToUOp > (::mlir::spirv::ConvertPtrToUOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ConvertSToFOp > (::mlir::spirv::ConvertSToFOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ConvertUToFOp > (::mlir::spirv::ConvertUToFOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ConvertUToPtrOp > (::mlir::spirv::ConvertUToPtrOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::DotOp > (::mlir::spirv::DotOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::EXTAtomicFAddOp > (::mlir::spirv::EXTAtomicFAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::EXTEmitMeshTasksOp > (::mlir::spirv::EXTEmitMeshTasksOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::EXTSetMeshOutputsOp > (::mlir::spirv::EXTSetMeshOutputsOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::EmitVertexOp > (::mlir::spirv::EmitVertexOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::EndPrimitiveOp > (::mlir::spirv::EndPrimitiveOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FAddOp > (::mlir::spirv::FAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FConvertOp > (::mlir::spirv::FConvertOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FDivOp > (::mlir::spirv::FDivOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FModOp > (::mlir::spirv::FModOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FMulOp > (::mlir::spirv::FMulOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FNegateOp > (::mlir::spirv::FNegateOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FOrdEqualOp > (::mlir::spirv::FOrdEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FOrdGreaterThanEqualOp > (::mlir::spirv::FOrdGreaterThanEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FOrdGreaterThanOp > (::mlir::spirv::FOrdGreaterThanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FOrdLessThanEqualOp > (::mlir::spirv::FOrdLessThanEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FOrdLessThanOp > (::mlir::spirv::FOrdLessThanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FOrdNotEqualOp > (::mlir::spirv::FOrdNotEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FRemOp > (::mlir::spirv::FRemOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FSubOp > (::mlir::spirv::FSubOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FUnordEqualOp > (::mlir::spirv::FUnordEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FUnordGreaterThanEqualOp > (::mlir::spirv::FUnordGreaterThanEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FUnordGreaterThanOp > (::mlir::spirv::FUnordGreaterThanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FUnordLessThanEqualOp > (::mlir::spirv::FUnordLessThanEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FUnordLessThanOp > (::mlir::spirv::FUnordLessThanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::FUnordNotEqualOp > (::mlir::spirv::FUnordNotEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLAcosOp > (::mlir::spirv::GLAcosOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLAcoshOp > (::mlir::spirv::GLAcoshOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLAsinOp > (::mlir::spirv::GLAsinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLAsinhOp > (::mlir::spirv::GLAsinhOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLAtanOp > (::mlir::spirv::GLAtanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLAtanhOp > (::mlir::spirv::GLAtanhOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLCeilOp > (::mlir::spirv::GLCeilOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLCosOp > (::mlir::spirv::GLCosOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLCoshOp > (::mlir::spirv::GLCoshOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLCrossOp > (::mlir::spirv::GLCrossOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLDistanceOp > (::mlir::spirv::GLDistanceOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLExp2Op > (::mlir::spirv::GLExp2Op op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLExpOp > (::mlir::spirv::GLExpOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFAbsOp > (::mlir::spirv::GLFAbsOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFClampOp > (::mlir::spirv::GLFClampOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFMaxOp > (::mlir::spirv::GLFMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFMinOp > (::mlir::spirv::GLFMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFMixOp > (::mlir::spirv::GLFMixOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFSignOp > (::mlir::spirv::GLFSignOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFindILsbOp > (::mlir::spirv::GLFindILsbOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFindSMsbOp > (::mlir::spirv::GLFindSMsbOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFindUMsbOp > (::mlir::spirv::GLFindUMsbOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFloorOp > (::mlir::spirv::GLFloorOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFmaOp > (::mlir::spirv::GLFmaOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFractOp > (::mlir::spirv::GLFractOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLFrexpStructOp > (::mlir::spirv::GLFrexpStructOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLInverseSqrtOp > (::mlir::spirv::GLInverseSqrtOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLLdexpOp > (::mlir::spirv::GLLdexpOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLLengthOp > (::mlir::spirv::GLLengthOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLLog2Op > (::mlir::spirv::GLLog2Op op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLLogOp > (::mlir::spirv::GLLogOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLNormalizeOp > (::mlir::spirv::GLNormalizeOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLPackHalf2x16Op > (::mlir::spirv::GLPackHalf2x16Op op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLPowOp > (::mlir::spirv::GLPowOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLReflectOp > (::mlir::spirv::GLReflectOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLRoundEvenOp > (::mlir::spirv::GLRoundEvenOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLRoundOp > (::mlir::spirv::GLRoundOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLSAbsOp > (::mlir::spirv::GLSAbsOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLSClampOp > (::mlir::spirv::GLSClampOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLSMaxOp > (::mlir::spirv::GLSMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLSMinOp > (::mlir::spirv::GLSMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLSSignOp > (::mlir::spirv::GLSSignOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLSinOp > (::mlir::spirv::GLSinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLSinhOp > (::mlir::spirv::GLSinhOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLSqrtOp > (::mlir::spirv::GLSqrtOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLTanOp > (::mlir::spirv::GLTanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLTanhOp > (::mlir::spirv::GLTanhOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLUClampOp > (::mlir::spirv::GLUClampOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLUMaxOp > (::mlir::spirv::GLUMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLUMinOp > (::mlir::spirv::GLUMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GLUnpackHalf2x16Op > (::mlir::spirv::GLUnpackHalf2x16Op op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GenericCastToPtrOp > (::mlir::spirv::GenericCastToPtrOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupBroadcastOp > (::mlir::spirv::GroupBroadcastOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupFAddOp > (::mlir::spirv::GroupFAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupFMaxOp > (::mlir::spirv::GroupFMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupFMinOp > (::mlir::spirv::GroupFMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupFMulKHROp > (::mlir::spirv::GroupFMulKHROp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupIAddOp > (::mlir::spirv::GroupIAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupIMulKHROp > (::mlir::spirv::GroupIMulKHROp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformAllEqualOp > (::mlir::spirv::GroupNonUniformAllEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformAllOp > (::mlir::spirv::GroupNonUniformAllOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformAnyOp > (::mlir::spirv::GroupNonUniformAnyOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformBallotBitCountOp > (::mlir::spirv::GroupNonUniformBallotBitCountOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformBallotFindLSBOp > (::mlir::spirv::GroupNonUniformBallotFindLSBOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformBallotFindMSBOp > (::mlir::spirv::GroupNonUniformBallotFindMSBOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformBallotOp > (::mlir::spirv::GroupNonUniformBallotOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformBitwiseAndOp > (::mlir::spirv::GroupNonUniformBitwiseAndOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformBitwiseOrOp > (::mlir::spirv::GroupNonUniformBitwiseOrOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformBitwiseXorOp > (::mlir::spirv::GroupNonUniformBitwiseXorOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformBroadcastOp > (::mlir::spirv::GroupNonUniformBroadcastOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformElectOp > (::mlir::spirv::GroupNonUniformElectOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformFAddOp > (::mlir::spirv::GroupNonUniformFAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformFMaxOp > (::mlir::spirv::GroupNonUniformFMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformFMinOp > (::mlir::spirv::GroupNonUniformFMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformFMulOp > (::mlir::spirv::GroupNonUniformFMulOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformIAddOp > (::mlir::spirv::GroupNonUniformIAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformIMulOp > (::mlir::spirv::GroupNonUniformIMulOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformLogicalAndOp > (::mlir::spirv::GroupNonUniformLogicalAndOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformLogicalOrOp > (::mlir::spirv::GroupNonUniformLogicalOrOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformLogicalXorOp > (::mlir::spirv::GroupNonUniformLogicalXorOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformRotateKHROp > (::mlir::spirv::GroupNonUniformRotateKHROp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformSMaxOp > (::mlir::spirv::GroupNonUniformSMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformSMinOp > (::mlir::spirv::GroupNonUniformSMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformShuffleDownOp > (::mlir::spirv::GroupNonUniformShuffleDownOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformShuffleOp > (::mlir::spirv::GroupNonUniformShuffleOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformShuffleUpOp > (::mlir::spirv::GroupNonUniformShuffleUpOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformShuffleXorOp > (::mlir::spirv::GroupNonUniformShuffleXorOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformUMaxOp > (::mlir::spirv::GroupNonUniformUMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupNonUniformUMinOp > (::mlir::spirv::GroupNonUniformUMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupSMaxOp > (::mlir::spirv::GroupSMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupSMinOp > (::mlir::spirv::GroupSMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupUMaxOp > (::mlir::spirv::GroupUMaxOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::GroupUMinOp > (::mlir::spirv::GroupUMinOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::IAddCarryOp > (::mlir::spirv::IAddCarryOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::IAddOp > (::mlir::spirv::IAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::IEqualOp > (::mlir::spirv::IEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::IMulOp > (::mlir::spirv::IMulOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::INTELControlBarrierArriveOp > (::mlir::spirv::INTELControlBarrierArriveOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::INTELControlBarrierWaitOp > (::mlir::spirv::INTELControlBarrierWaitOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::INTELConvertBF16ToFOp > (::mlir::spirv::INTELConvertBF16ToFOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::INTELConvertFToBF16Op > (::mlir::spirv::INTELConvertFToBF16Op op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::INTELRoundFToTF32Op > (::mlir::spirv::INTELRoundFToTF32Op op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::INTELSubgroupBlockReadOp > (::mlir::spirv::INTELSubgroupBlockReadOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::INTELSubgroupBlockWriteOp > (::mlir::spirv::INTELSubgroupBlockWriteOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::INotEqualOp > (::mlir::spirv::INotEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ISubBorrowOp > (::mlir::spirv::ISubBorrowOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ISubOp > (::mlir::spirv::ISubOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageDrefGatherOp > (::mlir::spirv::ImageDrefGatherOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageFetchOp > (::mlir::spirv::ImageFetchOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageOp > (::mlir::spirv::ImageOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageQuerySizeOp > (::mlir::spirv::ImageQuerySizeOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageReadOp > (::mlir::spirv::ImageReadOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageSampleExplicitLodOp > (::mlir::spirv::ImageSampleExplicitLodOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageSampleImplicitLodOp > (::mlir::spirv::ImageSampleImplicitLodOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageSampleProjDrefImplicitLodOp > (::mlir::spirv::ImageSampleProjDrefImplicitLodOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ImageWriteOp > (::mlir::spirv::ImageWriteOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::InBoundsPtrAccessChainOp > (::mlir::spirv::InBoundsPtrAccessChainOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::IsFiniteOp > (::mlir::spirv::IsFiniteOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::IsInfOp > (::mlir::spirv::IsInfOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::IsNanOp > (::mlir::spirv::IsNanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::KHRAssumeTrueOp > (::mlir::spirv::KHRAssumeTrueOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::KHRCooperativeMatrixLengthOp > (::mlir::spirv::KHRCooperativeMatrixLengthOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::KHRCooperativeMatrixLoadOp > (::mlir::spirv::KHRCooperativeMatrixLoadOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::KHRCooperativeMatrixMulAddOp > (::mlir::spirv::KHRCooperativeMatrixMulAddOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::KHRCooperativeMatrixStoreOp > (::mlir::spirv::KHRCooperativeMatrixStoreOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::KHRSubgroupBallotOp > (::mlir::spirv::KHRSubgroupBallotOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::KillOp > (::mlir::spirv::KillOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::LoadOp > (::mlir::spirv::LoadOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::LogicalAndOp > (::mlir::spirv::LogicalAndOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::LogicalEqualOp > (::mlir::spirv::LogicalEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::LogicalNotEqualOp > (::mlir::spirv::LogicalNotEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::LogicalNotOp > (::mlir::spirv::LogicalNotOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::LogicalOrOp > (::mlir::spirv::LogicalOrOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::MatrixTimesMatrixOp > (::mlir::spirv::MatrixTimesMatrixOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::MatrixTimesScalarOp > (::mlir::spirv::MatrixTimesScalarOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::MatrixTimesVectorOp > (::mlir::spirv::MatrixTimesVectorOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::MemoryBarrierOp > (::mlir::spirv::MemoryBarrierOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::NotOp > (::mlir::spirv::NotOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::OrderedOp > (::mlir::spirv::OrderedOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::PtrAccessChainOp > (::mlir::spirv::PtrAccessChainOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::PtrCastToGenericOp > (::mlir::spirv::PtrCastToGenericOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ReturnOp > (::mlir::spirv::ReturnOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ReturnValueOp > (::mlir::spirv::ReturnValueOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SConvertOp > (::mlir::spirv::SConvertOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SDivOp > (::mlir::spirv::SDivOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SDotAccSatOp > (::mlir::spirv::SDotAccSatOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SDotOp > (::mlir::spirv::SDotOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SGreaterThanEqualOp > (::mlir::spirv::SGreaterThanEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SGreaterThanOp > (::mlir::spirv::SGreaterThanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SLessThanEqualOp > (::mlir::spirv::SLessThanEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SLessThanOp > (::mlir::spirv::SLessThanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SModOp > (::mlir::spirv::SModOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SMulExtendedOp > (::mlir::spirv::SMulExtendedOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SNegateOp > (::mlir::spirv::SNegateOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SRemOp > (::mlir::spirv::SRemOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SUDotAccSatOp > (::mlir::spirv::SUDotAccSatOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SUDotOp > (::mlir::spirv::SUDotOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::SelectOp > (::mlir::spirv::SelectOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ShiftLeftLogicalOp > (::mlir::spirv::ShiftLeftLogicalOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ShiftRightArithmeticOp > (::mlir::spirv::ShiftRightArithmeticOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ShiftRightLogicalOp > (::mlir::spirv::ShiftRightLogicalOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::StoreOp > (::mlir::spirv::StoreOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::TransposeOp > (::mlir::spirv::TransposeOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UConvertOp > (::mlir::spirv::UConvertOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UDivOp > (::mlir::spirv::UDivOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UDotAccSatOp > (::mlir::spirv::UDotAccSatOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UDotOp > (::mlir::spirv::UDotOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UGreaterThanEqualOp > (::mlir::spirv::UGreaterThanEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UGreaterThanOp > (::mlir::spirv::UGreaterThanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ULessThanEqualOp > (::mlir::spirv::ULessThanEqualOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::ULessThanOp > (::mlir::spirv::ULessThanOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UModOp > (::mlir::spirv::UModOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UMulExtendedOp > (::mlir::spirv::UMulExtendedOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UnorderedOp > (::mlir::spirv::UnorderedOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::UnreachableOp > (::mlir::spirv::UnreachableOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::VariableOp > (::mlir::spirv::VariableOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::VectorExtractDynamicOp > (::mlir::spirv::VectorExtractDynamicOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::VectorInsertDynamicOp > (::mlir::spirv::VectorInsertDynamicOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::VectorShuffleOp > (::mlir::spirv::VectorShuffleOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::VectorTimesMatrixOp > (::mlir::spirv::VectorTimesMatrixOp op)
template<>
LogicalResult mlir::spirv::Serializer::processOp<::mlir::spirv::VectorTimesScalarOp > (::mlir::spirv::VectorTimesScalarOp op)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "spirv-serialization"

Definition at line 23 of file SerializeOps.cpp.

◆ GET_SERIALIZATION_FNS

#define GET_SERIALIZATION_FNS

Definition at line 992 of file SerializeOps.cpp.

Function Documentation

◆ visitInPrettyBlockOrder()

LogicalResult visitInPrettyBlockOrder ( Block * headerBlock,
function_ref< LogicalResult(Block *)> blockHandler,
bool skipHeader = false,
BlockRange skipBlocks = {} )
static

A pre-order depth-first visitor function for processing basic blocks.

Visits the basic blocks starting from the given headerBlock in pre-order depth-first manner and calls blockHandler on each block. Skips handling blocks in the skipBlocks list. If skipHeader is true, blockHandler will not be invoked in headerBlock but still handles all headerBlock's successors.

SPIR-V spec "2.16.1. Universal Validation Rules" requires that "the order of blocks in a function must satisfy the rule that blocks appear before all blocks they dominate." This can be achieved by a pre-order CFG traversal algorithm. To make the serialization output more logical and readable to human, we perform depth-first CFG traversal and delay the serialization of the merge block and the continue block, if exists, until after all other blocks have been processed.

Definition at line 43 of file SerializeOps.cpp.