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