1//===- BPFPassRegistry.def - Registry of BPF 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// BPF backend.
11//
12//===----------------------------------------------------------------------===//
13
14// NOTE: NO INCLUDE GUARD DESIRED!
15
16#ifndef MODULE_PASS
17#define MODULE_PASS(NAME, CREATE_PASS)
18#endif
19MODULE_PASS("bpf-asm-printer-begin", BPFAsmPrinterBeginPass())
20MODULE_PASS("bpf-asm-printer-end", BPFAsmPrinterEndPass())
21MODULE_PASS("bpf-check-and-opt-ir", BPFCheckAndAdjustIRPass())
22#undef MODULE_PASS
23
24#ifndef FUNCTION_PASS
25#define FUNCTION_PASS(NAME, CREATE_PASS)
26#endif
27FUNCTION_PASS("bpf-aspace-simplify", BPFASpaceCastSimplifyPass())
28FUNCTION_PASS("bpf-ir-peephole", BPFIRPeepholePass())
29#undef FUNCTION_PASS
30
31#ifndef FUNCTION_PASS_WITH_PARAMS
32#define FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS)
33#endif
34FUNCTION_PASS_WITH_PARAMS(
35 "bpf-preserve-static-offset", "BPFPreserveStaticOffsetPass",
36 [=](bool AllowPartial) {
37 return BPFPreserveStaticOffsetPass(AllowPartial);
38 },
39 parseBPFPreserveStaticOffsetOptions, "allow-partial")
40#undef FUNCTION_PASS_WITH_PARAMS
41
42#ifndef MACHINE_FUNCTION_PASS
43#define MACHINE_FUNCTION_PASS(NAME, CREATE_PASS)
44#endif
45MACHINE_FUNCTION_PASS("bpf-asm-printer", BPFAsmPrinterPass())
46MACHINE_FUNCTION_PASS("bpf-mi-expand-stack-arg-pseudos", BPFMIExpandStackArgPseudosPass())
47MACHINE_FUNCTION_PASS("bpf-isel", BPFISelDAGToDAGPass(*this))
48MACHINE_FUNCTION_PASS("bpf-mi-checking", BPFMIPreEmitCheckingPass())
49MACHINE_FUNCTION_PASS("bpf-mi-peephole", BPFMIPeepholePass())
50MACHINE_FUNCTION_PASS("bpf-mi-pre-emit-peephole", BPFMIPreEmitPeepholePass())
51MACHINE_FUNCTION_PASS("bpf-mi-simplify-patchable", BPFMISimplifyPatchablePass())
52#undef MACHINE_FUNCTION_PASS
53