//===- SPIRVPassRegistry.def - Registry of SPIRV passes -----*- C++--*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file is used as the registry of passes that are part of the // SPIRV backend. // //===----------------------------------------------------------------------===// // NOTE: NO INCLUDE GUARD DESIRED! #ifndef MODULE_PASS #define MODULE_PASS(NAME, CREATE_PASS) #endif MODULE_PASS("spirv-cbuffer-access", SPIRVCBufferAccess()) MODULE_PASS("spirv-legalize-implicit-binding", SPIRVLegalizeImplicitBinding()) MODULE_PASS("spirv-legalize-zero-size-arrays", SPIRVLegalizeZeroSizeArrays(*static_cast(this))) MODULE_PASS("spirv-lower-ctor-dtor", SPIRVCtorDtorLoweringPass()) MODULE_PASS("spirv-prepare-functions", SPIRVPrepareFunctions(*static_cast(this))) MODULE_PASS("spirv-prepare-globals", SPIRVPrepareGlobals()) MODULE_PASS("spirv-pushconstant-access", SPIRVPushConstantAccess(*static_cast(this))) MODULE_PASS("spirv-emit-intrinsics", SPIRVEmitIntrinsicsPass(*static_cast(this))) #undef MODULE_PASS #ifndef FUNCTION_PASS #define FUNCTION_PASS(NAME, CREATE_PASS) #endif FUNCTION_PASS("spirv-legalize-pointer-cast", SPIRVLegalizePointerCast(*static_cast(this))) FUNCTION_PASS("spirv-merge-region-exits", SPIRVMergeRegionExitTargets()) FUNCTION_PASS("spirv-regularizer", SPIRVRegularizer()) FUNCTION_PASS("spirv-structurizer", SPIRVStructurizerWrapper()) #undef FUNCTION_PASS #ifndef FUNCTION_ANALYSIS #define FUNCTION_ANALYSIS(NAME, CREATE_PASS) #endif FUNCTION_ANALYSIS("spirv-convergence-region", SPIRVConvergenceRegionAnalysis()) #undef FUNCTION_ANALYSIS