blob: c63a84739c4a2543ba3d443ddb7d672273cabb69 [file] [log] [blame]
Daniel Sandersa16bd4f2019-08-20 22:53:24 +00001//===-- RISCVCallLowering.cpp - Call lowering -------------------*- 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/// \file
10/// This file implements the lowering of LLVM calls to machine code calls for
11/// GlobalISel.
12//
13//===----------------------------------------------------------------------===//
14
15#include "RISCVCallLowering.h"
16#include "RISCVISelLowering.h"
17#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
18
19using namespace llvm;
20
21RISCVCallLowering::RISCVCallLowering(const RISCVTargetLowering &TLI)
22 : CallLowering(&TLI) {}
23
24bool RISCVCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
25 const Value *Val,
26 ArrayRef<Register> VRegs) const {
27
28 MachineInstrBuilder Ret = MIRBuilder.buildInstrNoInsert(RISCV::PseudoRET);
29
30 if (Val != nullptr) {
31 return false;
32 }
33 MIRBuilder.insertInstr(Ret);
34 return true;
35}
36
37bool RISCVCallLowering::lowerFormalArguments(
38 MachineIRBuilder &MIRBuilder, const Function &F,
39 ArrayRef<ArrayRef<Register>> VRegs) const {
40
41 if (F.arg_empty())
42 return true;
43
44 return false;
45}
46
47bool RISCVCallLowering::lowerCall(MachineIRBuilder &MIRBuilder,
48 CallLoweringInfo &Info) const {
49 return false;
50}