LLVM 20.0.0git
Classes | Namespaces | Enumerations | Functions
MachineInstrBuilder.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBundle.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/Support/ErrorHandling.h"
#include <cassert>
#include <cstdint>

Go to the source code of this file.

Classes

class  llvm::MachineInstrBuilder
 
class  llvm::MIMetadata
 Set of metadata that should be preserved when using BuildMI(). More...
 
class  llvm::MIBundleBuilder
 Helper class for constructing bundles of MachineInstrs. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::RegState
 

Enumerations

enum  {
  llvm::RegState::Define = 0x2 , llvm::RegState::Implicit = 0x4 , llvm::RegState::Kill = 0x8 , llvm::RegState::Dead = 0x10 ,
  llvm::RegState::Undef = 0x20 , llvm::RegState::EarlyClobber = 0x40 , llvm::RegState::Debug = 0x80 , llvm::RegState::InternalRead = 0x100 ,
  llvm::RegState::Renamable = 0x200 , llvm::RegState::DefineNoRead = Define | Undef , llvm::RegState::ImplicitDefine = Implicit | Define , llvm::RegState::ImplicitKill = Implicit | Kill
}
 

Functions

MachineInstrBuilder llvm::BuildMI (MachineFunction &MF, const MIMetadata &MIMD, const MCInstrDesc &MCID)
 Builder interface. Specify how to create the initial instruction itself.
 
MachineInstrBuilder llvm::BuildMI (MachineFunction &MF, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
 This version of the builder sets up the first operand as a destination virtual register.
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
 This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register.
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
 This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and sets up the first operand as a destination virtual register.
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineInstr &I, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineInstr *I, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MIMetadata &MIMD, const MCInstrDesc &MCID)
 This version of the builder inserts the newly-built instruction before the given position in the given MachineBasicBlock, and does NOT take a destination register.
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineBasicBlock::instr_iterator I, const MIMetadata &MIMD, const MCInstrDesc &MCID)
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineInstr &I, const MIMetadata &MIMD, const MCInstrDesc &MCID)
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineInstr *I, const MIMetadata &MIMD, const MCInstrDesc &MCID)
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock *BB, const MIMetadata &MIMD, const MCInstrDesc &MCID)
 This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and does NOT take a destination register.
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock *BB, const MIMetadata &MIMD, const MCInstrDesc &MCID, Register DestReg)
 This version of the builder inserts the newly-built instruction at the end of the given MachineBasicBlock, and sets up the first operand as a destination virtual register.
 
MachineInstrBuilder llvm::BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, Register Reg, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address.
 
MachineInstrBuilder llvm::BuildMI (MachineFunction &MF, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, ArrayRef< MachineOperand > MOs, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE or DBG_VALUE_LIST intrinsic for a MachineOperand.
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, Register Reg, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE intrinsic for either a value in a register or a register-indirect address and inserts it at position I.
 
MachineInstrBuilder llvm::BuildMI (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const DebugLoc &DL, const MCInstrDesc &MCID, bool IsIndirect, ArrayRef< MachineOperand > MOs, const MDNode *Variable, const MDNode *Expr)
 This version of the builder builds a DBG_VALUE, DBG_INSTR_REF, or DBG_VALUE_LIST intrinsic for a machine operand and inserts it at position I.
 
MachineInstrllvm::buildDbgValueForSpill (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MachineInstr &Orig, int FrameIndex, Register SpillReg)
 Clone a DBG_VALUE whose value has been spilled to FrameIndex.
 
MachineInstrllvm::buildDbgValueForSpill (MachineBasicBlock &BB, MachineBasicBlock::iterator I, const MachineInstr &Orig, int FrameIndex, const SmallVectorImpl< const MachineOperand * > &SpilledOperands)
 
void llvm::updateDbgValueForSpill (MachineInstr &Orig, int FrameIndex, Register Reg)
 Update a DBG_VALUE whose value has been spilled to FrameIndex.
 
unsigned llvm::getDefRegState (bool B)
 
unsigned llvm::getImplRegState (bool B)
 
unsigned llvm::getKillRegState (bool B)
 
unsigned llvm::getDeadRegState (bool B)
 
unsigned llvm::getUndefRegState (bool B)
 
unsigned llvm::getInternalReadRegState (bool B)
 
unsigned llvm::getDebugRegState (bool B)
 
unsigned llvm::getRenamableRegState (bool B)
 
unsigned llvm::getRegState (const MachineOperand &RegOp)
 Get all register state flags from machine operand RegOp.