ΒΆunsigned int constrainOperandRegClass(
const llvm::MachineFunction& MF,
const llvm::TargetRegisterInfo& TRI,
llvm::MachineRegisterInfo& MRI,
const llvm::TargetInstrInfo& TII,
const llvm::RegisterBankInfo& RBI,
llvm::MachineInstr& InsertPt,
const llvm::MCInstrDesc& II,
const llvm::MachineOperand& RegMO,
unsigned int OpIdx)
unsigned int constrainOperandRegClass(
const llvm::MachineFunction& MF,
const llvm::TargetRegisterInfo& TRI,
llvm::MachineRegisterInfo& MRI,
const llvm::TargetInstrInfo& TII,
const llvm::RegisterBankInfo& RBI,
llvm::MachineInstr& InsertPt,
const llvm::MCInstrDesc& II,
const llvm::MachineOperand& RegMO,
unsigned int OpIdx)
Description
Try to constrain Reg so that it is usable by argument OpIdx of the provided MCInstrDesc \p II. If this fails, create a new virtual register in the correct class and insert a COPY before \p InsertPt if it is a use or after if it is a definition. This is equivalent to constrainOperandRegClass(..., RegClass, ...) with RegClass obtained from the MCInstrDesc. The debug location of \p InsertPt is used for the new copy.
Declared at: llvm/include/llvm/CodeGen/GlobalISel/Utils.h:75
Parameters
- const llvm::MachineFunction& MF
- const llvm::TargetRegisterInfo& TRI
- llvm::MachineRegisterInfo& MRI
- const llvm::TargetInstrInfo& TII
- const llvm::RegisterBankInfo& RBI
- llvm::MachineInstr& InsertPt
- const llvm::MCInstrDesc& II
- const llvm::MachineOperand& RegMO
- unsigned int OpIdx
Returns
The virtual register constrained to the right register class.