LLVM: llvm::HexagonMCInstrInfo Namespace Reference (original) (raw)
| Variables | |
|---|---|
| constexpr size_t | innerLoopOffset = 0 |
| constexpr int64_t | innerLoopMask = 1 << innerLoopOffset |
| constexpr size_t | outerLoopOffset = 1 |
| constexpr int64_t | outerLoopMask = 1 << outerLoopOffset |
| constexpr size_t | memReorderDisabledOffset = 2 |
| constexpr int64_t | memReorderDisabledMask = 1 << memReorderDisabledOffset |
| constexpr size_t | splitNoMemOrderOffset = 3 |
| constexpr int64_t | splitNoMemorderMask = 1 << splitNoMemOrderOffset |
| constexpr size_t | noShuffleOffset = 4 |
| constexpr int64_t | noShuffleMask = 1 << noShuffleOffset |
| constexpr size_t | bundleInstructionsOffset = 1 |
◆ addConstant()
◆ addConstExtender()
◆ bundleInstructions() [1/2]
◆ bundleInstructions() [2/2]
◆ bundleSize()
| size_t llvm::HexagonMCInstrInfo::bundleSize | ( | MCInst const & | MCI | ) |
|---|
◆ canonicalizePacket()
◆ deriveDuplex()
◆ deriveExtender()
Definition at line 191 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createExpr(), llvm::MCOperand::createImm(), llvm::MCOperand::getExpr(), llvm::MCOperand::getImm(), llvm::MCOperand::isExpr(), isExtendable(), isExtended(), llvm::MCOperand::isImm(), llvm_unreachable, and llvm::MCInst::setOpcode().
Referenced by addConstExtender().
◆ deriveSubInst()
◆ extenderForIndex()
◆ extendIfNeeded()
◆ getAddrMode()
◆ getCVIResources()
◆ getDesc()
Definition at line 255 of file HexagonMCInstrInfo.cpp.
References llvm::MCInstrInfo::get(), and llvm::MCInst::getOpcode().
Referenced by llvm::HexagonMCCodeEmitter::encodeSingleInstruction(), getAddrMode(), getCVIResources(), getExtendableOp(), getExtentAlignment(), getExtentBits(), llvm::HexagonMCCodeEmitter::getMachineOpValue(), getMemAccessSize(), getNewValueOp(), getNewValueOp2(), getOtherReservedSlots(), llvm::HexagonShuffler::GetPacketSummary(), getUnits(), hasHvxTmp(), hasNewValue(), hasNewValue2(), llvm::HexagonCVIResource::HexagonCVIResource(), IsABranchingInst(), isAccumulator(), isCanon(), isCofMax1(), isCofRelax1(), isCofRelax2(), isConstExtended(), isCVINew(), isExtendable(), isExtended(), isExtentSigned(), isFloat(), isNewValue(), isNewValueStore(), isPredicated(), isPredicatedNew(), isPredicatedTrue(), isPredicateLate(), isPredRegister(), isRestrictNoSlot1Store(), isRestrictSlot1AOK(), isSoloAX(), isVector(), predicateInfo(), prefersSlot3(), llvm::HexagonShuffler::restrictNoSlot1Store(), llvm::HexagonShuffler::restrictStoreLoadOrder(), and llvm::HexagonShuffler::shuffle().
◆ getDuplexCandidateGroup()
Definition at line 189 of file HexagonMCDuplexInfo.cpp.
References llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::HexagonII::HSIG_A, llvm::HexagonII::HSIG_L1, llvm::HexagonII::HSIG_L2, llvm::HexagonII::HSIG_None, llvm::HexagonII::HSIG_S1, llvm::HexagonII::HSIG_S2, inRange(), inSRange(), isDblRegForSubInst(), isIntReg(), isIntRegForSubInst(), and minConstant().
Referenced by getDuplexPossibilties(), isDuplexPair(), and isOrderedDuplexPair().
◆ getDuplexPossibilties()
Definition at line 1028 of file HexagonMCDuplexInfo.cpp.
References assert(), bundleInstructionsOffset, llvm::dbgs(), getDuplexCandidateGroup(), llvm::MCOperand::getInst(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), hasExtenderForIndex(), iClassOfDuplexPair(), isBundle(), isMemReorderDisabled(), isOrderedDuplexPair(), isStoreInst(), LLVM_DEBUG, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
◆ getDuplexRegisterNumbering()
◆ getExpr()
◆ getExtendableOp()
◆ getExtendableOperand()
◆ getExtentAlignment()
◆ getExtentBits()
◆ getMaxValue()
◆ getMemAccessSize()
◆ getMinValue()
◆ getName()
◆ getNewValueOp()
◆ getNewValueOp2()
◆ getNewValueOperand()
◆ getNewValueOperand2()
◆ getOtherReservedSlots()
◆ getType()
Return the Hexagon ISA class for the insn.
Definition at line 423 of file HexagonMCInstrInfo.cpp.
References F, llvm::MCInstrInfo::get(), llvm::MCInst::getOpcode(), llvm::MCInstrDesc::TSFlags, llvm::HexagonII::TypeMask, and llvm::HexagonII::TypePos.
Referenced by llvm::HexagonShuffler::GetPacketSummary(), isConstExtended(), isDuplex(), isNeitherAnorX(), isPrefix(), lookForCompound(), and llvm::HexagonShuffler::restrictSlot1AOK().
◆ getUnits()
◆ GetVecRegPairIndices()
◆ hasDuplex()
◆ hasExtenderForIndex()
| bool llvm::HexagonMCInstrInfo::hasExtenderForIndex | ( | MCInst const & | MCB, |
|---|---|---|---|
| size_t | Index ) |
◆ hasHvxTmp()
◆ hasImmExt()
◆ hasNewValue()
◆ hasNewValue2()
◆ hasTmpDst()
◆ iClassOfDuplexPair()
◆ inRange() [1/2]
| bool llvm::HexagonMCInstrInfo::inRange | ( | MCInst const & | MCI, |
|---|---|---|---|
| size_t | Index ) |
◆ inRange() [2/2]
| bool llvm::HexagonMCInstrInfo::inRange | ( | MCInst const & | MCI, |
|---|---|---|---|
| size_t | Index ) |
◆ inSRange()
| bool llvm::HexagonMCInstrInfo::inSRange | ( | MCInst const & | MCI, |
|---|---|---|---|
| size_t | Index ) |
◆ instruction()
◆ IsABranchingInst()
◆ isAccumulator()
◆ isBundle()
Definition at line 539 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::isImm(), and llvm::MCInst::size().
Referenced by addConstExtender(), bundleInstructions(), bundleInstructions(), bundleSize(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::encodeSingleInstruction(), getDuplexPossibilties(), hasDuplex(), hasImmExt(), llvm::HexagonMCShuffle(), llvm::HexagonMCShuffle(), llvm::HexagonMCShuffle(), instruction(), IsABranchingInst(), isInnerLoop(), isMemReorderDisabled(), isOuterLoop(), lookForCompound(), padEndloop(), replaceDuplex(), setInnerLoop(), setMemReorderDisabled(), setOuterLoop(), and tryCompound().
◆ isCanon()
◆ isCofMax1()
◆ isCofRelax1()
◆ isCofRelax2()
◆ isCompound()
◆ isConstExtended()
Definition at line 545 of file HexagonMCInstrInfo.cpp.
References assert(), getDesc(), llvm::MCOperand::getExpr(), getExtendableOperand(), getMaxValue(), getMinValue(), llvm::MCInst::getOpcode(), getType(), llvm::isa(), isBranch(), isExtendable(), isExtended(), isExtentSigned(), llvm::MCOperand::isImm(), mustExtend(), mustNotExtend(), llvm::HexagonII::TypeCJ, llvm::HexagonII::TypeCR, llvm::HexagonII::TypeJ, and llvm::HexagonII::TypeNCJ.
Referenced by extendIfNeeded(), llvm::HexagonInstPrinter::printBrtarget(), and llvm::HexagonInstPrinter::printOperand().
◆ isCVINew()
◆ isDblRegForSubInst()
◆ isDuplex()
◆ isDuplexPair()
◆ isDuplexPairMatch()
◆ isExtendable()
◆ isExtended()
◆ isExtentSigned()
◆ isFloat()
◆ isHVX()
◆ isImmext()
◆ isInnerLoop()
◆ isIntReg()
◆ isIntRegForSubInst()
◆ isMemReorderDisabled()
◆ isNewValue()
◆ isNewValueStore()
◆ isOpExtendable()
◆ isOrderedDuplexPair()
non-Symmetrical. See if these two instructions are fit for duplex pair.
Definition at line 572 of file HexagonMCDuplexInfo.cpp.
References deriveSubInst(), llvm::StringRef::equals_insensitive(), llvm::MCSubtargetInfo::getCPU(), getDuplexCandidateGroup(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::HexagonII::HSIG_L2, llvm::HexagonII::HSIG_None, llvm::HexagonII::HSIG_S1, llvm::HexagonII::HSIG_S2, isDuplexPairMatch(), llvm::MCOperand::isReg(), opcodeData, and subInstWouldBeExtended().
Referenced by getDuplexPossibilties().
◆ isOuterLoop()
◆ isPredicated()
◆ isPredicatedNew()
◆ isPredicatedTrue()
◆ isPredicateLate()
◆ isPredReg()
◆ isPredRegister()
◆ isPrefix()
◆ isRestrictNoSlot1Store()
◆ isRestrictSlot1AOK()
◆ IsReverseVecRegPair()
| bool llvm::HexagonMCInstrInfo::IsReverseVecRegPair | ( | MCRegister | VecReg | ) |
|---|
◆ IsSingleConsumerRefPairProducer()
◆ isSolo()
◆ isSoloAX()
◆ isSubInstruction()
◆ IsVecRegPair()
◆ IsVecRegSingle()
◆ isVector()
◆ LoopNeedsPadding()
◆ minConstant()
| int64_t llvm::HexagonMCInstrInfo::minConstant | ( | MCInst const & | MCI, |
|---|---|---|---|
| size_t | Index ) |
◆ mustExtend()
◆ mustNotExtend()
◆ packetSize()
◆ packetSizeSlots()
◆ padEndloop()
| void llvm::HexagonMCInstrInfo::padEndloop | ( | MCInst & | MCI, |
|---|---|---|---|
| MCContext & | Context ) |
◆ predicateInfo()
◆ prefersSlot3()
◆ replaceDuplex()
Definition at line 1001 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::MCInst::begin(), deriveDuplex(), llvm::MCInst::erase(), llvm::MCOperand::getInst(), llvm::MCInst::getOperand(), llvm::DuplexCandidate::iClass, isBundle(), llvm::DuplexCandidate::packetIndexI, llvm::DuplexCandidate::packetIndexJ, llvm::MCOperand::setInst(), and llvm::MCInst::size().
Referenced by llvm::HexagonMCShuffle().
◆ requiresSlot()
◆ s27_2_reloc()
◆ setInnerLoop()
| void llvm::HexagonMCInstrInfo::setInnerLoop | ( | MCInst & | MCI | ) |
|---|
◆ setMemReorderDisabled()
| void llvm::HexagonMCInstrInfo::setMemReorderDisabled | ( | MCInst & | MCI | ) |
|---|
◆ setMustExtend()
| void llvm::HexagonMCInstrInfo::setMustExtend | ( | MCExpr const & | Expr, |
|---|---|---|---|
| bool | Val = true ) |
◆ setMustNotExtend()
| void llvm::HexagonMCInstrInfo::setMustNotExtend | ( | MCExpr const & | Expr, |
|---|---|---|---|
| bool | Val = true ) |
◆ setOuterLoop()
| void llvm::HexagonMCInstrInfo::setOuterLoop | ( | MCInst & | MCI | ) |
|---|
◆ setS27_2_reloc()
| void llvm::HexagonMCInstrInfo::setS27_2_reloc | ( | MCExpr const & | Expr, |
|---|---|---|---|
| bool | Val = true ) |
◆ slotsConsumed()
◆ subInstWouldBeExtended()
| bool llvm::HexagonMCInstrInfo::subInstWouldBeExtended | ( | MCInst const & | potentialDuplex | ) |
|---|
◆ SubregisterBit()
◆ tryCompound()
◆ bundleInstructionsOffset
| size_t llvm::HexagonMCInstrInfo::bundleInstructionsOffset = 1 | constexpr |
|---|
◆ innerLoopMask
| int64_t llvm::HexagonMCInstrInfo::innerLoopMask = 1 << innerLoopOffset | constexpr |
|---|
◆ innerLoopOffset
| size_t llvm::HexagonMCInstrInfo::innerLoopOffset = 0 | constexpr |
|---|
◆ memReorderDisabledMask
| int64_t llvm::HexagonMCInstrInfo::memReorderDisabledMask = 1 << memReorderDisabledOffset | constexpr |
|---|
◆ memReorderDisabledOffset
| size_t llvm::HexagonMCInstrInfo::memReorderDisabledOffset = 2 | constexpr |
|---|
◆ noShuffleMask
| int64_t llvm::HexagonMCInstrInfo::noShuffleMask = 1 << noShuffleOffset | constexpr |
|---|
◆ noShuffleOffset
| size_t llvm::HexagonMCInstrInfo::noShuffleOffset = 4 | constexpr |
|---|
◆ outerLoopMask
| int64_t llvm::HexagonMCInstrInfo::outerLoopMask = 1 << outerLoopOffset | constexpr |
|---|
◆ outerLoopOffset
| size_t llvm::HexagonMCInstrInfo::outerLoopOffset = 1 | constexpr |
|---|
◆ splitNoMemorderMask
| int64_t llvm::HexagonMCInstrInfo::splitNoMemorderMask = 1 << splitNoMemOrderOffset | constexpr |
|---|
◆ splitNoMemOrderOffset
| size_t llvm::HexagonMCInstrInfo::splitNoMemOrderOffset = 3 | constexpr |
|---|