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