| //===-- 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" |
| |
| #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<Register> 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<ArrayRef<Register>> VRegs, |
| FunctionLoweringInfo &FLI) const { |
| return VRegs.empty(); |
| } |
| |
| bool BPFCallLowering::lowerCall(MachineIRBuilder &MIRBuilder, |
| CallLoweringInfo &Info) const { |
| return false; |
| } |