1//===- DirectXPassRegistry.def - Registry of DirectX passes -----*- C++--*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This file is used as the registry of passes that are part of the 10// DirectX backend. 11// 12//===----------------------------------------------------------------------===// 13 14// NOTE: NO INCLUDE GUARD DESIRED! 15 16#ifndef MODULE_ANALYSIS 17#define MODULE_ANALYSIS(NAME, CREATE_PASS) 18#endif 19MODULE_ANALYSIS("dx-shader-flags", dxil::ShaderFlagsAnalysis()) 20MODULE_ANALYSIS("dxil-resource-md", DXILResourceMDAnalysis()) 21#undef MODULE_ANALYSIS 22 23#ifndef MODULE_PASS 24#define MODULE_PASS(NAME, CREATE_PASS) 25#endif 26MODULE_PASS("dxil-data-scalarization", DXILDataScalarization()) 27MODULE_PASS("dxil-flatten-arrays", DXILFlattenArrays()) 28MODULE_PASS("dxil-intrinsic-expansion", DXILIntrinsicExpansion()) 29MODULE_PASS("dxil-op-lower", DXILOpLowering()) 30MODULE_PASS("dxil-pretty-printer", DXILPrettyPrinterPass(dbgs())) 31MODULE_PASS("dxil-translate-metadata", DXILTranslateMetadata()) 32// TODO: rename to print<foo> after NPM switch 33MODULE_PASS("print-dx-shader-flags", dxil::ShaderFlagsAnalysisPrinter(dbgs())) 34#undef MODULE_PASS 35 36#ifndef FUNCTION_PASS 37#define FUNCTION_PASS(NAME, CREATE_PASS) 38#endif 39FUNCTION_PASS("dxil-resource-access", DXILResourceAccess()) 40#undef FUNCTION_PASS 41