1 //===-- BPF.h - Top-level interface for BPF representation ------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_LIB_TARGET_BPF_BPF_H
10 #define LLVM_LIB_TARGET_BPF_BPF_H
12 #include "MCTargetDesc/BPFMCTargetDesc.h"
13 #include "llvm/Target/TargetMachine.h"
16 class BPFTargetMachine
;
18 ModulePass
*createBPFAbstractMemberAccess(BPFTargetMachine
*TM
);
20 FunctionPass
*createBPFISelDag(BPFTargetMachine
&TM
);
21 FunctionPass
*createBPFMISimplifyPatchablePass();
22 FunctionPass
*createBPFMIPeepholePass();
23 FunctionPass
*createBPFMIPeepholeTruncElimPass();
24 FunctionPass
*createBPFMIPreEmitPeepholePass();
25 FunctionPass
*createBPFMIPreEmitCheckingPass();
27 void initializeBPFAbstractMemberAccessPass(PassRegistry
&);
28 void initializeBPFMISimplifyPatchablePass(PassRegistry
&);
29 void initializeBPFMIPeepholePass(PassRegistry
&);
30 void initializeBPFMIPeepholeTruncElimPass(PassRegistry
&);
31 void initializeBPFMIPreEmitPeepholePass(PassRegistry
&);
32 void initializeBPFMIPreEmitCheckingPass(PassRegistry
&);