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