[InstCombine] Signed saturation patterns
[llvm-core.git] / lib / Target / RISCV / RISCVCallLowering.cpp
blobc63a84739c4a2543ba3d443ddb7d672273cabb69
1 //===-- 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.
13 //===----------------------------------------------------------------------===//
15 #include "RISCVCallLowering.h"
16 #include "RISCVISelLowering.h"
17 #include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
19 using namespace llvm;
21 RISCVCallLowering::RISCVCallLowering(const RISCVTargetLowering &TLI)
22 : CallLowering(&TLI) {}
24 bool RISCVCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder,
25 const Value *Val,
26 ArrayRef<Register> VRegs) const {
28 MachineInstrBuilder Ret = MIRBuilder.buildInstrNoInsert(RISCV::PseudoRET);
30 if (Val != nullptr) {
31 return false;
33 MIRBuilder.insertInstr(Ret);
34 return true;
37 bool RISCVCallLowering::lowerFormalArguments(
38 MachineIRBuilder &MIRBuilder, const Function &F,
39 ArrayRef<ArrayRef<Register>> VRegs) const {
41 if (F.arg_empty())
42 return true;
44 return false;
47 bool RISCVCallLowering::lowerCall(MachineIRBuilder &MIRBuilder,
48 CallLoweringInfo &Info) const {
49 return false;