LLVM 20.0.0git
RISCVCallingConv.h
Go to the documentation of this file.
1//===-- RISCVCallingConv.h - RISC-V Custom CC Routines ----------*- 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// This file defines the custom routines for the RISC-V Calling Convention.
10//
11//===----------------------------------------------------------------------===//
12
15
16namespace llvm {
17
18/// RISCVCCAssignFn - This target-specific function extends the default
19/// CCValAssign with additional information used to lower RISC-V calling
20/// conventions.
21typedef bool RISCVCCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT,
23 ISD::ArgFlagsTy ArgFlags, CCState &State,
24 bool IsFixed, bool IsRet, Type *OrigTy);
25
26bool CC_RISCV(unsigned ValNo, MVT ValVT, MVT LocVT,
27 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
28 CCState &State, bool IsFixed, bool IsRet, Type *OrigTy);
29
30bool CC_RISCV_FastCC(unsigned ValNo, MVT ValVT, MVT LocVT,
31 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
32 CCState &State, bool IsFixed, bool IsRet, Type *OrigTy);
33
34bool CC_RISCV_GHC(unsigned ValNo, MVT ValVT, MVT LocVT,
35 CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags,
36 CCState &State);
37
38namespace RISCV {
39
41
42} // end namespace RISCV
43
44} // end namespace llvm
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Definition: ArrayRef.h:41
CCState - This class holds information needed while lowering arguments and return values.
Machine Value Type.
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:45
ArrayRef< MCPhysReg > getArgGPRs(const RISCVABI::ABI ABI)
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
bool CC_RISCV_GHC(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State)
bool CC_RISCV_FastCC(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsFixed, bool IsRet, Type *OrigTy)
bool RISCVCCAssignFn(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsFixed, bool IsRet, Type *OrigTy)
RISCVCCAssignFn - This target-specific function extends the default CCValAssign with additional infor...
bool CC_RISCV(unsigned ValNo, MVT ValVT, MVT LocVT, CCValAssign::LocInfo LocInfo, ISD::ArgFlagsTy ArgFlags, CCState &State, bool IsFixed, bool IsRet, Type *OrigTy)