llir-opt  0.0.1
Low-Level Post-Link Optimiser for OCaml and C
Public Member Functions | List of all members
RISCVCall Class Referencefinal

#include <emitter/riscv/riscvcall.h>

Inheritance diagram for RISCVCall:
Inheritance graph
[legend]
Collaboration diagram for RISCVCall:
Collaboration graph
[legend]

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.
 
- Public Member Functions inherited from CallLowering
 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 ArgLocArgument (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 RetLocReturn (unsigned idx) const
 Returns the type of a return value.
 

Additional Inherited Members

- Public Types inherited from CallLowering
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
 
- Protected Member Functions inherited from CallLowering
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.
 
- Protected Attributes inherited from CallLowering
CallingConv conv_
 Calling convention.
 
std::vector< ArgLocargs_
 Locations where arguments are assigned.
 
std::vector< RetLocrets_
 Locations where return values are assigned.
 

Detailed Description

RISCV calling convention classification.


The documentation for this class was generated from the following files: