1//===- AArch64PassRegistry.def - Registry of AArch64 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 AArch64
10// backend.
11//
12//===----------------------------------------------------------------------===//
13
14// NOTE: NO INCLUDE GUARD DESIRED!
15
16#ifndef MODULE_PASS
17#define MODULE_PASS(NAME, CREATE_PASS)
18#endif
19#undef MODULE_PASS
20
21#ifndef FUNCTION_PASS
22#define FUNCTION_PASS(NAME, CREATE_PASS)
23#endif
24#undef FUNCTION_PASS
25
26#ifndef MACHINE_FUNCTION_PASS
27#define MACHINE_FUNCTION_PASS(NAME, CREATE_PASS)
28#endif
29MACHINE_FUNCTION_PASS("aarch64-branch-targets", AArch64BranchTargetsPass())
30MACHINE_FUNCTION_PASS("aarch64-collect-loh", AArch64CollectLOHPass())
31MACHINE_FUNCTION_PASS("aarch64-condopt", AArch64ConditionOptimizerPass())
32MACHINE_FUNCTION_PASS("aarch64-fix-cortex-a53-835769", AArch64A53Fix835769Pass())
33MACHINE_FUNCTION_PASS("aarch64-jump-tables", AArch64CompressJumpTablesPass())
34MACHINE_FUNCTION_PASS("aarch64-ldst-opt", AArch64LoadStoreOptPass())
35MACHINE_FUNCTION_PASS("aarch64-simd-scalar", AArch64AdvSIMDScalarPass())
36#undef MACHINE_FUNCTION_PASS
37