|
LLVM
4.0.0
|
#include <ARMCallLowering.h>
Public Member Functions | |
| ARMCallLowering (const ARMTargetLowering &TLI) | |
| bool | lowerReturn (MachineIRBuilder &MIRBuiler, const Value *Val, unsigned VReg) const override |
This hook must be implemented to lower outgoing return values, described by Val, into the specified virtual register VReg. More... | |
| bool | lowerFormalArguments (MachineIRBuilder &MIRBuilder, const Function &F, ArrayRef< unsigned > VRegs) const override |
This hook must be implemented to lower the incoming (formal) arguments, described by Args, for GlobalISel. More... | |
Public Member Functions inherited from llvm::CallLowering | |
| CallLowering (const TargetLowering *TLI) | |
| virtual | ~CallLowering () |
| virtual bool | lowerCall (MachineIRBuilder &MIRBuilder, const MachineOperand &Callee, const ArgInfo &OrigRet, ArrayRef< ArgInfo > OrigArgs) const |
| This hook must be implemented to lower the given call instruction, including argument and return value marshalling. More... | |
| virtual bool | lowerCall (MachineIRBuilder &MIRBuilder, const CallInst &CI, unsigned ResReg, ArrayRef< unsigned > ArgRegs, std::function< unsigned()> GetCalleeReg) const |
| This hook must be implemented to lower the given call instruction, including argument and return value marshalling. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::CallLowering | |
| const TargetLowering * | getTLI () const |
| Getter for generic TargetLowering class. More... | |
| template<class XXXTargetLowering > | |
| const XXXTargetLowering * | getTLI () const |
| Getter for target specific TargetLowering class. More... | |
| template<typename FuncInfoTy > | |
| void | setArgFlags (ArgInfo &Arg, unsigned OpNum, const DataLayout &DL, const FuncInfoTy &FuncInfo) const |
| bool | handleAssignments (MachineIRBuilder &MIRBuilder, CCAssignFn *AssignFn, ArrayRef< ArgInfo > Args, ValueHandler &Callback) const |
Invoke the AssignFn on each of the given Args and then use Callback to move them to the assigned locations. More... | |
Definition at line 27 of file ARMCallLowering.h.
| ARMCallLowering::ARMCallLowering | ( | const ARMTargetLowering & | TLI | ) |
Definition at line 30 of file ARMCallLowering.cpp.
|
overridevirtual |
This hook must be implemented to lower the incoming (formal) arguments, described by Args, for GlobalISel.
Each argument must end up in the related virtual register described by VRegs. In other words, the first argument should end up in VRegs[0], the second in VRegs[1], and so on. MIRBuilder is set to the proper insertion for the argument lowering.
Reimplemented from llvm::CallLowering.
Definition at line 163 of file ARMCallLowering.cpp.
References llvm::Function::arg_empty(), AMDGPU::RuntimeMD::KeyName::Args, llvm::Function::getArgumentList(), llvm::Function::getCallingConv(), llvm::MachineFunction::getDataLayout(), llvm::MachineIRBuilder::getMF(), llvm::MachineFunction::getRegInfo(), llvm::CallLowering::handleAssignments(), isSupportedType(), llvm::Function::isVarArg(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and llvm::CallLowering::setArgFlags().
|
overridevirtual |
This hook must be implemented to lower outgoing return values, described by Val, into the specified virtual register VReg.
This hook is used by GlobalISel.
Reimplemented from llvm::CallLowering.
Definition at line 106 of file ARMCallLowering.cpp.
References llvm::AddDefaultPred(), assert(), llvm::MachineIRBuilder::buildInstrNoInsert(), and llvm::MachineIRBuilder::insertInstr().
1.8.6