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