LLVM 22.0.0git
AArch64CallLowering.cpp File Reference

This file implements the lowering of LLVM calls to machine code calls for GlobalISel. More...

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "aarch64-call-lowering"

Functions

static void applyStackPassedSmallTypeDAGHack (EVT OrigVT, MVT &ValVT, MVT &LocVT)
static LLT getStackValueStoreTypeHack (const CCValAssign &VA)
static bool doesCalleeRestoreStack (CallingConv::ID CallConv, bool TailCallOpt)
static void handleMustTailForwardedRegisters (MachineIRBuilder &MIRBuilder, CCAssignFn *AssignFn)
 Helper function to compute forwarded registers for musttail calls.
static bool canGuaranteeTCO (CallingConv::ID CC, bool GuaranteeTailCalls)
 Return true if the calling convention is one that we can guarantee TCO for.
static bool mayTailCallThisCC (CallingConv::ID CC)
 Return true if we might ever do TCO for calls with this calling convention.
static std::pair< CCAssignFn *, CCAssignFn * > getAssignFnsForCC (CallingConv::ID CC, const AArch64TargetLowering &TLI)
 Returns a pair containing the fixed CCAssignFn and the vararg CCAssignFn for CC.
static unsigned getCallOpcode (const MachineFunction &CallerF, bool IsIndirect, bool IsTailCall, std::optional< CallLowering::PtrAuthInfo > &PAI, MachineRegisterInfo &MRI)
static const uint32_tgetMaskForArgs (SmallVectorImpl< AArch64CallLowering::ArgInfo > &OutArgs, AArch64CallLowering::CallLoweringInfo &Info, const AArch64RegisterInfo &TRI, MachineFunction &MF)

Variables

cl::opt< boolEnableSVEGISel

Detailed Description

This file implements the lowering of LLVM calls to machine code calls for GlobalISel.

Definition in file AArch64CallLowering.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aarch64-call-lowering"

Definition at line 53 of file AArch64CallLowering.cpp.

Function Documentation

◆ applyStackPassedSmallTypeDAGHack()

void applyStackPassedSmallTypeDAGHack ( EVT OrigVT,
MVT & ValVT,
MVT & LocVT )
static

Definition at line 63 of file AArch64CallLowering.cpp.

◆ canGuaranteeTCO()

bool canGuaranteeTCO ( CallingConv::ID CC,
bool GuaranteeTailCalls )
static

Return true if the calling convention is one that we can guarantee TCO for.

Definition at line 830 of file AArch64CallLowering.cpp.

References llvm::CallingConv::Fast, llvm::CallingConv::SwiftTail, and llvm::CallingConv::Tail.

◆ doesCalleeRestoreStack()

◆ getAssignFnsForCC()

◆ getCallOpcode()

◆ getMaskForArgs()

const uint32_t * getMaskForArgs ( SmallVectorImpl< AArch64CallLowering::ArgInfo > & OutArgs,
AArch64CallLowering::CallLoweringInfo & Info,
const AArch64RegisterInfo & TRI,
MachineFunction & MF )
static

◆ getStackValueStoreTypeHack()

LLT getStackValueStoreTypeHack ( const CCValAssign & VA)
static

◆ handleMustTailForwardedRegisters()

◆ mayTailCallThisCC()

bool mayTailCallThisCC ( CallingConv::ID CC)
static

Variable Documentation

◆ EnableSVEGISel

cl::opt<bool> EnableSVEGISel
extern