llir-opt
0.0.1
Low-Level Post-Link Optimiser for OCaml and C
|
#include <emitter/riscv/riscvcall.h>
Public Member Functions | |
RISCVCall (const Func *func) | |
Analyses a function for arguments. | |
RISCVCall (const CallSite *inst) | |
Analyses a call site. | |
RISCVCall (const ReturnInst *inst) | |
Analyses a return site. | |
RISCVCall (const LandingPadInst *inst) | |
Analyses a return site. | |
RISCVCall (const RaiseInst *inst) | |
Analyses a raise site. | |
llvm::ArrayRef< llvm::MCPhysReg > | GetUnusedGPRs () const |
Returns unused GPRs. | |
llvm::ArrayRef< llvm::MCPhysReg > | GetUsedGPRs () const |
Returns the used GPRs. | |
llvm::ArrayRef< llvm::MCPhysReg > | GetUnusedFPRs () const |
Returns unused FPRs. | |
llvm::ArrayRef< llvm::MCPhysReg > | GetUsedFPRs () const |
Returns the used FPRs. | |
unsigned | GetFrameSize () const override |
Returns the number of bytes allocated on the stack. | |
![]() | |
CallLowering (const Func *func) | |
CallLowering (const CallSite *call) | |
CallLowering (const RaiseInst *inst) | |
CallLowering (const LandingPadInst *inst) | |
CallLowering (const ReturnInst *inst) | |
unsigned | GetNumArgs () const |
Returns the number of arguments. | |
arg_iterator | arg_begin () |
arg_iterator | arg_end () |
const_arg_iterator | arg_begin () const |
const_arg_iterator | arg_end () const |
llvm::iterator_range< arg_iterator > | args () |
Returns a range over all arguments. | |
llvm::iterator_range< const_arg_iterator > | args () const |
Return an immutable range over all arguments. | |
const ArgLoc & | Argument (size_t idx) const |
Returns a given argument. | |
ret_iterator | ret_begin () |
ret_iterator | ret_end () |
const_ret_iterator | ret_begin () const |
const_ret_iterator | ret_end () const |
llvm::iterator_range< ret_iterator > | rets () |
Returns a range over all returns. | |
llvm::iterator_range< const_ret_iterator > | rets () const |
Return an immutable range over all returns. | |
const RetLoc & | Return (unsigned idx) const |
Returns the type of a return value. | |
Additional Inherited Members | |
![]() | |
using | arg_iterator = std::vector< ArgLoc >::iterator |
using | const_arg_iterator = std::vector< ArgLoc >::const_iterator |
using | ret_iterator = std::vector< RetLoc >::iterator |
using | const_ret_iterator = std::vector< RetLoc >::const_iterator |
![]() | |
virtual void | AssignArgMultiboot (unsigned i, FlaggedType type) |
Location assignment for multiboot. | |
void | AnalyseFunc (const Func *func) |
Analyse a function. | |
void | AnalyseCall (const CallSite *call) |
Analyse a call. | |
void | AnalyseReturn (const ReturnInst *inst) |
Analyse a return instruction. | |
void | AnalyseRaise (const RaiseInst *inst) |
Analyse a raise instruction. | |
void | AnalysePad (const LandingPadInst *inst) |
Analyse a landing pad instruction. | |
void | AssignArg (unsigned i, FlaggedType type) |
Assigns a location to an argument based on calling conv. | |
void | AssignRet (unsigned i, FlaggedType type) |
Assigns a location to a return value based on callig conv. | |
![]() | |
CallingConv | conv_ |
Calling convention. | |
std::vector< ArgLoc > | args_ |
Locations where arguments are assigned. | |
std::vector< RetLoc > | rets_ |
Locations where return values are assigned. | |
RISCV calling convention classification.