1283625Sdim//===-- BPF.h - Top-level interface for BPF representation ------*- C++ -*-===//
2283625Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6283625Sdim//
7283625Sdim//===----------------------------------------------------------------------===//
8283625Sdim
9283625Sdim#ifndef LLVM_LIB_TARGET_BPF_BPF_H
10283625Sdim#define LLVM_LIB_TARGET_BPF_BPF_H
11283625Sdim
12283625Sdim#include "MCTargetDesc/BPFMCTargetDesc.h"
13283625Sdim#include "llvm/Target/TargetMachine.h"
14283625Sdim
15283625Sdimnamespace llvm {
16283625Sdimclass BPFTargetMachine;
17283625Sdim
18360784SdimModulePass *createBPFAbstractMemberAccess(BPFTargetMachine *TM);
19353358Sdim
20283625SdimFunctionPass *createBPFISelDag(BPFTargetMachine &TM);
21353358SdimFunctionPass *createBPFMISimplifyPatchablePass();
22341825SdimFunctionPass *createBPFMIPeepholePass();
23360784SdimFunctionPass *createBPFMIPeepholeTruncElimPass();
24341825SdimFunctionPass *createBPFMIPreEmitPeepholePass();
25344779SdimFunctionPass *createBPFMIPreEmitCheckingPass();
26341825Sdim
27353358Sdimvoid initializeBPFAbstractMemberAccessPass(PassRegistry&);
28353358Sdimvoid initializeBPFMISimplifyPatchablePass(PassRegistry&);
29341825Sdimvoid initializeBPFMIPeepholePass(PassRegistry&);
30360784Sdimvoid initializeBPFMIPeepholeTruncElimPass(PassRegistry&);
31341825Sdimvoid initializeBPFMIPreEmitPeepholePass(PassRegistry&);
32344779Sdimvoid initializeBPFMIPreEmitCheckingPass(PassRegistry&);
33283625Sdim}
34283625Sdim
35283625Sdim#endif
36