LLVM API Documentation
#include <MachineInstr.h>


Definition at line 38 of file MachineInstr.h.
| const MachineBasicBlock* llvm::MachineInstr::getParent | ( | ) | const [inline] |
Definition at line 84 of file MachineInstr.h.
Referenced by llvm::addFrameReference(), llvm::LiveIntervals::addIntervalsForSpillsFast(), llvm::LiveIntervals::addLiveRangeToEndOfBlock(), llvm::MachineInstrBuilder::addMemOperand(), llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::MachineOperand::ChangeToRegister(), llvm::X86InstrInfo::commuteInstruction(), llvm::TargetInstrInfoImpl::commuteInstruction(), llvm::PPCInstrInfo::commuteInstruction(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMInstrInfo::convertToThreeAddress(), llvm::MachineDominatorTree::dominates(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SPURegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::ARMRegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), eraseFromParent(), getConflictWeight(), llvm::PPCInstrInfo::GetInstSizeInBytes(), llvm::ARMInstrInfo::GetInstSizeInBytes(), GetInstSizeWithDesc(), llvm::LiveVariables::HandleVirtRegUse(), HandleVRSaveUpdate(), llvm::XCoreInstrInfo::isInvariantLoad(), llvm::X86InstrInfo::isInvariantLoad(), isLiveInButUnusedBefore(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), MakeM0Inst(), precedes(), llvm::MachineOperand::print(), llvm::AsmPrinter::PrintSpecial(), removeFromParent(), RemoveVRSaveCode(), llvm::LiveVariables::runOnMachineFunction(), and llvm::MachineOperand::setReg().
| MachineBasicBlock* llvm::MachineInstr::getParent | ( | ) | [inline] |
Definition at line 85 of file MachineInstr.h.
| const TargetInstrDesc& llvm::MachineInstr::getDesc | ( | ) | const [inline] |
getDesc - Returns the target instruction descriptor of this MachineInstr.
Definition at line 89 of file MachineInstr.h.
Referenced by llvm::addFrameReference(), llvm::LiveIntervals::addIntervalsForSpills(), llvm::MipsInstrInfo::AnalyzeBranch(), llvm::RegScavenger::backward(), llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::X86InstrInfo::canFoldMemoryOperand(), llvm::TargetInstrInfoImpl::CommuteChangesDestination(), llvm::TargetInstrInfoImpl::commuteInstruction(), llvm::PPCInstrInfo::commuteInstruction(), llvm::ScheduleDAGInstrs::ComputeLatency(), llvm::ARMInstrInfo::convertToThreeAddress(), copyPredicates(), llvm::ARMInstrInfo::DefinesPredicate(), llvm::X86InstrInfo::determineREX(), llvm::ARMRegisterInfo::eliminateFrameIndex(), FilterFoldedOps(), findFirstPredOperandIdx(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::RegScavenger::forward(), FuseTwoAddrInst(), llvm::X86InstrInfo::GetInstSizeInBytes(), llvm::ARMInstrInfo::GetInstSizeInBytes(), IsBetterFallthrough(), llvm::ARMInstrInfo::isMoveInstr(), isRegReDefinedByTwoAddr(), isSafeToReMat(), llvm::TargetInstrInfo::isTriviallyReMaterializable(), isTwoAddrUse(), llvm::X86InstrInfo::isUnpredicatedTerminator(), llvm::TargetInstrInfo::isUnpredicatedTerminator(), llvm::TargetInstrInfoImpl::PredicateInstruction(), print(), llvm::LiveVariables::runOnMachineFunction(), and UpdateKills().
| int llvm::MachineInstr::getOpcode | ( | ) | const [inline] |
getOpcode - Returns the opcode of this MachineInstr.
Definition at line 93 of file MachineInstr.h.
References llvm::TargetInstrDesc::Opcode.
Referenced by llvm::XCoreInstrInfo::AnalyzeBranch(), llvm::SPUInstrInfo::AnalyzeBranch(), llvm::PPCInstrInfo::AnalyzeBranch(), llvm::MipsInstrInfo::AnalyzeBranch(), llvm::ARMInstrInfo::AnalyzeBranch(), llvm::AlphaInstrInfo::AnalyzeBranch(), BBIsJumpedOver(), llvm::XCoreInstrInfo::BlockHasNoFallThrough(), llvm::X86InstrInfo::BlockHasNoFallThrough(), llvm::PPCInstrInfo::BlockHasNoFallThrough(), llvm::MipsInstrInfo::BlockHasNoFallThrough(), llvm::ARMInstrInfo::BlockHasNoFallThrough(), llvm::AlphaInstrInfo::BlockHasNoFallThrough(), llvm::X86InstrInfo::canFoldMemoryOperand(), llvm::SPUInstrInfo::canFoldMemoryOperand(), llvm::PPCInstrInfo::canFoldMemoryOperand(), llvm::ARMInstrInfo::canFoldMemoryOperand(), llvm::X86InstrInfo::commuteInstruction(), llvm::PPCInstrInfo::commuteInstruction(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMInstrInfo::convertToThreeAddress(), llvm::XCoreRegisterInfo::eliminateCallFramePseudoInstr(), llvm::X86RegisterInfo::eliminateCallFramePseudoInstr(), llvm::SparcRegisterInfo::eliminateCallFramePseudoInstr(), llvm::IA64RegisterInfo::eliminateCallFramePseudoInstr(), llvm::ARMRegisterInfo::eliminateCallFramePseudoInstr(), llvm::AlphaRegisterInfo::eliminateCallFramePseudoInstr(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::SPURegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMRegisterInfo::eliminateFrameIndex(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::SparcTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::AlphaTargetLowering::EmitInstrWithCustomInserter(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::SPUInstrInfo::foldMemoryOperandImpl(), llvm::SparcInstrInfo::foldMemoryOperandImpl(), llvm::PPCInstrInfo::foldMemoryOperandImpl(), llvm::MipsInstrInfo::foldMemoryOperandImpl(), llvm::ARMInstrInfo::foldMemoryOperandImpl(), llvm::AlphaInstrInfo::foldMemoryOperandImpl(), llvm::RegScavenger::forward(), llvm::PPCInstrInfo::GetInstSizeInBytes(), llvm::ARMInstrInfo::GetInstSizeInBytes(), getLSMultipleTransferSize(), llvm::LiveIntervals::getVNInfoSourceReg(), HashMachineInstr(), isBrAnalysisUnpredicatedTerminator(), isCondBranch(), isCSRestore(), isDebugLabel(), isIdenticalTo(), llvm::XCoreInstrInfo::isInvariantLoad(), isLabel(), llvm::XCoreInstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isLoadFromStackSlot(), llvm::SPUInstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::PPCInstrInfo::isLoadFromStackSlot(), llvm::PIC16InstrInfo::isLoadFromStackSlot(), llvm::MipsInstrInfo::isLoadFromStackSlot(), llvm::ARMInstrInfo::isLoadFromStackSlot(), llvm::AlphaInstrInfo::isLoadFromStackSlot(), isMatchingDecrement(), isMatchingIncrement(), isMemoryOp(), llvm::XCoreInstrInfo::isMoveInstr(), llvm::X86InstrInfo::isMoveInstr(), llvm::SPUInstrInfo::isMoveInstr(), llvm::SparcInstrInfo::isMoveInstr(), llvm::PPCInstrInfo::isMoveInstr(), llvm::PIC16InstrInfo::isMoveInstr(), llvm::MipsInstrInfo::isMoveInstr(), llvm::IA64InstrInfo::isMoveInstr(), llvm::ARMInstrInfo::isMoveInstr(), llvm::AlphaInstrInfo::isMoveInstr(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), isSourceDefinedByImplicitDef(), llvm::XCoreInstrInfo::isStoreToStackSlot(), llvm::X86InstrInfo::isStoreToStackSlot(), llvm::SPUInstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::PPCInstrInfo::isStoreToStackSlot(), llvm::PIC16InstrInfo::isStoreToStackSlot(), llvm::MipsInstrInfo::isStoreToStackSlot(), llvm::ARMInstrInfo::isStoreToStackSlot(), llvm::AlphaInstrInfo::isStoreToStackSlot(), isUncondBranch(), mergeBaseUpdateLoadStore(), mergeBaseUpdateLSMultiple(), llvm::ARMInstrInfo::PredicateInstruction(), regIsPICBase(), llvm::X86InstrInfo::reMaterialize(), llvm::ARMInstrInfo::reMaterialize(), llvm::SimpleRegisterCoalescing::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| unsigned llvm::MachineInstr::getNumOperands | ( | ) | const [inline] |
Access to explicit operands of the instruction.
Definition at line 97 of file MachineInstr.h.
Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::LiveIntervals::addIntervalsForSpillsFast(), addRegisterDead(), addRegisterKilled(), llvm::MipsInstrInfo::AnalyzeBranch(), llvm::RegScavenger::backward(), llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::LiveIntervals::conflictsWithPhysRegDef(), llvm::LiveIntervals::conflictsWithPhysRegRef(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMInstrInfo::convertToThreeAddress(), copyKillDeadInfo(), copyPredicates(), llvm::ARMInstrInfo::DefinesPredicate(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SPURegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::ARMRegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), findFirstPredOperandIdx(), findRegisterDefOperandIdx(), findRegisterUseOperandIdx(), llvm::RegScavenger::forward(), FuseInst(), FuseTwoAddrInst(), getLSMultipleTransferSize(), getNumExplicitOperands(), getOperand(), HashMachineInstr(), hasLiveCondCodeDef(), InvalidateKills(), InvalidateRegDef(), isIdenticalTo(), llvm::X86InstrInfo::isInvariantLoad(), llvm::isMem(), llvm::X86InstrInfo::isMoveInstr(), llvm::SPUInstrInfo::isMoveInstr(), llvm::PPCInstrInfo::isMoveInstr(), llvm::IA64InstrInfo::isMoveInstr(), llvm::AlphaInstrInfo::isMoveInstr(), isReadModWriteImplicitDef(), isReadModWriteImplicitKill(), isSafeToReMat(), isSourceDefinedByImplicitDef(), mergeBaseUpdateLSMultiple(), llvm::TargetInstrInfoImpl::PredicateInstruction(), print(), llvm::AsmPrinter::printInlineAsm(), RedefinesSuperRegPart(), ReMaterialize(), llvm::VirtRegMap::RemoveMachineInstrFromMaps(), llvm::LiveVariables::removeVirtualRegisterDead(), llvm::LiveVariables::removeVirtualRegisterKilled(), llvm::LiveVariables::removeVirtualRegistersKilled(), llvm::SimpleRegisterCoalescing::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::X86InstrInfo::unfoldMemoryOperand(), and UpdateKills().
| const MachineOperand& llvm::MachineInstr::getOperand | ( | unsigned | i | ) | const [inline] |
Definition at line 99 of file MachineInstr.h.
References getNumOperands().
Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::LiveIntervals::addIntervalsForSpillsFast(), addRegisterDead(), addRegisterKilled(), llvm::XCoreInstrInfo::AnalyzeBranch(), llvm::SPUInstrInfo::AnalyzeBranch(), llvm::PPCInstrInfo::AnalyzeBranch(), llvm::MipsInstrInfo::AnalyzeBranch(), llvm::ARMInstrInfo::AnalyzeBranch(), llvm::AlphaInstrInfo::AnalyzeBranch(), llvm::RegScavenger::backward(), BBIsJumpedOver(), llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::SPUInstrInfo::canFoldMemoryOperand(), llvm::PPCInstrInfo::canFoldMemoryOperand(), llvm::ARMInstrInfo::canFoldMemoryOperand(), llvm::TargetInstrInfoImpl::CommuteChangesDestination(), llvm::X86InstrInfo::commuteInstruction(), llvm::TargetInstrInfoImpl::commuteInstruction(), llvm::PPCInstrInfo::commuteInstruction(), llvm::LiveIntervals::conflictsWithPhysRegDef(), llvm::LiveIntervals::conflictsWithPhysRegRef(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::ARMInstrInfo::convertToThreeAddress(), copyKillDeadInfo(), copyPredicates(), llvm::ARMInstrInfo::DefinesPredicate(), llvm::X86InstrInfo::determineREX(), llvm::XCoreRegisterInfo::eliminateCallFramePseudoInstr(), llvm::X86RegisterInfo::eliminateCallFramePseudoInstr(), llvm::SparcRegisterInfo::eliminateCallFramePseudoInstr(), llvm::IA64RegisterInfo::eliminateCallFramePseudoInstr(), llvm::ARMRegisterInfo::eliminateCallFramePseudoInstr(), llvm::AlphaRegisterInfo::eliminateCallFramePseudoInstr(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::SPURegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::IA64RegisterInfo::eliminateFrameIndex(), llvm::ARMRegisterInfo::eliminateFrameIndex(), llvm::AlphaRegisterInfo::eliminateFrameIndex(), llvm::PPCTargetLowering::EmitAtomicBinary(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::SparcTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::AlphaTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), llvm::X86RegisterInfo::emitPrologue(), emitSPUpdate(), encodeVFPRd(), encodeVFPRm(), encodeVFPRn(), FilterFoldedOps(), findRegisterDefOperand(), findRegisterDefOperandIdx(), findRegisterUseOperand(), findRegisterUseOperandIdx(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::SPUInstrInfo::foldMemoryOperandImpl(), llvm::SparcInstrInfo::foldMemoryOperandImpl(), llvm::PPCInstrInfo::foldMemoryOperandImpl(), llvm::MipsInstrInfo::foldMemoryOperandImpl(), llvm::ARMInstrInfo::foldMemoryOperandImpl(), llvm::AlphaInstrInfo::foldMemoryOperandImpl(), llvm::RegScavenger::forward(), FuseInst(), FuseTwoAddrInst(), getInstrPredicate(), llvm::PPCInstrInfo::GetInstSizeInBytes(), llvm::ARMInstrInfo::GetInstSizeInBytes(), GetInstSizeWithDesc(), getLSMultipleTransferSize(), getMemModRMByteSize(), getNumExplicitOperands(), llvm::ARMInstrInfo::getPredicate(), llvm::LiveIntervals::getVNInfoSourceReg(), HandleVRSaveUpdate(), HashMachineInstr(), hasLiveCondCodeDef(), InvalidateKills(), InvalidateRegDef(), isCSRestore(), isIdenticalTo(), llvm::XCoreInstrInfo::isInvariantLoad(), llvm::X86InstrInfo::isInvariantLoad(), llvm::XCoreInstrInfo::isLoadFromStackSlot(), llvm::X86InstrInfo::isLoadFromStackSlot(), llvm::SPUInstrInfo::isLoadFromStackSlot(), llvm::SparcInstrInfo::isLoadFromStackSlot(), llvm::PPCInstrInfo::isLoadFromStackSlot(), llvm::PIC16InstrInfo::isLoadFromStackSlot(), llvm::MipsInstrInfo::isLoadFromStackSlot(), llvm::ARMInstrInfo::isLoadFromStackSlot(), llvm::AlphaInstrInfo::isLoadFromStackSlot(), isMatchingDecrement(), isMatchingIncrement(), llvm::isMem(), isMemoryOp(), llvm::XCoreInstrInfo::isMoveInstr(), llvm::X86InstrInfo::isMoveInstr(), llvm::SPUInstrInfo::isMoveInstr(), llvm::SparcInstrInfo::isMoveInstr(), llvm::PPCInstrInfo::isMoveInstr(), llvm::PIC16InstrInfo::isMoveInstr(), llvm::MipsInstrInfo::isMoveInstr(), llvm::IA64InstrInfo::isMoveInstr(), llvm::ARMInstrInfo::isMoveInstr(), llvm::AlphaInstrInfo::isMoveInstr(), llvm::ARMInstrInfo::isPredicated(), isReadModWriteImplicitDef(), isReadModWriteImplicitKill(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), isRegReDefinedByTwoAddr(), isSafeToReMat(), isSourceDefinedByImplicitDef(), llvm::XCoreInstrInfo::isStoreToStackSlot(), llvm::X86InstrInfo::isStoreToStackSlot(), llvm::SPUInstrInfo::isStoreToStackSlot(), llvm::SparcInstrInfo::isStoreToStackSlot(), llvm::PPCInstrInfo::isStoreToStackSlot(), llvm::PIC16InstrInfo::isStoreToStackSlot(), llvm::MipsInstrInfo::isStoreToStackSlot(), llvm::ARMInstrInfo::isStoreToStackSlot(), llvm::AlphaInstrInfo::isStoreToStackSlot(), isTwoAddrUse(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), mergeBaseUpdateLoadStore(), mergeBaseUpdateLSMultiple(), llvm::TargetInstrInfoImpl::PredicateInstruction(), llvm::ARMInstrInfo::PredicateInstruction(), print(), llvm::X86IntelAsmPrinter::PrintAsmOperand(), llvm::X86ATTAsmPrinter::PrintAsmOperand(), llvm::AsmPrinter::printDeclare(), llvm::AsmPrinter::printImplicitDef(), llvm::AsmPrinter::printInlineAsm(), llvm::AsmPrinter::printLabel(), llvm::X86IntelAsmPrinter::printMemReference(), llvm::X86ATTAsmPrinter::printMemReference(), llvm::X86IntelAsmPrinter::printOperand(), llvm::X86ATTAsmPrinter::printOperand(), llvm::X86IntelAsmPrinter::printSSECC(), llvm::X86ATTAsmPrinter::printSSECC(), PropagateDeadness(), RedefinesSuperRegPart(), llvm::X86InstrInfo::reMaterialize(), ReMaterialize(), llvm::TargetInstrInfoImpl::reMaterialize(), llvm::ARMInstrInfo::reMaterialize(), llvm::VirtRegMap::RemoveMachineInstrFromMaps(), llvm::LiveVariables::removeVirtualRegisterDead(), llvm::LiveVariables::removeVirtualRegisterKilled(), llvm::LiveVariables::removeVirtualRegistersKilled(), llvm::SimpleRegisterCoalescing::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::X86InstrInfo::unfoldMemoryOperand(), and UpdateKills().
| MachineOperand& llvm::MachineInstr::getOperand | ( | unsigned | i | ) | [inline] |
| unsigned MachineInstr::getNumExplicitOperands | ( | ) | const |
getNumExplicitOperands - Returns the number of non-implicit operands.
Definition at line 566 of file MachineInstr.cpp.
References getNumOperands(), llvm::TargetInstrDesc::getNumOperands(), getOperand(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isReg(), and llvm::TargetInstrDesc::isVariadic().
| std::list<MachineMemOperand>::iterator llvm::MachineInstr::memoperands_begin | ( | ) | [inline] |
Access to memory operands of the instruction.
Definition at line 113 of file MachineInstr.h.
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::X86InstrInfo::foldMemoryOperandImpl(), hasOneMemOperand(), hasVolatileMemoryRef(), and print().
| std::list<MachineMemOperand>::iterator llvm::MachineInstr::memoperands_end | ( | ) | [inline] |
Definition at line 115 of file MachineInstr.h.
Referenced by llvm::TargetInstrInfo::foldMemoryOperand(), hasOneMemOperand(), hasVolatileMemoryRef(), and print().
| std::list<MachineMemOperand>::const_iterator llvm::MachineInstr::memoperands_begin | ( | ) | const [inline] |
Definition at line 117 of file MachineInstr.h.
| std::list<MachineMemOperand>::const_iterator llvm::MachineInstr::memoperands_end | ( | ) | const [inline] |
Definition at line 119 of file MachineInstr.h.
| bool llvm::MachineInstr::memoperands_empty | ( | ) | const [inline] |
Definition at line 121 of file MachineInstr.h.
Referenced by hasOneMemOperand(), hasVolatileMemoryRef(), and print().
| bool llvm::MachineInstr::hasOneMemOperand | ( | ) | const [inline] |
hasOneMemOperand - Return true if this instruction has exactly one MachineMemOperand.
Definition at line 125 of file MachineInstr.h.
References memoperands_begin(), memoperands_empty(), memoperands_end(), and llvm::next().
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), and llvm::X86InstrInfo::foldMemoryOperandImpl().
| bool llvm::MachineInstr::isIdenticalTo | ( | const MachineInstr * | Other | ) | const [inline] |
isIdenticalTo - Return true if this instruction is identical to (same opcode and same operands as) the specified instruction.
Definition at line 132 of file MachineInstr.h.
References getNumOperands(), getOpcode(), getOperand(), and llvm::MachineOperand::isIdenticalTo().
| MachineInstr * MachineInstr::removeFromParent | ( | ) |
removeFromParent - This method unlinks 'this' from the containing basic block, and returns it, but does not delete it.
removeFromParent - This method unlinks 'this' from the containing basic block, and returns it, but does not delete it.
Definition at line 540 of file MachineInstr.cpp.
References getParent(), and llvm::MachineBasicBlock::remove().
| void MachineInstr::eraseFromParent | ( | ) |
eraseFromParent - This method unlinks 'this' from the containing basic block and deletes it.
eraseFromParent - This method unlinks 'this' from the containing basic block, and deletes it.
Definition at line 549 of file MachineInstr.cpp.
References llvm::MachineBasicBlock::erase(), and getParent().
Referenced by llvm::XCoreInstrInfo::AnalyzeBranch(), llvm::SPUInstrInfo::AnalyzeBranch(), llvm::PPCInstrInfo::AnalyzeBranch(), llvm::MipsInstrInfo::AnalyzeBranch(), llvm::ARMInstrInfo::AnalyzeBranch(), llvm::AlphaInstrInfo::AnalyzeBranch(), CleanupConstantGlobalUsers(), HandleVRSaveUpdate(), and RemoveVRSaveCode().
| bool MachineInstr::isLabel | ( | ) | const |
isLabel - Returns true if the MachineInstr represents a label.
Definition at line 582 of file MachineInstr.cpp.
References llvm::TargetInstrInfo::DBG_LABEL, llvm::TargetInstrInfo::EH_LABEL, llvm::TargetInstrInfo::GC_LABEL, and getOpcode().
Referenced by llvm::ScheduleDAGInstrs::BuildSchedGraph(), and llvm::ARMInstrInfo::GetInstSizeInBytes().
| bool MachineInstr::isDebugLabel | ( | ) | const |
isDebugLabel - Returns true if the MachineInstr represents a debug label.
Definition at line 590 of file MachineInstr.cpp.
References llvm::TargetInstrInfo::DBG_LABEL, and getOpcode().
| bool llvm::MachineInstr::readsRegister | ( | unsigned | Reg, | |
| const TargetRegisterInfo * | TRI = NULL | |||
| ) | const [inline] |
readsRegister - Return true if the MachineInstr reads the specified register. If TargetRegisterInfo is passed, then it also checks if there is a read of a super-register.
Definition at line 161 of file MachineInstr.h.
References findRegisterUseOperandIdx(), and TRI.
Referenced by llvm::ARMInstrInfo::convertToThreeAddress(), and llvm::LiveVariables::runOnMachineFunction().
| bool llvm::MachineInstr::killsRegister | ( | unsigned | Reg, | |
| const TargetRegisterInfo * | TRI = NULL | |||
| ) | const [inline] |
killsRegister - Return true if the MachineInstr kills the specified register. If TargetRegisterInfo is passed, then it also checks if there is a kill of a super-register.
Definition at line 168 of file MachineInstr.h.
References findRegisterUseOperandIdx(), and TRI.
Referenced by interferes().
| bool llvm::MachineInstr::modifiesRegister | ( | unsigned | Reg, | |
| const TargetRegisterInfo * | TRI = NULL | |||
| ) | const [inline] |
modifiesRegister - Return true if the MachineInstr modifies the specified register. If TargetRegisterInfo is passed, then it also checks if there is a def of a super-register.
Definition at line 175 of file MachineInstr.h.
References findRegisterDefOperandIdx(), and TRI.
| bool llvm::MachineInstr::registerDefIsDead | ( | unsigned | Reg, | |
| const TargetRegisterInfo * | TRI = NULL | |||
| ) | const [inline] |
registerDefIsDead - Returns true if the register is dead in this machine instruction. If TargetRegisterInfo is passed, then it also checks if there is a dead def of a super-register.
Definition at line 183 of file MachineInstr.h.
References findRegisterDefOperandIdx(), and TRI.
Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::ScheduleDAGInstrs::BuildSchedGraph(), and llvm::SimpleRegisterCoalescing::runOnMachineFunction().
| int MachineInstr::findRegisterUseOperandIdx | ( | unsigned | Reg, | |
| bool | isKill = false, |
|||
| const TargetRegisterInfo * | TRI = NULL | |||
| ) | const |
findRegisterUseOperandIdx() - Returns the operand index that is a use of the specific register or -1 if it is not found. It further tightening the search criteria to a use that kills the register if isKill is true.
findRegisterUseOperandIdx() - Returns the MachineOperand that is a use of the specific register or -1 if it is not found. It further tightening the search criteria to a use that kills the register if isKill is true.
Definition at line 597 of file MachineInstr.cpp.
References getNumOperands(), getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isKill(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::TargetRegisterInfo::isSubRegister(), and llvm::MachineOperand::isUse().
Referenced by llvm::LiveIntervals::addIntervalsForSpills(), llvm::ScheduleDAGInstrs::BuildSchedGraph(), findRegisterUseOperand(), killsRegister(), and readsRegister().
| MachineOperand* llvm::MachineInstr::findRegisterUseOperand | ( | unsigned | Reg, | |
| bool | isKill = false, |
|||
| const TargetRegisterInfo * | TRI = NULL | |||
| ) | [inline] |
findRegisterUseOperand - Wrapper for findRegisterUseOperandIdx, it returns a pointer to the MachineOperand rather than an index.
Definition at line 196 of file MachineInstr.h.
References findRegisterUseOperandIdx(), getOperand(), Idx, and TRI.
| int MachineInstr::findRegisterDefOperandIdx | ( | unsigned | Reg, | |
| bool | isDead = false, |
|||
| const TargetRegisterInfo * | TRI = NULL | |||
| ) | const |
findRegisterDefOperandIdx() - Returns the operand index that is a def of the specified register or -1 if it is not found. If isDead is true, defs that are not dead are skipped. If TargetRegisterInfo is non-null, then it also checks if there is a def of a super-register.
findRegisterDefOperandIdx() - Returns the operand index that is a def of the specified register or -1 if it is not found. If isDead is true, defs that are not dead are skipped. If TargetRegisterInfo is non-null, then it also checks if there is a def of a super-register.
Definition at line 621 of file MachineInstr.cpp.
References getNumOperands(), getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDef(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isReg(), and llvm::TargetRegisterInfo::isSubRegister().
Referenced by findRegisterDefOperand(), modifiesRegister(), PropagateDeadness(), and registerDefIsDead().
| MachineOperand* llvm::MachineInstr::findRegisterDefOperand | ( | unsigned | Reg, | |
| bool | isDead = false, |
|||
| const TargetRegisterInfo * | TRI = NULL | |||
| ) | [inline] |
findRegisterDefOperand - Wrapper for findRegisterDefOperandIdx, it returns a pointer to the MachineOperand rather than an index.
Definition at line 211 of file MachineInstr.h.
References findRegisterDefOperandIdx(), getOperand(), Idx, and TRI.
| int MachineInstr::findFirstPredOperandIdx | ( | ) | const |
findFirstPredOperandIdx() - Find the index of the first operand in the operand list that is used to represent the predicate. It returns -1 if none is found.
findFirstPredOperandIdx() - Find the index of the first operand in the operand list that is used to represent the predicate. It returns -1 if none is found.
Definition at line 642 of file MachineInstr.cpp.
References getDesc(), getNumOperands(), llvm::TargetInstrDesc::isPredicable(), llvm::TargetOperandInfo::isPredicate(), and llvm::TargetInstrDesc::OpInfo.
Referenced by llvm::ARMRegisterInfo::eliminateFrameIndex(), getInstrPredicate(), llvm::ARMInstrInfo::getPredicate(), llvm::ARMInstrInfo::isPredicated(), and llvm::ARMInstrInfo::PredicateInstruction().
| bool MachineInstr::isRegReDefinedByTwoAddr | ( | unsigned | DefIdx | ) | const |
isRegReDefinedByTwoAddr - Given the index of a register def operand, check if the register def is a re-definition due to two addr elimination.
isRegReDefinedByTwoAddr - Given the index of a register def operand, check if the register def is a re-definition due to two addr elimination.
Definition at line 655 of file MachineInstr.cpp.
References getDesc(), llvm::TargetInstrDesc::getNumOperands(), getOperand(), llvm::TargetInstrDesc::getOperandConstraint(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUse(), and llvm::TOI::TIED_TO.
| void MachineInstr::copyKillDeadInfo | ( | const MachineInstr * | MI | ) |
copyKillDeadInfo - Copies kill / dead operand properties from MI.
Definition at line 669 of file MachineInstr.cpp.
References getNumOperands(), getOperand(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isIdenticalTo(), llvm::MachineOperand::isKill(), llvm::MachineOperand::isReg(), llvm::MachineOperand::setIsDead(), and llvm::MachineOperand::setIsKill().
| void MachineInstr::copyPredicates | ( | const MachineInstr * | MI | ) |
copyPredicates - Copies predicate operand(s) from MI.
Definition at line 688 of file MachineInstr.cpp.
References addOperand(), getDesc(), getNumOperands(), getOperand(), llvm::TargetInstrDesc::isPredicable(), llvm::TargetOperandInfo::isPredicate(), and llvm::TargetInstrDesc::OpInfo.
| bool MachineInstr::addRegisterKilled | ( | unsigned | IncomingReg, | |
| const TargetRegisterInfo * | RegInfo, | |||
| bool | AddIfNotFound = false | |||
| ) |
addRegisterKilled - We have determined MI kills a register. Look for the operand that uses it and mark it as IsKill. If AddIfNotFound is true, add a implicit operand if it's not found. Returns true if the operand exists / is added.
Definition at line 841 of file MachineInstr.cpp.
References addOperand(), llvm::SmallVectorImpl< T >::back(), llvm::MachineOperand::CreateReg(), llvm::SmallVectorImpl< T >::empty(), llvm::TargetRegisterInfo::getAliasSet(), getNumOperands(), getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isKill(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::TargetRegisterInfo::isSubRegister(), llvm::TargetRegisterInfo::isSuperRegister(), llvm::MachineOperand::isUse(), llvm::SmallVectorImpl< T >::pop_back(), llvm::SmallVectorImpl< T >::push_back(), Reg, RemoveOperand(), and llvm::MachineOperand::setIsKill().
Referenced by llvm::LiveVariables::addVirtualRegisterKilled().
| bool MachineInstr::addRegisterDead | ( | unsigned | IncomingReg, | |
| const TargetRegisterInfo * | RegInfo, | |||
| bool | AddIfNotFound = false | |||
| ) |
addRegisterDead - We have determined MI defined a register without a use. Look for the operand that defines it and mark it as IsDead. If AddIfNotFound is true, add a implicit operand if it's not found. Returns true if the operand exists / is added.
Definition at line 896 of file MachineInstr.cpp.
References addOperand(), llvm::SmallVectorImpl< T >::back(), llvm::MachineOperand::CreateReg(), llvm::SmallVectorImpl< T >::empty(), llvm::TargetRegisterInfo::getAliasSet(), getNumOperands(), getOperand(), llvm::MachineOperand::getReg(), llvm::TargetRegisterInfo::getSubRegisters(), llvm::TargetRegisterInfo::getSuperRegisters(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDef(), llvm::TargetRegisterInfo::isPhysicalRegister(), llvm::MachineOperand::isReg(), llvm::TargetRegisterInfo::isSubRegister(), llvm::TargetRegisterInfo::isSuperRegister(), llvm::SmallVectorImpl< T >::pop_back(), llvm::SmallVectorImpl< T >::push_back(), Reg, RemoveOperand(), and llvm::MachineOperand::setIsDead().
Referenced by llvm::LiveVariables::addVirtualRegisterDead().
| bool MachineInstr::isSafeToMove | ( | const TargetInstrInfo * | TII, | |
| bool & | SawStore | |||
| ) | const |
isSafeToMove - Return true if it is safe to move this instruction. If SawStore is set to true, it means that there is a store (or call) between the instruction's location and its intended destination.
isSafeToMove - Return true if it is safe to move this instruction. If SawStore is set to true, it means that there is a store (or call) between the instruction's location and its intended destination.
Definition at line 703 of file MachineInstr.cpp.
References llvm::TargetInstrDesc::hasUnmodeledSideEffects(), hasVolatileMemoryRef(), llvm::TargetInstrDesc::isCall(), llvm::TargetInstrInfo::isInvariantLoad(), llvm::TargetInstrDesc::isTerminator(), llvm::TargetInstrDesc::mayLoad(), and llvm::TargetInstrDesc::mayStore().
Referenced by isSafeToReMat().
| bool MachineInstr::isSafeToReMat | ( | const TargetInstrInfo * | TII, | |
| unsigned | DstReg | |||
| ) | const |
isSafeToReMat - Return true if it's safe to rematerialize the specified instruction which defined the specified register instead of copying it.
isSafeToReMat - Return true if it's safe to rematerialize the specified instruction which defined the specified register instead of copying it.
Definition at line 728 of file MachineInstr.cpp.
References getDesc(), getNumOperands(), getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isReg(), isSafeToMove(), llvm::TargetInstrInfo::isTriviallyReMaterializable(), and llvm::MachineOperand::isUse().
| bool MachineInstr::hasVolatileMemoryRef | ( | ) | const |
hasVolatileMemoryRef - Return true if this instruction may have a volatile memory reference, or if the information describing the memory reference is not available. Return false if it is known to have no volatile memory references.
hasVolatileMemoryRef - Return true if this instruction may have a volatile memory reference, or if the information describing the memory reference is not available. Return false if it is known to have no volatile memory references.
Definition at line 756 of file MachineInstr.cpp.
References E, llvm::TargetInstrDesc::hasUnmodeledSideEffects(), I, llvm::TargetInstrDesc::isCall(), llvm::TargetInstrDesc::mayLoad(), llvm::TargetInstrDesc::mayStore(), memoperands_begin(), memoperands_empty(), and