14#ifndef LLVM_CODEGEN_GLOBALISEL_INLINEASMLOWERING_H
15#define LLVM_CODEGEN_GLOBALISEL_INLINEASMLOWERING_H
22class MachineIRBuilder;
31 virtual void anchor();
40 GetOrCreateVRegs)
const;
48 std::vector<MachineOperand> &Ops,
56 template <
class XXXTargetLowering>
const XXXTargetLowering *
getTLI()
const {
57 return static_cast<const XXXTargetLowering *
>(TLI);
Promote Memory to Register
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...
const TargetLowering * getTLI() const
Getter for generic TargetLowering class.
bool lowerInlineAsm(MachineIRBuilder &MIRBuilder, const CallBase &CB, std::function< ArrayRef< Register >(const Value &Val)> GetOrCreateVRegs) const
Lower the given inline asm call instruction GetOrCreateVRegs is a callback to materialize a register ...
InlineAsmLowering(const TargetLowering *TLI)
virtual ~InlineAsmLowering()=default
const XXXTargetLowering * getTLI() const
Getter for target specific TargetLowering class.
virtual bool lowerAsmOperandForConstraint(Value *Val, StringRef Constraint, std::vector< MachineOperand > &Ops, MachineIRBuilder &MIRBuilder) const
Lower the specified operand into the Ops vector.
Helper class to build MachineInstr.
StringRef - Represent a constant reference to a string, i.e.
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.