xref: /freebsd/contrib/llvm-project/llvm/lib/Target/BPF/BPF.h (revision f2530c80db7b29b95368fce956b3a778f096b368)
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();
19 
20 FunctionPass *createBPFISelDag(BPFTargetMachine &TM);
21 FunctionPass *createBPFMISimplifyPatchablePass();
22 FunctionPass *createBPFMIPeepholePass();
23 FunctionPass *createBPFMIPreEmitPeepholePass();
24 FunctionPass *createBPFMIPreEmitCheckingPass();
25 
26 void initializeBPFAbstractMemberAccessPass(PassRegistry&);
27 void initializeBPFMISimplifyPatchablePass(PassRegistry&);
28 void initializeBPFMIPeepholePass(PassRegistry&);
29 void initializeBPFMIPreEmitPeepholePass(PassRegistry&);
30 void initializeBPFMIPreEmitCheckingPass(PassRegistry&);
31 }
32 
33 #endif
34