| //===- AMDGPUPassRegistry.def - Registry of AMDGPU 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 |
| // AMDGPU backend. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // NOTE: NO INCLUDE GUARD DESIRED! |
| |
| #ifndef MODULE_PASS |
| #define MODULE_PASS(NAME, CREATE_PASS) |
| #endif |
| MODULE_PASS("amdgpu-always-inline", AMDGPUAlwaysInlinePass()) |
| MODULE_PASS("amdgpu-attributor", AMDGPUAttributorPass(*this)) |
| MODULE_PASS("amdgpu-lower-buffer-fat-pointers", |
| AMDGPULowerBufferFatPointersPass(*this)) |
| MODULE_PASS("amdgpu-lower-ctor-dtor", AMDGPUCtorDtorLoweringPass()) |
| MODULE_PASS("amdgpu-lower-module-lds", AMDGPULowerModuleLDSPass(*this)) |
| MODULE_PASS("amdgpu-printf-runtime-binding", AMDGPUPrintfRuntimeBindingPass()) |
| MODULE_PASS("amdgpu-unify-metadata", AMDGPUUnifyMetadataPass()) |
| #undef MODULE_PASS |
| |
| #ifndef FUNCTION_PASS |
| #define FUNCTION_PASS(NAME, CREATE_PASS) |
| #endif |
| FUNCTION_PASS("amdgpu-codegenprepare", AMDGPUCodeGenPreparePass(*this)) |
| FUNCTION_PASS("amdgpu-image-intrinsic-opt", |
| AMDGPUImageIntrinsicOptimizerPass(*this)) |
| FUNCTION_PASS("amdgpu-lower-kernel-arguments", |
| AMDGPULowerKernelArgumentsPass(*this)) |
| FUNCTION_PASS("amdgpu-lower-kernel-attributes", |
| AMDGPULowerKernelAttributesPass()) |
| FUNCTION_PASS("amdgpu-simplifylib", AMDGPUSimplifyLibCallsPass()) |
| FUNCTION_PASS("amdgpu-promote-alloca", AMDGPUPromoteAllocaPass(*this)) |
| FUNCTION_PASS("amdgpu-promote-alloca-to-vector", |
| AMDGPUPromoteAllocaToVectorPass(*this)) |
| FUNCTION_PASS("amdgpu-promote-kernel-arguments", |
| AMDGPUPromoteKernelArgumentsPass()) |
| FUNCTION_PASS("amdgpu-rewrite-undef-for-phi", AMDGPURewriteUndefForPHIPass()) |
| FUNCTION_PASS("amdgpu-unify-divergent-exit-nodes", |
| AMDGPUUnifyDivergentExitNodesPass()) |
| FUNCTION_PASS("amdgpu-usenative", AMDGPUUseNativeCallsPass()) |
| #undef FUNCTION_PASS |
| |
| #ifndef FUNCTION_ANALYSIS |
| #define FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #endif |
| |
| #ifndef FUNCTION_ALIAS_ANALYSIS |
| #define FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS) \ |
| FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #endif |
| FUNCTION_ALIAS_ANALYSIS("amdgpu-aa", AMDGPUAA()) |
| #undef FUNCTION_ALIAS_ANALYSIS |
| #undef FUNCTION_ANALYSIS |
| |
| #ifndef FUNCTION_PASS_WITH_PARAMS |
| #define FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #endif |
| FUNCTION_PASS_WITH_PARAMS( |
| "amdgpu-atomic-optimizer", |
| "AMDGPUAtomicOptimizerPass", |
| [=](ScanOptions Strategy) { |
| return AMDGPUAtomicOptimizerPass(*this, Strategy); |
| }, |
| parseAMDGPUAtomicOptimizerStrategy, "strategy=dpp|iterative|none") |
| #undef FUNCTION_PASS_WITH_PARAMS |