xref: /freebsd/contrib/llvm-project/llvm/lib/Target/BPF/BPF.h (revision e25152834cdf3b353892835a4f3b157e066a8ed4)
1 //===-- BPF.h - Top-level interface for BPF representation ------*- 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 #ifndef LLVM_LIB_TARGET_BPF_BPF_H
10 #define LLVM_LIB_TARGET_BPF_BPF_H
11 
12 #include "MCTargetDesc/BPFMCTargetDesc.h"
13 #include "llvm/Target/TargetMachine.h"
14 
15 namespace llvm {
16 class BPFTargetMachine;
17 
18 ModulePass *createBPFAbstractMemberAccess(BPFTargetMachine *TM);
19 ModulePass *createBPFPreserveDIType();
20 
21 FunctionPass *createBPFISelDag(BPFTargetMachine &TM);
22 FunctionPass *createBPFMISimplifyPatchablePass();
23 FunctionPass *createBPFMIPeepholePass();
24 FunctionPass *createBPFMIPeepholeTruncElimPass();
25 FunctionPass *createBPFMIPreEmitPeepholePass();
26 FunctionPass *createBPFMIPreEmitCheckingPass();
27 
28 void initializeBPFAbstractMemberAccessPass(PassRegistry&);
29 void initializeBPFPreserveDITypePass(PassRegistry&);
30 void initializeBPFMISimplifyPatchablePass(PassRegistry&);
31 void initializeBPFMIPeepholePass(PassRegistry&);
32 void initializeBPFMIPeepholeTruncElimPass(PassRegistry&);
33 void initializeBPFMIPreEmitPeepholePass(PassRegistry&);
34 void initializeBPFMIPreEmitCheckingPass(PassRegistry&);
35 }
36 
37 #endif
38