LLVM: lib/CodeGen/GlobalISel/InlineAsmLowering.cpp File Reference (original) (raw)
This file implements the lowering from LLVM IR inline asm to MIR INLINEASM. More...
Go to the source code of this file.
Functions | |
---|---|
static void | getRegistersForValue (MachineFunction &MF, MachineIRBuilder &MIRBuilder, GISelAsmOperandInfo &OpInfo, GISelAsmOperandInfo &RefOpInfo) |
Assign virtual/physical registers for the specified register operand. | |
static void | computeConstraintToUse (const TargetLowering *TLI, TargetLowering::AsmOperandInfo &OpInfo) |
static unsigned | getNumOpRegs (const MachineInstr &I, unsigned OpIdx) |
static bool | buildAnyextOrCopy (Register Dst, Register Src, MachineIRBuilder &MIRBuilder) |
Detailed Description
This file implements the lowering from LLVM IR inline asm to MIR INLINEASM.
Definition in file InlineAsmLowering.cpp.
Macro Definition Documentation
◆ DEBUG_TYPE
#define DEBUG_TYPE "inline-asm-lowering"
Function Documentation
◆ buildAnyextOrCopy()
Definition at line 182 of file InlineAsmLowering.cpp.
References llvm::MachineIRBuilder::buildAnyExt(), llvm::MachineIRBuilder::buildCopy(), llvm::dbgs(), llvm::MachineIRBuilder::getMF(), llvm::MachineIRBuilder::getMRI(), llvm::MachineInstrBuilder::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), LLVM_DEBUG, MRI, llvm::LLT::scalar(), and TRI.
Referenced by llvm::InlineAsmLowering::lowerInlineAsm().
◆ computeConstraintToUse()
Definition at line 136 of file InlineAsmLowering.cpp.
References assert(), llvm::TargetLowering::C_Immediate, llvm::TargetLowering::C_Other, llvm::TargetLowering::AsmOperandInfo::CallOperandVal, llvm::InlineAsm::ConstraintInfo::Codes, llvm::TargetLowering::AsmOperandInfo::ConstraintCode, llvm::TargetLowering::AsmOperandInfo::ConstraintType, llvm::TargetLowering::AsmOperandInfo::ConstraintVT, G, llvm::TargetLowering::getConstraintPreferences(), llvm::TargetLowering::getConstraintType(), and llvm::TargetLowering::LowerXConstraint().
Referenced by llvm::InlineAsmLowering::lowerInlineAsm().
◆ getNumOpRegs()
◆ getRegistersForValue()
static void getRegistersForValue ( MachineFunction & MF, MachineIRBuilder & MIRBuilder, GISelAsmOperandInfo & OpInfo, GISelAsmOperandInfo & RefOpInfo ) | static |
---|
Assign virtual/physical registers for the specified register operand.
Definition at line 80 of file InlineAsmLowering.cpp.
References assert(), llvm::TargetRegisterClass::begin(), llvm::TargetLowering::C_Memory, llvm::TargetRegisterClass::end(), llvm::Function::getContext(), llvm::MachineFunction::getFunction(), llvm::TargetLoweringBase::getNumRegisters(), llvm::TargetLowering::getRegForInlineAsmConstraint(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::TargetSubtargetInfo::getTargetLowering(), I, and TRI.
Referenced by llvm::InlineAsmLowering::lowerInlineAsm().