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 
20 FunctionPass *createBPFISelDag(BPFTargetMachine &TM);
21 FunctionPass *createBPFMISimplifyPatchablePass();
22 FunctionPass *createBPFMIPeepholePass();
23 FunctionPass *createBPFMIPeepholeTruncElimPass();
24 FunctionPass *createBPFMIPreEmitPeepholePass();
25 FunctionPass *createBPFMIPreEmitCheckingPass();
26 
27 void initializeBPFAbstractMemberAccessPass(PassRegistry&);
28 void initializeBPFMISimplifyPatchablePass(PassRegistry&);
29 void initializeBPFMIPeepholePass(PassRegistry&);
30 void initializeBPFMIPeepholeTruncElimPass(PassRegistry&);
31 void initializeBPFMIPreEmitPeepholePass(PassRegistry&);
32 void initializeBPFMIPreEmitCheckingPass(PassRegistry&);
33 }
34 
35 #endif
36