class X86CallLowering

Declaration

class X86CallLowering : public CallLowering { /* full declaration omitted */ };

Declared at: llvm/lib/Target/X86/X86CallLowering.h:25

Inherits from: CallLowering

Member Variables

Method Overview

  • public X86CallLowering(const llvm::X86TargetLowering & TLI)
  • public bool lowerCall(llvm::MachineIRBuilder & MIRBuilder, llvm::CallLowering::CallLoweringInfo & Info) const
  • public bool lowerFormalArguments(llvm::MachineIRBuilder & MIRBuilder, const llvm::Function & F, ArrayRef<ArrayRef<llvm::Register>> VRegs, llvm::FunctionLoweringInfo & FLI) const
  • public bool lowerReturn(llvm::MachineIRBuilder & MIRBuilder, const llvm::Value * Val, ArrayRef<llvm::Register> VRegs, llvm::FunctionLoweringInfo & FLI) const

Inherited from CallLowering:

Methods

X86CallLowering(
    const llvm::X86TargetLowering& TLI)

Declared at: llvm/lib/Target/X86/X86CallLowering.h:27

Parameters

const llvm::X86TargetLowering& TLI

bool lowerCall(
    llvm::MachineIRBuilder& MIRBuilder,
    llvm::CallLowering::CallLoweringInfo& Info)
    const

Description

This hook must be implemented to lower the given call instruction, including argument and return value marshalling.

Declared at: llvm/lib/Target/X86/X86CallLowering.h:37

Parameters

llvm::MachineIRBuilder& MIRBuilder
llvm::CallLowering::CallLoweringInfo& Info

Returns

true if the lowering succeeded, false otherwise.

bool lowerFormalArguments(
    llvm::MachineIRBuilder& MIRBuilder,
    const llvm::Function& F,
    ArrayRef<ArrayRef<llvm::Register>> VRegs,
    llvm::FunctionLoweringInfo& FLI) const

Description

This hook must be implemented to lower the incoming (formal) arguments, described by \p VRegs, for GlobalISel. Each argument must end up in the related virtual registers described by \p VRegs. In other words, the first argument should end up in \c VRegs[0], the second in \c VRegs[1], and so on. For each argument, there will be one register for each non-aggregate type, as returned by \c computeValueLLTs. \p MIRBuilder is set to the proper insertion for the argument lowering. \p FLI is required for sret demotion.

Declared at: llvm/lib/Target/X86/X86CallLowering.h:33

Parameters

llvm::MachineIRBuilder& MIRBuilder
const llvm::Function& F
ArrayRef<ArrayRef<llvm::Register>> VRegs
llvm::FunctionLoweringInfo& FLI

Returns

True if the lowering succeeded, false otherwise.

bool lowerReturn(
    llvm::MachineIRBuilder& MIRBuilder,
    const llvm::Value* Val,
    ArrayRef<llvm::Register> VRegs,
    llvm::FunctionLoweringInfo& FLI) const

Description

This hook behaves as the extended lowerReturn function, but for targets that do not support swifterror value promotion.

Declared at: llvm/lib/Target/X86/X86CallLowering.h:29

Parameters

llvm::MachineIRBuilder& MIRBuilder
const llvm::Value* Val
ArrayRef<llvm::Register> VRegs
llvm::FunctionLoweringInfo& FLI