Anonymous View
LLVM 23.0.0git
InlineAsmLowering.cpp File Reference

This file implements the lowering from LLVM IR inline asm to MIR INLINEASM. More...

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "inline-asm-lowering"

Functions

static void emitInlineAsmError (MachineIRBuilder &MIRBuilder, const CallBase &Call, const Twine &Message, ArrayRef< Register > ResRegs)
 Emit an inline asm error diagnostic and materialize undef values for the call results so that the rest of the function remains well-formed.
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"

Definition at line 23 of file InlineAsmLowering.cpp.

Function Documentation

◆ buildAnyextOrCopy()

◆ computeConstraintToUse()

◆ emitInlineAsmError()

void emitInlineAsmError ( MachineIRBuilder & MIRBuilder,
const CallBase & Call,
const Twine & Message,
ArrayRef< Register > ResRegs )
static

Emit an inline asm error diagnostic and materialize undef values for the call results so that the rest of the function remains well-formed.

Definition at line 31 of file InlineAsmLowering.cpp.

References llvm::MachineIRBuilder::buildUndef(), Call, and Reg.

Referenced by llvm::InlineAsmLowering::lowerInlineAsm().

◆ getNumOpRegs()

unsigned getNumOpRegs ( const MachineInstr & I,
unsigned OpIdx )
static

Definition at line 191 of file InlineAsmLowering.cpp.

References F, I, and OpIdx.

Referenced by llvm::InlineAsmLowering::lowerInlineAsm().

◆ getRegistersForValue()