LLVM API Documentation
#include <HexagonInstrInfo.h>


Definition at line 28 of file HexagonInstrInfo.h.
| HexagonInstrInfo::HexagonInstrInfo | ( | HexagonSubtarget & | ST | ) | [explicit] |
Definition at line 59 of file HexagonInstrInfo.cpp.
| bool HexagonInstrInfo::AnalyzeBranch | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock *& | TBB, | ||
| MachineBasicBlock *& | FBB, | ||
| SmallVectorImpl< MachineOperand > & | Cond, | ||
| bool | AllowModify | ||
| ) | const [virtual] |
Definition at line 170 of file HexagonInstrInfo.cpp.
References llvm::MachineOperand::CreateImm(), llvm::dbgs(), DEBUG, llvm::MachineInstr::eraseFromParent(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), I, llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), llvm::MachineInstr::isBundle(), llvm::MachineBasicBlock::isLayoutSuccessor(), PredOpcodeHasJMP_c(), PredOpcodeHasNot(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by InsertBranch().
| bool HexagonInstrInfo::analyzeCompare | ( | const MachineInstr * | MI, |
| unsigned & | SrcReg, | ||
| unsigned & | SrcReg2, | ||
| int & | Mask, | ||
| int & | Value | ||
| ) | const [virtual] |
For a comparison instruction, return the source registers in SrcReg and SrcReg2 if having two register operands, and the value it compares against in CmpValue. Return true if the comparison instruction can be analyzed.
Definition at line 337 of file HexagonInstrInfo.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::getReg().
| void HexagonInstrInfo::copyPhysReg | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator | I, | ||
| DebugLoc | DL, | ||
| unsigned | DestReg, | ||
| unsigned | SrcReg, | ||
| bool | KillSrc | ||
| ) | const [virtual] |
Definition at line 411 of file HexagonInstrInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::getKillRegState(), and llvm_unreachable.
| DFAPacketizer * HexagonInstrInfo::CreateTargetScheduleState | ( | const TargetMachine * | TM, |
| const ScheduleDAG * | DAG | ||
| ) | const [virtual] |
Definition at line 1636 of file HexagonInstrInfo.cpp.
References llvm::TargetMachine::getInstrItineraryData(), and llvm::TargetMachine::getSubtarget().
| unsigned HexagonInstrInfo::createVR | ( | MachineFunction * | MF, |
| MVT | VT | ||
| ) | const |
Definition at line 561 of file HexagonInstrInfo.cpp.
References llvm::MachineRegisterInfo::createVirtualRegister(), llvm::MVT::f32, llvm::MVT::f64, llvm::MachineFunction::getRegInfo(), llvm::MVT::i1, llvm::MVT::i32, llvm::MVT::i64, and llvm_unreachable.
| bool HexagonInstrInfo::DefinesPredicate | ( | MachineInstr * | MI, |
| std::vector< MachineOperand > & | Pred | ||
| ) | const [virtual] |
Definition at line 1031 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isDef(), and llvm::MachineOperand::isReg().
| MachineInstr * HexagonInstrInfo::foldMemoryOperandImpl | ( | MachineFunction & | MF, |
| MachineInstr * | MI, | ||
| const SmallVectorImpl< unsigned > & | Ops, | ||
| int | FrameIndex | ||
| ) | const [virtual] |
Definition at line 553 of file HexagonInstrInfo.cpp.
| virtual MachineInstr* llvm::HexagonInstrInfo::foldMemoryOperandImpl | ( | MachineFunction & | MF, |
| MachineInstr * | MI, | ||
| const SmallVectorImpl< unsigned > & | Ops, | ||
| MachineInstr * | LoadMI | ||
| ) | const [inline, virtual] |
Definition at line 107 of file HexagonInstrInfo.h.
| unsigned HexagonInstrInfo::getAddrMode | ( | const MachineInstr * | MI | ) | const |
Definition at line 1614 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::AddrModeMask, llvm::HexagonII::AddrModePos, F(), llvm::MachineInstr::getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by getNonExtOpcode(), isPostIncrement(), and NonExtEquivalentExists().
| unsigned short HexagonInstrInfo::getCExtOpNum | ( | const MachineInstr * | MI | ) | const |
Definition at line 1750 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::ExtendableOpMask, llvm::HexagonII::ExtendableOpPos, F(), llvm::MachineInstr::getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by immediateExtend(), and isConstExtended().
| int HexagonInstrInfo::GetDotNewOp | ( | const MachineInstr * | MI | ) | const |
Definition at line 1549 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), and llvm_unreachable.
| int HexagonInstrInfo::getDotNewPredJumpOp | ( | MachineInstr * | MI, |
| const MachineBranchProbabilityInfo * | MBPI | ||
| ) | const |
Definition at line 1712 of file HexagonInstrInfo.cpp.
References llvm::MachineBranchProbabilityInfo::getEdgeProbability(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), and llvm_unreachable.
Referenced by GetDotNewPredOp().
| int HexagonInstrInfo::GetDotNewPredOp | ( | MachineInstr * | MI, |
| const MachineBranchProbabilityInfo * | MBPI | ||
| ) | const |
Definition at line 1577 of file HexagonInstrInfo.cpp.
References getDotNewPredJumpOp(), llvm::MachineInstr::getOpcode(), and llvm_unreachable.
| int HexagonInstrInfo::GetDotOldOp | ( | const int | opc | ) | const |
Definition at line 1532 of file HexagonInstrInfo.cpp.
References isNewValueStore(), isPredicated(), and isPredicatedNew().
| unsigned HexagonInstrInfo::getInvertedPredicatedOpcode | ( | const int | Opc | ) | const |
Definition at line 728 of file HexagonInstrInfo.cpp.
References isPredicatedTrue(), and llvm_unreachable.
| int HexagonInstrInfo::getMaxValue | ( | const MachineInstr * | MI | ) | const |
Definition at line 1770 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::ExtentBitsMask, llvm::HexagonII::ExtentBitsPos, llvm::HexagonII::ExtentSignedMask, llvm::HexagonII::ExtentSignedPos, F(), llvm::MachineInstr::getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by isConstExtended().
| int HexagonInstrInfo::getMinValue | ( | const MachineInstr * | MI | ) | const |
Definition at line 1756 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::ExtentBitsMask, llvm::HexagonII::ExtentBitsPos, llvm::HexagonII::ExtentSignedMask, llvm::HexagonII::ExtentSignedPos, F(), llvm::MachineInstr::getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by isConstExtended().
| short HexagonInstrInfo::getNonExtOpcode | ( | const MachineInstr * | MI | ) | const |
Definition at line 1819 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::Absolute, llvm::HexagonII::BaseImmOffset, getAddrMode(), llvm::MachineInstr::getDesc(), llvm::MachineInstr::getOpcode(), llvm::MCInstrDesc::mayLoad(), and llvm::MCInstrDesc::mayStore().
| virtual const HexagonRegisterInfo& llvm::HexagonInstrInfo::getRegisterInfo | ( | ) | const [inline, virtual] |
getRegisterInfo - TargetInstrInfo is a superset of MRegister info. As such, whenever a client has an instance of instruction info, it should always be able to get register info as well (through this method).
Definition at line 40 of file HexagonInstrInfo.h.
Referenced by llvm::HexagonTargetMachine::getRegisterInfo(), INITIALIZE_PASS(), isConditionalALU32(), isConditionalLoad(), isConditionalStore(), mayBeNewStore(), and llvm::VirtRegMap::runOnMachineFunction().
| void HexagonInstrInfo::immediateExtend | ( | MachineInstr * | MI | ) | const |
immediateExtend - Changes the instruction in place to one using an immediate extender.
Definition at line 1622 of file HexagonInstrInfo.cpp.
References llvm::MachineOperand::addTargetFlag(), getCExtOpNum(), llvm::MachineInstr::getOperand(), llvm::HexagonII::HMOTF_ConstExtended, isConstExtended(), isExtendable(), llvm::MachineOperand::isImm(), and llvm::MachineOperand::isMBB().
Referenced by llvm::HexagonRegisterInfo::eliminateFrameIndex().
| unsigned HexagonInstrInfo::InsertBranch | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock * | TBB, | ||
| MachineBasicBlock * | FBB, | ||
| const SmallVectorImpl< MachineOperand > & | Cond, | ||
| DebugLoc | DL | ||
| ) | const [virtual] |
Definition at line 117 of file HexagonInstrInfo.cpp.
References llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), AnalyzeBranch(), llvm::BuildMI(), llvm::SmallVectorBase::empty(), llvm::MachineBasicBlock::getFirstTerminator(), getReg(), isPredicated(), llvm::next(), RemoveBranch(), and ReverseBranchCondition().
| bool HexagonInstrInfo::isBranch | ( | const MachineInstr * | MI | ) | const [virtual] |
Definition at line 619 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getDesc(), and llvm::MCInstrDesc::isBranch().
Referenced by isNewValueJump().
| bool HexagonInstrInfo::isConditionalALU32 | ( | const MachineInstr * | MI | ) | const |
Definition at line 1288 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), getRegisterInfo(), llvm::HexagonSubtarget::hasV4TOps(), and llvm::HexagonRegisterInfo::Subtarget.
| bool HexagonInstrInfo::isConditionalLoad | ( | const MachineInstr * | MI | ) | const |
Definition at line 1325 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), getRegisterInfo(), llvm::HexagonSubtarget::hasV4TOps(), and llvm::HexagonRegisterInfo::Subtarget.
| bool HexagonInstrInfo::isConditionalStore | ( | const MachineInstr * | MI | ) | const |
Definition at line 1419 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode(), getRegisterInfo(), llvm::HexagonSubtarget::hasV4TOps(), and llvm::HexagonRegisterInfo::Subtarget.
| bool HexagonInstrInfo::isConditionalTransfer | ( | const MachineInstr * | MI | ) | const |
Definition at line 1273 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode().
| bool HexagonInstrInfo::isConstExtended | ( | MachineInstr * | MI | ) | const |
Definition at line 1661 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::ExtendableMask, llvm::HexagonII::ExtendablePos, llvm::HexagonII::ExtendedMask, llvm::HexagonII::ExtendedPos, F(), getCExtOpNum(), llvm::MachineInstr::getDesc(), llvm::MachineOperand::getImm(), getMaxValue(), getMinValue(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getTargetFlags(), llvm::HexagonSubtarget::hasV4TOps(), llvm::HexagonII::HMOTF_ConstExtended, isExtendable(), isExtended(), llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isMBB(), llvm::MachineOperand::isSymbol(), and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonRegisterInfo::eliminateFrameIndex(), and immediateExtend().
| bool HexagonInstrInfo::isDeallocRet | ( | const MachineInstr * | MI | ) | const |
Definition at line 1077 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode().
| bool HexagonInstrInfo::isDotNewInst | ( | const MachineInstr * | MI | ) | const |
Definition at line 1518 of file HexagonInstrInfo.cpp.
References isNewValueInst(), isPredicated(), and isPredicatedNew().
| bool HexagonInstrInfo::isExtendable | ( | const MachineInstr * | MI | ) | const |
Definition at line 579 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::ExtendableMask, llvm::HexagonII::ExtendablePos, F(), llvm::MachineInstr::getDesc(), llvm::MachineInstr::getOpcode(), llvm::HexagonSubtarget::hasV4TOps(), and llvm::MCInstrDesc::TSFlags.
Referenced by immediateExtend(), and isConstExtended().
| bool HexagonInstrInfo::isExtended | ( | const MachineInstr * | MI | ) | const |
Definition at line 604 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::ExtendedMask, llvm::HexagonII::ExtendedPos, F(), llvm::MachineInstr::getDesc(), llvm::HexagonII::HMOTF_ConstExtended, I, llvm::MachineInstr::operands_begin(), llvm::MachineInstr::operands_end(), and llvm::MCInstrDesc::TSFlags.
Referenced by isConstExtended().
| unsigned HexagonInstrInfo::isLoadFromStackSlot | ( | const MachineInstr * | MI, |
| int & | FrameIndex | ||
| ) | const [virtual] |
isLoadFromStackSlot - If the specified machine instruction is a direct load from a stack slot, return the virtual or physical register number of the destination along with the FrameIndex of the loaded stack slot. If not, return 0. This predicate must return 0 if the instruction has any side effects other than loading from the stack slot.
Definition at line 70 of file HexagonInstrInfo.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isFI(), and llvm::MachineOperand::isImm().
| bool HexagonInstrInfo::isMemOp | ( | const MachineInstr * | MI | ) | const |
Definition at line 1213 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by llvm::HexagonRegisterInfo::eliminateFrameIndex().
| bool HexagonInstrInfo::isNewValue | ( | const MachineInstr * | MI | ) | const |
Definition at line 1511 of file HexagonInstrInfo.cpp.
References F(), llvm::MachineInstr::getDesc(), llvm::HexagonII::NewValueMask, llvm::HexagonII::NewValuePos, and llvm::MCInstrDesc::TSFlags.
Referenced by isNewValueJump().
| bool HexagonInstrInfo::isNewValueInst | ( | const MachineInstr * | MI | ) | const |
Definition at line 623 of file HexagonInstrInfo.cpp.
References isNewValueJump(), and isNewValueStore().
Referenced by isDotNewInst().
| bool HexagonInstrInfo::isNewValueJump | ( | const MachineInstr * | MI | ) | const |
Definition at line 1501 of file HexagonInstrInfo.cpp.
References isBranch(), and isNewValue().
Referenced by isNewValueInst().
| bool HexagonInstrInfo::isNewValueJumpCandidate | ( | const MachineInstr * | MI | ) | const |
Definition at line 1259 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode().
| bool HexagonInstrInfo::isNewValueStore | ( | const MachineInstr * | MI | ) | const |
Definition at line 751 of file HexagonInstrInfo.cpp.
References F(), llvm::MachineInstr::getDesc(), llvm::HexagonII::NVStoreMask, llvm::HexagonII::NVStorePos, and llvm::MCInstrDesc::TSFlags.
Referenced by GetDotOldOp(), and isNewValueInst().
Definition at line 757 of file HexagonInstrInfo.cpp.
References F(), llvm::HexagonII::NVStoreMask, and llvm::HexagonII::NVStorePos.
| bool HexagonInstrInfo::isOperandExtended | ( | const MachineInstr * | MI, |
| unsigned short | OperandNum | ||
| ) | const |
Definition at line 1737 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::ExtendableOpMask, llvm::HexagonII::ExtendableOpPos, F(), llvm::MachineInstr::getDesc(), llvm::HexagonSubtarget::hasV4TOps(), and llvm::MCInstrDesc::TSFlags.
| bool HexagonInstrInfo::isPostIncrement | ( | const MachineInstr * | MI | ) | const |
Definition at line 1507 of file HexagonInstrInfo.cpp.
References getAddrMode(), and llvm::HexagonII::PostInc.
Referenced by GetPostIncrementOperand().
| bool HexagonInstrInfo::isPredicable | ( | MachineInstr * | MI | ) | const [virtual] |
Definition at line 637 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getDesc(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::HexagonSubtarget::hasV4TOps(), llvm::isInt< 8 >(), llvm::MCInstrDesc::isPredicable(), llvm::A64SE::SXTB, and llvm::A64SE::SXTH.
Referenced by PredicateInstruction().
| bool HexagonInstrInfo::isPredicated | ( | const MachineInstr * | MI | ) | const [virtual] |
Definition at line 977 of file HexagonInstrInfo.cpp.
References F(), llvm::MachineInstr::getDesc(), llvm::HexagonII::PredicatedMask, llvm::HexagonII::PredicatedPos, and llvm::MCInstrDesc::TSFlags.
Referenced by GetDotOldOp(), getPredicatedRegister(), getPredicateSense(), InsertBranch(), isDotNewInst(), isPredicatedNew(), and isPredicatedTrue().
Definition at line 983 of file HexagonInstrInfo.cpp.
References F(), llvm::HexagonII::PredicatedMask, and llvm::HexagonII::PredicatedPos.
| bool HexagonInstrInfo::isPredicatedNew | ( | const MachineInstr * | MI | ) | const [virtual] |
Definition at line 1006 of file HexagonInstrInfo.cpp.
References F(), llvm::MachineInstr::getDesc(), isPredicated(), llvm::HexagonII::PredicatedNewMask, llvm::HexagonII::PredicatedNewPos, and llvm::MCInstrDesc::TSFlags.
Referenced by GetDotOldOp(), and isDotNewInst().
Definition at line 1013 of file HexagonInstrInfo.cpp.
References F(), isPredicated(), llvm::HexagonII::PredicatedNewMask, and llvm::HexagonII::PredicatedNewPos.
| bool HexagonInstrInfo::isPredicatedTrue | ( | const MachineInstr * | MI | ) | const [virtual] |
Definition at line 989 of file HexagonInstrInfo.cpp.
References F(), llvm::MachineInstr::getDesc(), isPredicated(), llvm::HexagonII::PredicatedFalseMask, llvm::HexagonII::PredicatedFalsePos, and llvm::MCInstrDesc::TSFlags.
Referenced by getInvertedPredicatedOpcode(), and getPredicateSense().
Definition at line 997 of file HexagonInstrInfo.cpp.
References F(), llvm::HexagonII::PredicatedFalseMask, llvm::HexagonII::PredicatedFalsePos, llvm::HexagonII::PredicatedMask, and llvm::HexagonII::PredicatedPos.
| bool HexagonInstrInfo::isProfitableToDupForIfCvt | ( | MachineBasicBlock & | MBB, |
| unsigned | NumCycles, | ||
| const BranchProbability & | Probability | ||
| ) | const [virtual] |
Definition at line 1072 of file HexagonInstrInfo.cpp.
| bool HexagonInstrInfo::isProfitableToIfCvt | ( | MachineBasicBlock & | MBB, |
| unsigned | NumCycles, | ||
| unsigned | ExtraPredCycles, | ||
| const BranchProbability & | Probability | ||
| ) | const [virtual] |
Definition at line 951 of file HexagonInstrInfo.cpp.
| bool HexagonInstrInfo::isProfitableToIfCvt | ( | MachineBasicBlock & | TMBB, |
| unsigned | NumTCycles, | ||
| unsigned | ExtraTCycles, | ||
| MachineBasicBlock & | FMBB, | ||
| unsigned | NumFCycles, | ||
| unsigned | ExtraFCycles, | ||
| const BranchProbability & | Probability | ||
| ) | const [virtual] |
Definition at line 961 of file HexagonInstrInfo.cpp.
| bool llvm::HexagonInstrInfo::isS12_Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isS4_0Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isS4_1Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isS4_2Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isS4_3Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isS6_Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isS8_Immediate | ( | const int | value | ) | const |
| bool HexagonInstrInfo::isSaveCalleeSavedRegsCall | ( | const MachineInstr * | MI | ) | const |
Definition at line 633 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode().
| bool HexagonInstrInfo::isSchedulingBoundary | ( | const MachineInstr * | MI, |
| const MachineBasicBlock * | MBB, | ||
| const MachineFunction & | MF | ||
| ) | const [virtual] |
Definition at line 1642 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getDesc(), llvm::MachineInstr::isDebugValue(), llvm::MachineInstr::isInlineAsm(), llvm::MachineInstr::isLabel(), and llvm::MCInstrDesc::isTerminator().
| bool HexagonInstrInfo::isSpillPredRegOp | ( | const MachineInstr * | MI | ) | const |
Definition at line 1250 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::getOpcode().
Referenced by llvm::HexagonRegisterInfo::eliminateFrameIndex().
| unsigned HexagonInstrInfo::isStoreToStackSlot | ( | const MachineInstr * | MI, |
| int & | FrameIndex | ||
| ) | const [virtual] |
isStoreToStackSlot - If the specified machine instruction is a direct store to a stack slot, return the virtual or physical register number of the source reg along with the FrameIndex of the loaded stack slot. If not, return 0. This predicate must return 0 if the instruction has any side effects other than storing to the stack slot.
Definition at line 97 of file HexagonInstrInfo.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::isFI(), and llvm::MachineOperand::isImm().
| bool llvm::HexagonInstrInfo::isU6_0Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isU6_1Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isU6_2Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isU6_3Immediate | ( | const int | value | ) | const |
| bool llvm::HexagonInstrInfo::isU6_Immediate | ( | const int | value | ) | const |
Definition at line 1187 of file HexagonInstrInfo.cpp.
References Hexagon_MEMB_AUTOINC_MAX, Hexagon_MEMB_AUTOINC_MIN, Hexagon_MEMD_AUTOINC_MAX, Hexagon_MEMD_AUTOINC_MIN, Hexagon_MEMH_AUTOINC_MAX, Hexagon_MEMH_AUTOINC_MIN, Hexagon_MEMW_AUTOINC_MAX, Hexagon_MEMW_AUTOINC_MIN, llvm::MVT::i16, llvm::MVT::i32, llvm::MVT::i64, llvm::MVT::i8, and llvm_unreachable.
| bool HexagonInstrInfo::isValidOffset | ( | const int | Opcode, |
| const int | Offset | ||
| ) | const |
Definition at line 1093 of file HexagonInstrInfo.cpp.
References Hexagon_ADDI_OFFSET_MAX, Hexagon_ADDI_OFFSET_MIN, Hexagon_MEMB_OFFSET_MAX, Hexagon_MEMB_OFFSET_MIN, Hexagon_MEMD_OFFSET_MAX, Hexagon_MEMD_OFFSET_MIN, Hexagon_MEMH_OFFSET_MAX, Hexagon_MEMH_OFFSET_MIN, Hexagon_MEMW_OFFSET_MAX, Hexagon_MEMW_OFFSET_MIN, llvm::ISD::INLINEASM, and llvm_unreachable.
Referenced by llvm::HexagonRegisterInfo::eliminateFrameIndex().
| void HexagonInstrInfo::loadRegFromAddr | ( | MachineFunction & | MF, |
| unsigned | DestReg, | ||
| SmallVectorImpl< MachineOperand > & | Addr, | ||
| const TargetRegisterClass * | RC, | ||
| SmallVectorImpl< MachineInstr * > & | NewMIs | ||
| ) | const [virtual] |
Definition at line 545 of file HexagonInstrInfo.cpp.
References llvm_unreachable.
| void HexagonInstrInfo::loadRegFromStackSlot | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator | MBBI, | ||
| unsigned | DestReg, | ||
| int | FrameIndex, | ||
| const TargetRegisterClass * | RC, | ||
| const TargetRegisterInfo * | TRI | ||
| ) | const [virtual] |
Definition at line 515 of file HexagonInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), Align(), llvm::BuildMI(), llvm::MachineBasicBlock::findDebugLoc(), llvm::PseudoSourceValue::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), llvm_unreachable, and llvm::MachineMemOperand::MOLoad.
| bool HexagonInstrInfo::mayBeNewStore | ( | const MachineInstr * | MI | ) | const |
Definition at line 1021 of file HexagonInstrInfo.cpp.
References F(), llvm::MachineInstr::getDesc(), getRegisterInfo(), llvm::HexagonSubtarget::hasV4TOps(), llvm::HexagonII::mayNVStoreMask, llvm::HexagonII::mayNVStorePos, llvm::HexagonRegisterInfo::Subtarget, and llvm::MCInstrDesc::TSFlags.
| bool HexagonInstrInfo::NonExtEquivalentExists | ( | const MachineInstr * | MI | ) | const |
Definition at line 1785 of file HexagonInstrInfo.cpp.
References llvm::HexagonII::Absolute, llvm::HexagonII::BaseImmOffset, getAddrMode(), llvm::MachineInstr::getDesc(), llvm::MachineInstr::getOpcode(), llvm::MCInstrDesc::mayLoad(), and llvm::MCInstrDesc::mayStore().
| bool HexagonInstrInfo::PredicateInstruction | ( | MachineInstr * | MI, |
| const SmallVectorImpl< MachineOperand > & | Cond | ||
| ) | const [virtual] |
Definition at line 800 of file HexagonInstrInfo.cpp.
References llvm::MachineInstr::addOperand(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineRegisterInfo::clearKillFlags(), llvm::SmallVectorBase::empty(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineOperand::isDead(), llvm::MachineOperand::isDebug(), llvm::MachineOperand::isDef(), llvm::MachineOperand::isGlobal(), llvm::MachineOperand::isImm(), llvm::MachineOperand::isImplicit(), llvm::MachineOperand::isKill(), isPredicable(), llvm::MachineOperand::isReg(), llvm::MachineOperand::isUndef(), llvm::MachineOperand::isUse(), llvm::MachineInstr::RemoveOperand(), and llvm::MachineInstr::setDesc().
Definition at line 1841 of file HexagonInstrInfo.cpp.
Referenced by AnalyzeBranch().
Definition at line 1850 of file HexagonInstrInfo.cpp.
Referenced by AnalyzeBranch().
| unsigned HexagonInstrInfo::RemoveBranch | ( | MachineBasicBlock & | MBB | ) | const [virtual] |
Definition at line 305 of file HexagonInstrInfo.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineBasicBlock::end(), and I.
Referenced by InsertBranch().
| bool HexagonInstrInfo::ReverseBranchCondition | ( | SmallVectorImpl< MachineOperand > & | Cond | ) | const [virtual] |
Definition at line 1061 of file HexagonInstrInfo.cpp.
References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::MachineOperand::CreateImm(), llvm::SmallVectorBase::empty(), llvm::SmallVectorImpl< T >::erase(), and llvm::SmallVectorImpl< T >::insert().
Referenced by InsertBranch().
| void HexagonInstrInfo::storeRegToAddr | ( | MachineFunction & | MF, |
| unsigned | SrcReg, | ||
| bool | isKill, | ||
| SmallVectorImpl< MachineOperand > & | Addr, | ||
| const TargetRegisterClass * | RC, | ||
| SmallVectorImpl< MachineInstr * > & | NewMIs | ||
| ) | const [virtual] |
Definition at line 503 of file HexagonInstrInfo.cpp.
References llvm_unreachable.
| void HexagonInstrInfo::storeRegToStackSlot | ( | MachineBasicBlock & | MBB, |
| MachineBasicBlock::iterator | MBBI, | ||
| unsigned | SrcReg, | ||
| bool | isKill, | ||
| int | FrameIndex, | ||
| const TargetRegisterClass * | RC, | ||
| const TargetRegisterInfo * | TRI | ||
| ) | const [virtual] |
Definition at line 468 of file HexagonInstrInfo.cpp.
References llvm::MachineInstrBuilder::addFrameIndex(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addMemOperand(), llvm::MachineInstrBuilder::addReg(), Align(), llvm::BuildMI(), llvm::MachineBasicBlock::findDebugLoc(), llvm::PseudoSourceValue::getFixedStack(), llvm::MachineFunction::getFrameInfo(), llvm::getKillRegState(), llvm::MachineFunction::getMachineMemOperand(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineBasicBlock::getParent(), llvm_unreachable, and llvm::MachineMemOperand::MOStore.
| bool HexagonInstrInfo::SubsumesPredicate | ( | const SmallVectorImpl< MachineOperand > & | Pred1, |
| const SmallVectorImpl< MachineOperand > & | Pred2 | ||
| ) | const [virtual] |
Definition at line 1049 of file HexagonInstrInfo.cpp.