LLVM 20.0.0git
|
This file implements the lowering from LLVM IR inline asm to MIR INLINEASM. More...
#include "llvm/CodeGen/GlobalISel/InlineAsmLowering.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/IR/Module.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "inline-asm-lowering" |
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) |
This file implements the lowering from LLVM IR inline asm to MIR INLINEASM.
Definition in file InlineAsmLowering.cpp.
#define DEBUG_TYPE "inline-asm-lowering" |
Definition at line 21 of file InlineAsmLowering.cpp.
|
static |
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().
|
static |
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().
|
static |
Definition at line 177 of file InlineAsmLowering.cpp.
Referenced by llvm::InlineAsmLowering::lowerInlineAsm().
|
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().