//===-- BPFCallLowering.cpp - Call lowering for GlobalISel ------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file /// This file implements the lowering of LLVM calls to machine code calls for /// GlobalISel. /// //===----------------------------------------------------------------------===// #include "BPFCallLowering.h" #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h" #include "llvm/Support/Debug.h" #define DEBUG_TYPE "bpf-call-lowering" using namespace llvm; BPFCallLowering::BPFCallLowering(const BPFTargetLowering &TLI) : CallLowering(&TLI) {} bool BPFCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder, const Value *Val, ArrayRef VRegs, FunctionLoweringInfo &FLI, Register SwiftErrorVReg) const { if (!VRegs.empty()) return false; MIRBuilder.buildInstr(BPF::RET); return true; } bool BPFCallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder, const Function &F, ArrayRef> VRegs, FunctionLoweringInfo &FLI) const { return VRegs.empty(); } bool BPFCallLowering::lowerCall(MachineIRBuilder &MIRBuilder, CallLoweringInfo &Info) const { return false; }