LLVM API Documentation

llvm::MachineInstr Class Reference

#include <MachineInstr.h>

Collaboration diagram for llvm::MachineInstr:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ValOpIterator< const
MachineInstr *, const Value * > 
const_val_op_iterator
typedef ValOpIterator< MachineInstr *,
Value * > 
val_op_iterator

Public Member Functions

 MachineInstr (short Opcode, unsigned numOperands)
 MachineInstr (short Opcode, unsigned numOperands, bool XX, bool YY)
 MachineInstr (MachineBasicBlock *MBB, short Opcode, unsigned numOps)
 ~MachineInstr ()
const MachineBasicBlockgetParent () const
MachineBasicBlockgetParent ()
const int getOpcode () const
unsigned getNumOperands () const
const MachineOperandgetOperand (unsigned i) const
MachineOperandgetOperand (unsigned i)
const MachineOperandgetExplOrImplOperand (unsigned i) const
unsigned getNumImplicitRefs () const
MachineOperandgetImplicitOp (unsigned i)
const MachineOperandgetImplicitOp (unsigned i) const
ValuegetImplicitRef (unsigned i)
const ValuegetImplicitRef (unsigned i) const
void addImplicitRef (Value *V, bool isDef=false, bool isDefAndUse=false)
void setImplicitRef (unsigned i, Value *V)
MachineInstrclone () const
void print (std::ostream &OS, const TargetMachine *TM) const
void dump () const
void addRegOperand (Value *V, bool isDef, bool isDefAndUse=false)
void addRegOperand (Value *V, MachineOperand::UseType UTy=MachineOperand::Use, bool isPCRelative=false)
void addCCRegOperand (Value *V, MachineOperand::UseType UTy=MachineOperand::Use)
void addRegOperand (int reg, bool isDef)
void addRegOperand (int reg, MachineOperand::UseType UTy=MachineOperand::Use)
void addPCDispOperand (Value *V)
void addMachineRegOperand (int reg, bool isDef)
void addMachineRegOperand (int reg, MachineOperand::UseType UTy=MachineOperand::Use)
void addZeroExtImmOperand (int intValue)
void addZeroExtImm64Operand (uint64_t intValue)
void addSignExtImmOperand (int intValue)
void addMachineBasicBlockOperand (MachineBasicBlock *MBB)
void addFrameIndexOperand (unsigned Idx)
void addConstantPoolIndexOperand (unsigned I, int Offset=0)
void addGlobalAddressOperand (GlobalValue *GV, bool isPCRelative, int Offset)
void addExternalSymbolOperand (const char *SymName, bool isPCRelative)
void replace (short Opcode, unsigned numOperands)
void setOpcode (unsigned Op)
void RemoveOperand (unsigned i)
void SetMachineOperandVal (unsigned i, MachineOperand::MachineOperandType operandType, Value *V)
void SetMachineOperandConst (unsigned i, MachineOperand::MachineOperandType operandType, int intValue)
void SetMachineOperandReg (unsigned i, int regNum)
unsigned substituteValue (const Value *oldVal, Value *newVal, bool defsOnly, bool notDefsAndUses, bool &someArgsWereIgnored)
void SetRegForOperand (unsigned i, int regNum)
void SetRegForImplicitRef (unsigned i, int regNum)
val_op_iterator begin ()
val_op_iterator end ()
const_val_op_iterator begin () const
const_val_op_iterator end () const

Friends

struct ilist_traits< MachineInstr >
std::ostream & operator<< (std::ostream &os, const MachineInstr &minstr)

Classes

class  ValOpIterator

Detailed Description

Definition at line 399 of file MachineInstr.h.


Member Typedef Documentation

typedef ValOpIterator<const MachineInstr*,const Value*> llvm::MachineInstr::const_val_op_iterator

Definition at line 515 of file MachineInstr.h.

typedef ValOpIterator< MachineInstr*, Value*> llvm::MachineInstr::val_op_iterator

Definition at line 517 of file MachineInstr.h.


Constructor & Destructor Documentation

MachineInstr::MachineInstr ( short  Opcode,
unsigned  numOperands 
)

Definition at line 40 of file MachineInstr.cpp.

References llvm::LeakDetector::addGarbageObject().

MachineInstr::MachineInstr ( short  Opcode,
unsigned  numOperands,
bool  XX,
bool  YY 
)

MachineInstr ctor - This constructor only does a _reserve_ of the operands, not a resize for them. It is expected that if you use this that you call add* methods below to fill up the operands, instead of the Set methods. Eventually, the "resizing" ctors will be phased out.

Definition at line 54 of file MachineInstr.cpp.

References llvm::LeakDetector::addGarbageObject().

MachineInstr::MachineInstr ( MachineBasicBlock MBB,
short  Opcode,
unsigned  numOps 
)

MachineInstr ctor - Work exactly the same as the ctor above, except that the MachineInstr is created and added to the end of the specified basic block.

Definition at line 64 of file MachineInstr.cpp.

References llvm::LeakDetector::addGarbageObject(), MBB, and llvm::MachineBasicBlock::push_back().

MachineInstr::~MachineInstr (  ) 

Definition at line 92 of file MachineInstr.cpp.

References llvm::LeakDetector::removeGarbageObject().


Member Function Documentation

void llvm::MachineInstr::addCCRegOperand ( Value V,
MachineOperand::UseType  UTy = MachineOperand::Use 
) [inline]

Definition at line 546 of file MachineInstr.h.

References llvm::MachineOperand::MO_CCRegister, and V.

Referenced by llvm::MachineInstrBuilder::addCCReg().

void llvm::MachineInstr::addConstantPoolIndexOperand ( unsigned  I,
int  Offset = 0 
) [inline]

addConstantPoolndexOperand - Add a constant pool object index to the instruction.

Definition at line 651 of file MachineInstr.h.

References llvm::MachineOperand::MO_ConstantPoolIndex.

Referenced by llvm::MachineInstrBuilder::addConstantPoolIndex().

void llvm::MachineInstr::addExternalSymbolOperand ( const char *  SymName,
bool  isPCRelative 
) [inline]

addExternalSymbolOperand - Add an external symbol operand to this instr

Definition at line 667 of file MachineInstr.h.

Referenced by llvm::MachineInstrBuilder::addExternalSymbol(), and llvm::ScheduleDAG::EmitNode().

void llvm::MachineInstr::addFrameIndexOperand ( unsigned  Idx  )  [inline]

addFrameIndexOperand - Add an abstract frame index to the instruction

Definition at line 642 of file MachineInstr.h.

References llvm::MachineOperand::MO_FrameIndex.

Referenced by llvm::MachineInstrBuilder::addFrameIndex().

void llvm::MachineInstr::addGlobalAddressOperand ( GlobalValue GV,
bool  isPCRelative,
int  Offset 
) [inline]

Definition at line 657 of file MachineInstr.h.

References GV, llvm::MachineOperand::MO_GlobalAddress, and llvm::MachineOperand::Use.

Referenced by llvm::MachineInstrBuilder::addGlobalAddress().

void llvm::MachineInstr::addImplicitRef ( Value V,
bool  isDef = false,
bool  isDefAndUse = false 
) [inline]

Definition at line 489 of file MachineInstr.h.

References addRegOperand(), and V.

void llvm::MachineInstr::addMachineBasicBlockOperand ( MachineBasicBlock MBB  )  [inline]

Definition at line 634 of file MachineInstr.h.

References MBB.

Referenced by llvm::MachineInstrBuilder::addMBB().

void llvm::MachineInstr::addMachineRegOperand ( int  reg,
MachineOperand::UseType  UTy = MachineOperand::Use 
) [inline]

addMachineRegOperand - Add a virtual register operand to this MachineInstr

Definition at line 596 of file MachineInstr.h.

References llvm::MachineOperand::MO_MachineRegister.

void llvm::MachineInstr::addMachineRegOperand ( int  reg,
bool  isDef 
) [inline]

addMachineRegOperand - Add a virtual register operand to this MachineInstr

Definition at line 586 of file MachineInstr.h.

References llvm::MachineOperand::Def, llvm::MachineOperand::MO_MachineRegister, and llvm::MachineOperand::Use.

Referenced by llvm::MachineInstrBuilder::addMReg(), and llvm::ScheduleDAG::EmitNode().

void llvm::MachineInstr::addPCDispOperand ( Value V  )  [inline]

addPCDispOperand - Add a PC relative displacement operand to the MI

Definition at line 577 of file MachineInstr.h.

References llvm::MachineOperand::MO_PCRelativeDisp, llvm::MachineOperand::Use, and V.

Referenced by llvm::MachineInstrBuilder::addPCDisp().

void llvm::MachineInstr::addRegOperand ( int  reg,
MachineOperand::UseType  UTy = MachineOperand::Use 
) [inline]

addRegOperand - Add a symbolic virtual register reference...

Definition at line 567 of file MachineInstr.h.

References llvm::MachineOperand::MO_VirtualRegister.

void llvm::MachineInstr::addRegOperand ( int  reg,
bool  isDef 
) [inline]

addRegOperand - Add a symbolic virtual register reference...

Definition at line 557 of file MachineInstr.h.

References llvm::MachineOperand::Def, llvm::MachineOperand::MO_VirtualRegister, and llvm::MachineOperand::Use.

void llvm::MachineInstr::addRegOperand ( Value V,
MachineOperand::UseType  UTy = MachineOperand::Use,
bool  isPCRelative = false 
) [inline]

Definition at line 537 of file MachineInstr.h.

References llvm::MachineOperand::MO_VirtualRegister, and V.

void llvm::MachineInstr::addRegOperand ( Value V,
bool  isDef,
bool  isDefAndUse = false 
) [inline]

addRegOperand - Add a MO_VirtualRegister operand to the end of the operands list...

Definition at line 527 of file MachineInstr.h.

References llvm::MachineOperand::Def, llvm::MachineOperand::MO_VirtualRegister, llvm::MachineOperand::Use, llvm::MachineOperand::UseAndDef, and V.

Referenced by addImplicitRef(), llvm::MachineInstrBuilder::addReg(), CreateVirtualRegisters(), and llvm::ScheduleDAG::EmitNode().

void llvm::MachineInstr::addSignExtImmOperand ( int  intValue  )  [inline]

addSignExtImmOperand - Add a zero extended constant argument to the machine instruction.

Definition at line 627 of file MachineInstr.h.

References llvm::MachineOperand::MO_SignExtendedImmed.

Referenced by llvm::MachineInstrBuilder::addSImm().

void llvm::MachineInstr::addZeroExtImm64Operand ( uint64_t  intValue  )  [inline]

addZeroExtImm64Operand - Add a zero extended 64-bit constant argument to the machine instruction.

Definition at line 617 of file MachineInstr.h.

References llvm::MachineOperand::MO_UnextendedImmed.

Referenced by llvm::MachineInstrBuilder::addImm64(), and llvm::ScheduleDAG::EmitNode().

void llvm::MachineInstr::addZeroExtImmOperand ( int  intValue  )  [inline]

addZeroExtImmOperand - Add a zero extended constant argument to the machine instruction.

Definition at line 607 of file MachineInstr.h.

References llvm::MachineOperand::MO_UnextendedImmed.

Referenced by llvm::MachineInstrBuilder::addImm(), and llvm::MachineInstrBuilder::addZImm().

const_val_op_iterator llvm::MachineInstr::begin (  )  const [inline]

Definition at line 773 of file MachineInstr.h.

References llvm::MachineInstr::ValOpIterator< MITy, VTy >::begin().

val_op_iterator llvm::MachineInstr::begin (  )  [inline]

Definition at line 771 of file MachineInstr.h.

References llvm::MachineInstr::ValOpIterator< MITy, VTy >::begin().

Referenced by llvm::applyTranferFuncForMInst(), llvm::LiveRangeInfo::coalesceLRs(), llvm::LiveVariables::runOnMachineFunction(), and substituteValue().

MachineInstr * MachineInstr::clone (  )  const

clone - Create a copy of 'this' instruction that is identical in all ways except the the instruction has no parent, prev, or next.

Definition at line 99 of file MachineInstr.cpp.

void MachineInstr::dump (  )  const

Definition at line 212 of file MachineInstr.cpp.

Referenced by llvm::LiveRangeInfo::coalesceLRs(), and llvm::AsmPrinter::printInlineAsm().

const_val_op_iterator llvm::MachineInstr::end (  )  const [inline]

Definition at line 776 of file MachineInstr.h.

References llvm::MachineInstr::ValOpIterator< MITy, VTy >::end().

val_op_iterator llvm::MachineInstr::end (  )  [inline]

Definition at line 772 of file MachineInstr.h.

References llvm::MachineInstr::ValOpIterator< MITy, VTy >::end().

Referenced by llvm::applyTranferFuncForMInst(), llvm::LiveRangeInfo::coalesceLRs(), and substituteValue().

const MachineOperand& llvm::MachineInstr::getExplOrImplOperand ( unsigned  i  )  const [inline]

Definition at line 462 of file MachineInstr.h.

References getImplicitOp(), getNumOperands(), and getOperand().

const MachineOperand& llvm::MachineInstr::getImplicitOp ( unsigned  i  )  const [inline]

Definition at line 477 of file MachineInstr.h.

MachineOperand& llvm::MachineInstr::getImplicitOp ( unsigned  i  )  [inline]

Definition at line 473 of file MachineInstr.h.

Referenced by llvm::applyTranferFuncForMInst(), getExplOrImplOperand(), getImplicitRef(), llvm::operator<<(), print(), SetRegForImplicitRef(), and substituteValue().

const Value* llvm::MachineInstr::getImplicitRef ( unsigned  i  )  const [inline]

Definition at line 485 of file MachineInstr.h.

References getImplicitOp(), and llvm::MachineOperand::getVRegValue().

Value* llvm::MachineInstr::getImplicitRef ( unsigned  i  )  [inline]

Definition at line 482 of file MachineInstr.h.

References getImplicitOp(), and llvm::MachineOperand::getVRegValue().

Referenced by llvm::applyTranferFuncForMInst(), llvm::CallArgsDescriptor::get(), llvm::operator<<(), print(), and substituteValue().

unsigned llvm::MachineInstr::getNumImplicitRefs (  )  const [inline]

Definition at line 471 of file MachineInstr.h.

Referenced by llvm::applyTranferFuncForMInst(), llvm::CallArgsDescriptor::get(), llvm::operator<<(), print(), replace(), setImplicitRef(), and substituteValue().

unsigned llvm::MachineInstr::getNumOperands (  )  const [inline]

Access to explicit operands of the instruction.

Definition at line 445 of file MachineInstr.h.

Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), getExplOrImplOperand(), getNumBytesForInstruction(), getOperand(), llvm::LiveVariables::instructionChanged(), InstructionUsesRegister(), llvm::X86SharedAsmPrinter::isMem(), llvm::X86InstrInfo::isMoveInstr(), llvm::PPCInstrInfo::isMoveInstr(), llvm::IA64InstrInfo::isMoveInstr(), llvm::AlphaInstrInfo::isMoveInstr(), llvm::MSchedGraphSB::MSchedGraphSB(), llvm::operator<<(), print(), llvm::AsmPrinter::printInlineAsm(), llvm::SparcV9CodeEmitter::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), setImplicitRef(), SetMachineOperandConst(), SetMachineOperandReg(), and SetRegForOperand().

const int llvm::MachineInstr::getOpcode (  )  const [inline]

getOpcode - Returns the opcode of this MachineInstr.

Definition at line 441 of file MachineInstr.h.

Referenced by llvm::X86InstrInfo::commuteInstruction(), llvm::PPCInstrInfo::commuteInstruction(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::X86RegisterInfo::eliminateCallFramePseudoInstr(), llvm::SparcRegisterInfo::eliminateCallFramePseudoInstr(), llvm::PPCRegisterInfo::eliminateCallFramePseudoInstr(), llvm::IA64RegisterInfo::eliminateCallFramePseudoInstr(), llvm::AlphaRegisterInfo::eliminateCallFramePseudoInstr(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::foldMemoryOperand(), llvm::SparcRegisterInfo::foldMemoryOperand(), llvm::PPCRegisterInfo::foldMemoryOperand(), llvm::AlphaRegisterInfo::foldMemoryOperand(), llvm::SchedPriorities::getNextHighest(), getNumBytesForInstruction(), llvm::SchedGraphNode::getOpcode(), llvm::X86TargetLowering::InsertAtEndOfBasicBlock(), llvm::PPCTargetLowering::InsertAtEndOfBasicBlock(), llvm::X86InstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::PPCInstrInfo::isLoadFromStackSlot(), llvm::AlphaInstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isMoveInstr(), llvm::SparcInstrInfo::isMoveInstr(), llvm::PPCInstrInfo::isMoveInstr(), llvm::IA64InstrInfo::isMoveInstr(), llvm::AlphaInstrInfo::isMoveInstr(), llvm::X86InstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::PPCInstrInfo::isStoreToStackSlot(), llvm::AlphaInstrInfo::isStoreToStackSlot(), llvm::IsUselessCopy(), llvm::MSchedGraphSB::MSchedGraphSB(), llvm::operator<<(), print(), llvm::X86ATTAsmPrinter::printMachineInstruction(), llvm::ReplaceNopsWithUsefulInstr(), llvm::LiveVariables::runOnMachineFunction(), llvm::SparcV9RegInfo::suggestReg4RetValue(), and llvm::SparcV9RegInfo::suggestRegs4CallArgs().

MachineOperand& llvm::MachineInstr::getOperand ( unsigned  i  )  [inline]

Definition at line 451 of file MachineInstr.h.

References getNumOperands().

const MachineOperand& llvm::MachineInstr::getOperand ( unsigned  i  )  const [inline]

Definition at line 447 of file MachineInstr.h.

References getNumOperands().

Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::X86InstrInfo::commuteInstruction(), llvm::TargetInstrInfo::commuteInstruction(), llvm::PPCInstrInfo::commuteInstruction(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::SparcV9RegInfo::cpMem2RegMI(), llvm::SparcV9RegInfo::cpReg2MemMI(), llvm::X86RegisterInfo::eliminateCallFramePseudoInstr(), llvm::SparcRegisterInfo::eliminateCallFramePseudoInstr(), llvm::PPCRegisterInfo::eliminateCallFramePseudoInstr(), llvm::IA64RegisterInfo::eliminateCallFramePseudoInstr(), llvm::AlphaRegisterInfo::eliminateCallFramePseudoInstr(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::foldMemoryOperand(), llvm::PPCRegisterInfo::foldMemoryOperand(), llvm::AlphaRegisterInfo::foldMemoryOperand(), llvm::CallArgsDescriptor::get(), getExplOrImplOperand(), getNumBytesForInstruction(), HandleVRSaveUpdate(), llvm::X86TargetLowering::InsertAtEndOfBasicBlock(), llvm::PPCTargetLowering::InsertAtEndOfBasicBlock(), llvm::LiveVariables::instructionChanged(), InstructionUsesRegister(), llvm::X86InstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::PPCInstrInfo::isLoadFromStackSlot(), llvm::AlphaInstrInfo::isLoadFromStackSlot(), llvm::X86SharedAsmPrinter::isMem(), llvm::X86InstrInfo::isMoveInstr(), llvm::SparcInstrInfo::isMoveInstr(), llvm::PPCInstrInfo::isMoveInstr(), llvm::IA64InstrInfo::isMoveInstr(), llvm::AlphaInstrInfo::isMoveInstr(), llvm::X86InstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::PPCInstrInfo::isStoreToStackSlot(), llvm::AlphaInstrInfo::isStoreToStackSlot(), llvm::IsUselessCopy(), llvm::isVarArgsCall(), MakeMIInst(), MakeMRIInst(), MakeMRInst(), MakeRMIInst(), MakeRMInst(), llvm::MSchedGraphSB::MSchedGraphSB(), llvm::operator<<(), print(), llvm::AsmPrinter::printInlineAsm(), llvm::X86IntelAsmPrinter::printMemReference(), llvm::X86ATTAsmPrinter::printMemReference(), llvm::X86IntelAsmPrinter::printOperand(), llvm::X86ATTAsmPrinter::printOperand(), llvm::X86IntelAsmPrinter::printSSECC(), llvm::X86ATTAsmPrinter::printSSECC(), llvm::SparcV9CodeEmitter::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::SparcV9RegInfo::suggestReg4RetValue(), and llvm::VirtRegMap::virtFolded().

MachineBasicBlock* llvm::MachineInstr::getParent (  )  [inline]

Definition at line 437 of file MachineInstr.h.

const MachineBasicBlock* llvm::MachineInstr::getParent (  )  const [inline]

Definition at line 436 of file MachineInstr.h.

Referenced by llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::foldMemoryOperand(), llvm::LiveVariables::HandleVirtRegUse(), HandleVRSaveUpdate(), llvm::LiveVariables::MarkVirtRegAliveInBlock(), and llvm::operator<<().

void MachineInstr::print ( std::ostream &  OS,
const TargetMachine TM 
) const

Definition at line 322 of file MachineInstr.cpp.

References getImplicitOp(), getImplicitRef(), llvm::TargetMachine::getInstrInfo(), llvm::TargetInstrInfo::getName(), getNumImplicitRefs(), getNumOperands(), getOpcode(), getOperand(), OutputValue(), and TM.

Referenced by llvm::operator<<().

void llvm::MachineInstr::RemoveOperand ( unsigned  i  )  [inline]

RemoveOperand - Erase an operand from an instruction, leaving it with one fewer operand than it started with.

Definition at line 689 of file MachineInstr.h.

void MachineInstr::replace ( short  Opcode,
unsigned  numOperands 
)

replace - Support to rewrite a machine instruction in place: for now, simply replace() and then set new operands with Set.*Operand methods below.

Definition at line 116 of file MachineInstr.cpp.

References getNumImplicitRefs().

void llvm::MachineInstr::setImplicitRef ( unsigned  i,
Value V 
) [inline]

Definition at line 493 of file MachineInstr.h.

References getNumImplicitRefs(), getNumOperands(), llvm::MachineOperand::MO_VirtualRegister, SetMachineOperandVal(), and V.

void MachineInstr::SetMachineOperandConst ( unsigned  i,
MachineOperand::MachineOperandType  operandType,
int  intValue 
)

Definition at line 134 of file MachineInstr.cpp.

References getNumOperands(), and llvm::TargetInstrDescriptors.

Referenced by llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), and llvm::SparcV9CodeEmitter::runOnMachineFunction().

void MachineInstr::SetMachineOperandReg ( unsigned  i,
int  regNum 
)

Definition at line 148 of file MachineInstr.cpp.

References getNumOperands(), and llvm::MachineOperand::MO_MachineRegister.

Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::TargetInstrInfo::commuteInstruction(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), and llvm::AlphaRegisterInfo::eliminateFrameIndex().

void MachineInstr::SetMachineOperandVal ( unsigned  i,
MachineOperand::MachineOperandType  operandType,
Value V 
)

Definition at line 124 of file MachineInstr.cpp.

References V.

Referenced by setImplicitRef().

void llvm::MachineInstr::setOpcode ( unsigned  Op  )  [inline]

setOpcode - Replace the opcode of the current instruction with a new one.

Definition at line 684 of file MachineInstr.h.

Referenced by llvm::PPCRegisterInfo::eliminateFrameIndex().

void MachineInstr::SetRegForImplicitRef ( unsigned  i,
int  regNum 
)

Definition at line 163 of file MachineInstr.cpp.

References getImplicitOp(), and llvm::MachineOperand::setRegForValue().

void MachineInstr::SetRegForOperand ( unsigned  i,
int  regNum 
)

Definition at line 157 of file MachineInstr.cpp.

References getNumOperands().

unsigned MachineInstr::substituteValue ( const Value oldVal,
Value newVal,
bool  defsOnly,
bool  notDefsAndUses,
bool &  someArgsWereIgnored 
)

substituteValue - Substitute all occurrences of Value* oldVal with newVal in all operands and all implicit refs. If defsOnly == true, substitute defs only.

FIXME: Fold this into its single caller, at SparcInstrSelection.cpp:2865, or make it a static function in that file.

Definition at line 175 of file MachineInstr.cpp.

References begin(), E, end(), getImplicitOp(), getImplicitRef(), getNumImplicitRefs(), O, and Op.


Friends And Related Function Documentation

friend struct ilist_traits< MachineInstr > [friend]

Definition at line 416 of file MachineInstr.h.

std::ostream& operator<< ( std::ostream &  os,
const MachineInstr minstr 
) [friend]


The documentation for this class was generated from the following files: