|
LLVM
4.0.0
|
Variables | |
| size_t const | innerLoopOffset = 0 |
| int64_t const | innerLoopMask = 1 << innerLoopOffset |
| size_t const | outerLoopOffset = 1 |
| int64_t const | outerLoopMask = 1 << outerLoopOffset |
| size_t const | memReorderDisabledOffset = 2 |
| int64_t const | memReorderDisabledMask = 1 << memReorderDisabledOffset |
| size_t const | memStoreReorderEnabledOffset = 3 |
| int64_t const | memStoreReorderEnabledMask = 1 << memStoreReorderEnabledOffset |
| size_t const | bundleInstructionsOffset = 1 |
Definition at line 26 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::addOperand(), llvm::MCConstantExpr::create(), and llvm::MCOperand::createExpr().
Referenced by brtargetDecoder(), decodeImmext(), s11_1ImmDecoder(), signedDecoder(), and unsignedImmDecoder().
| void llvm::HexagonMCInstrInfo::addConstExtender | ( | MCContext & | Context, |
| MCInstrInfo const & | MCII, | ||
| MCInst & | MCB, | ||
| MCInst const & | MCI | ||
| ) |
Definition at line 31 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::addOperand(), assert(), Context, llvm::MCOperand::createInst(), deriveExtender(), getExtendableOp(), llvm::MCInst::getOperand(), and isBundle().
Referenced by extendIfNeeded().
| iterator_range< MCInst::const_iterator > llvm::HexagonMCInstrInfo::bundleInstructions | ( | MCInst const & | MCI | ) |
Definition at line 46 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::MCInst::begin(), bundleInstructionsOffset, llvm::MCInst::end(), isBundle(), and llvm::make_range().
Referenced by llvm::HexagonMCELFStreamer::EmitInstruction(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), hasImmExt(), and llvm::HexagonInstPrinter::printInst().
Definition at line 51 of file HexagonMCInstrInfo.cpp.
References bundleInstructionsOffset, isBundle(), and llvm::MCInst::size().
Referenced by canonicalizePacket(), llvm::HexagonMCELFStreamer::EmitInstruction(), llvm::HexagonAsmPrinter::EmitInstruction(), llvm::HexagonMCCodeEmitter::encodeInstruction(), extenderForIndex(), fullValue(), llvm::HexagonMCShuffle(), padEndloop(), and llvm::HexagonInstPrinter::printInst().
| bool llvm::HexagonMCInstrInfo::canonicalizePacket | ( | MCInstrInfo const & | MCII, |
| MCSubtargetInfo const & | STI, | ||
| MCContext & | Context, | ||
| MCInst & | MCB, | ||
| HexagonMCChecker * | Checker | ||
| ) |
Definition at line 58 of file HexagonMCInstrInfo.cpp.
References bundleSize(), llvm::HexagonMCChecker::check(), getDuplexPossibilties(), HEXAGON_PACKET_SIZE, llvm::HexagonDisableCompound, llvm::HexagonDisableDuplex, llvm::HexagonMCShuffle(), padEndloop(), and tryCompound().
Referenced by llvm::HexagonAsmPrinter::EmitInstruction().
| void llvm::HexagonMCInstrInfo::clampExtended | ( | MCInstrInfo const & | MCII, |
| MCContext & | Context, | ||
| MCInst & | MCI | ||
| ) |
Definition at line 90 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::HexagonMCExpr::create(), llvm::MCConstantExpr::create(), llvm::MCOperand::getExpr(), getExtendableOp(), getExtentAlignment(), llvm::MCInst::getOperand(), isExtendable(), isExtended(), and llvm::MCOperand::setExpr().
Referenced by llvm::HexagonMCELFStreamer::EmitInstruction().
| MCInst llvm::HexagonMCInstrInfo::createBundle | ( | ) |
Definition at line 107 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCInst::setOpcode().
Referenced by llvm::HexagonMCELFStreamer::EmitInstruction(), and llvm::HexagonAsmPrinter::EmitInstruction().
| MCInst * llvm::HexagonMCInstrInfo::deriveDuplex | ( | MCContext & | Context, |
| unsigned | iClass, | ||
| MCInst const & | inst0, | ||
| MCInst const & | inst1 | ||
| ) |
Definition at line 114 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::addOperand(), assert(), Context, llvm::MCOperand::createInst(), deriveSubInst(), and llvm::MCInst::setOpcode().
Referenced by replaceDuplex().
| MCInst llvm::HexagonMCInstrInfo::deriveExtender | ( | MCInstrInfo const & | MCII, |
| MCInst const & | Inst, | ||
| MCOperand const & | MO | ||
| ) |
Definition at line 128 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createExpr(), llvm::MCOperand::createImm(), Desc, getDesc(), llvm::MCOperand::getExpr(), llvm::MCOperand::getImm(), getType(), llvm::MCInstrDesc::isBranch(), llvm::MCInstrDesc::isCall(), llvm::MCOperand::isExpr(), isExtendable(), isExtended(), llvm::MCOperand::isImm(), llvm_unreachable, llvm::MCInst::setOpcode(), and llvm::HexagonII::TypeCR.
Referenced by addConstExtender().
Definition at line 684 of file HexagonMCDuplexInfo.cpp.
References llvm::HexagonII::Absolute, addOps(), assert(), llvm::MCOperand::getExpr(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm_unreachable, minConstant(), and llvm::MCInst::setOpcode().
Referenced by deriveDuplex(), and isOrderedDuplexPair().
Definition at line 149 of file HexagonMCInstrInfo.cpp.
References assert(), bundleInstructionsOffset, bundleSize(), llvm::MCOperand::getInst(), llvm::MCInst::getOperand(), and isImmext().
Referenced by fullValue(), and hasExtenderForIndex().
| void llvm::HexagonMCInstrInfo::extendIfNeeded | ( | MCContext & | Context, |
| MCInstrInfo const & | MCII, | ||
| MCInst & | MCB, | ||
| MCInst const & | MCI | ||
| ) |
Definition at line 161 of file HexagonMCInstrInfo.cpp.
References addConstExtender(), and isConstExtended().
Referenced by llvm::HexagonLowerToMC().
| HexagonII::MemAccessSize llvm::HexagonMCInstrInfo::getAccessSize | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 169 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::MemAccesSizeMask, llvm::HexagonII::MemAccessSizePos, and llvm::MCInstrDesc::TSFlags.
| unsigned llvm::HexagonMCInstrInfo::getBitCount | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 176 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::ExtentBitsMask, llvm::HexagonII::ExtentBitsPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
| unsigned short llvm::HexagonMCInstrInfo::getCExtOpNum | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 183 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::ExtendableOpMask, llvm::HexagonII::ExtendableOpPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
| MCInstrDesc const & llvm::HexagonMCInstrInfo::getDesc | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 189 of file HexagonMCInstrInfo.cpp.
References llvm::MCInstrInfo::get(), and llvm::MCInst::getOpcode().
Referenced by llvm::HexagonShuffler::check(), deriveExtender(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), llvm::MachineInstr::findFirstPredOperandIdx(), getAccessSize(), getBitCount(), getCExtOpNum(), getExtendableOp(), getExtentAlignment(), getExtentBits(), getMaxValue(), getMinValue(), getNewValueOp(), getNewValueOp2(), getNewValueOperand(), llvm::MachineInstr::getRegClassConstraint(), getSubTarget(), getType(), getUnits(), hasNewValue(), hasNewValue2(), llvm::HexagonCVIResource::HexagonCVIResource(), isCanon(), isCofMax1(), isConstExtended(), isExtendable(), isExtended(), isFloat(), isNewValue(), isOperandExtended(), isPredicated(), isPredicatedNew(), isPredicatedTrue(), isPredicateLate(), isSolo(), isSoloAin1(), isSoloAX(), prefersSlot3(), llvm::MachineInstr::print(), and llvm::HexagonShuffler::shuffle().
Definition at line 177 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, isDblRegForSubInst(), isIntReg(), isIntRegForSubInst(), isPredReg(), and minConstant().
Referenced by getDuplexPossibilties(), isDuplexPair(), and isOrderedDuplexPair().
| SmallVector< DuplexCandidate, 8 > llvm::HexagonMCInstrInfo::getDuplexPossibilties | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCB | ||
| ) |
Definition at line 1007 of file HexagonMCDuplexInfo.cpp.
References assert(), bundleInstructionsOffset, llvm::dbgs(), DEBUG, getDuplexCandidateGroup(), llvm::MCOperand::getInst(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), hasExtenderForIndex(), iClassOfDuplexPair(), isBundle(), isMemReorderDisabled(), isOrderedDuplexPair(), isStoreInst(), and llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back().
Referenced by canonicalizePacket().
Definition at line 194 of file HexagonMCInstrInfo.cpp.
References llvm_unreachable, R2, R4, and R6.
Referenced by llvm::HexagonMCCodeEmitter::getMachineOpValue().
Definition at line 243 of file HexagonMCInstrInfo.cpp.
References assert().
| unsigned short llvm::HexagonMCInstrInfo::getExtendableOp | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 249 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::ExtendableOpMask, llvm::HexagonII::ExtendableOpPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by addConstExtender(), clampExtended(), fullValue(), getExtendableOperand(), llvm::HexagonInstPrinter::printBrtarget(), and llvm::HexagonInstPrinter::printOperand().
| MCOperand const & llvm::HexagonMCInstrInfo::getExtendableOperand | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 256 of file HexagonMCInstrInfo.cpp.
References assert(), getExtendableOp(), llvm::MCInst::getOperand(), llvm::MCOperand::isExpr(), isExtendable(), isExtended(), and llvm::MCOperand::isImm().
Referenced by isConstExtended().
| unsigned llvm::HexagonMCInstrInfo::getExtentAlignment | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 267 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::ExtentAlignMask, llvm::HexagonII::ExtentAlignPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by clampExtended(), and fullValue().
| unsigned llvm::HexagonMCInstrInfo::getExtentBits | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 273 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::ExtentBitsMask, llvm::HexagonII::ExtentBitsPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by brtargetDecoder().
| int llvm::HexagonMCInstrInfo::getMaxValue | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 281 of file HexagonMCInstrInfo.cpp.
References bits, llvm::HexagonII::ExtentBitsMask, llvm::HexagonII::ExtentBitsPos, llvm::HexagonII::ExtentSignedMask, llvm::HexagonII::ExtentSignedPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by isConstExtended().
| int llvm::HexagonMCInstrInfo::getMinValue | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 296 of file HexagonMCInstrInfo.cpp.
References bits, llvm::HexagonII::ExtentBitsMask, llvm::HexagonII::ExtentBitsPos, llvm::HexagonII::ExtentSignedMask, llvm::HexagonII::ExtentSignedPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by isConstExtended().
| StringRef llvm::HexagonMCInstrInfo::getName | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 309 of file HexagonMCInstrInfo.cpp.
References llvm::MCInstrInfo::getName(), and llvm::MCInst::getOpcode().
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction().
| unsigned short llvm::HexagonMCInstrInfo::getNewValueOp | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 314 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::NewValueOpMask, llvm::HexagonII::NewValueOpPos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction().
| unsigned short llvm::HexagonMCInstrInfo::getNewValueOp2 | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Return the new value or the newly produced value.
Definition at line 334 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::NewValueOpMask2, llvm::HexagonII::NewValueOpPos2, and llvm::MCInstrDesc::TSFlags.
Referenced by getNewValueOperand2().
| MCOperand const & llvm::HexagonMCInstrInfo::getNewValueOperand | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 320 of file HexagonMCInstrInfo.cpp.
References assert(), F, getDesc(), llvm::MCInst::getOperand(), hasNewValue(), isNewValue(), llvm::MCOperand::isReg(), llvm::HexagonII::NewValueOpMask, llvm::HexagonII::NewValueOpPos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction().
| MCOperand const & llvm::HexagonMCInstrInfo::getNewValueOperand2 | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 341 of file HexagonMCInstrInfo.cpp.
References assert(), getNewValueOp2(), llvm::MCInst::getOperand(), hasNewValue2(), isNewValue(), and llvm::MCOperand::isReg().
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction().
| int llvm::HexagonMCInstrInfo::getSubTarget | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 352 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::HasV5SubT, llvm::MCInstrDesc::TSFlags, llvm::HexagonII::validSubTargetMask, and llvm::HexagonII::validSubTargetPos.
| unsigned llvm::HexagonMCInstrInfo::getType | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 368 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::MCInstrDesc::TSFlags, llvm::HexagonII::TypeMask, and llvm::HexagonII::TypePos.
Referenced by llvm::HexagonShuffler::check(), deriveExtender(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), llvm::HexagonCVIResource::HexagonCVIResource(), isCanon(), isConstExtended(), isDuplex(), isPrefix(), lookForCompound(), and prefersSlot3().
| unsigned llvm::HexagonMCInstrInfo::getUnits | ( | MCInstrInfo const & | MCII, |
| MCSubtargetInfo const & | STI, | ||
| MCInst const & | MCI | ||
| ) |
Return the slots used by the insn.
Definition at line 375 of file HexagonMCInstrInfo.cpp.
References getDesc(), llvm::MCInstrDesc::getSchedClass(), llvm::MCSubtargetInfo::getSchedModel(), llvm::HexagonStages, and llvm::MCSchedModel::InstrItineraries.
Definition at line 397 of file HexagonMCInstrInfo.cpp.
References extenderForIndex().
Referenced by getDuplexPossibilties().
Definition at line 384 of file HexagonMCInstrInfo.cpp.
References bundleInstructions(), I, isBundle(), isImmext(), and MI.
| bool llvm::HexagonMCInstrInfo::hasNewValue | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 402 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::hasNewValueMask, llvm::HexagonII::hasNewValuePos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), and getNewValueOperand().
| bool llvm::HexagonMCInstrInfo::hasNewValue2 | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Return whether the insn produces a second value.
Definition at line 409 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::hasNewValueMask2, llvm::HexagonII::hasNewValuePos2, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), and getNewValueOperand2().
Definition at line 108 of file HexagonMCDuplexInfo.cpp.
References llvm::HexagonII::HSIG_A, llvm::HexagonII::HSIG_Compound, llvm::HexagonII::HSIG_L1, llvm::HexagonII::HSIG_L2, llvm::HexagonII::HSIG_None, llvm::HexagonII::HSIG_S1, and llvm::HexagonII::HSIG_S2.
Referenced by getDuplexPossibilties().
| bool llvm::HexagonMCInstrInfo::inRange | ( | MCInst const & | MCI, |
| size_t | Index | ||
| ) |
Definition at line 181 of file HexagonMCInstrInfo.h.
References minConstant().
Definition at line 188 of file HexagonMCInstrInfo.h.
References minConstant().
| bool llvm::HexagonMCInstrInfo::inSRange | ( | MCInst const & | MCI, |
| size_t | Index | ||
| ) |
Definition at line 185 of file HexagonMCInstrInfo.h.
References minConstant().
Definition at line 415 of file HexagonMCInstrInfo.cpp.
References assert(), bundleInstructionsOffset, llvm::MCOperand::getInst(), llvm::MCInst::getOperand(), HEXAGON_PACKET_SIZE, and isBundle().
Definition at line 421 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::isImm(), and llvm::MCInst::size().
Referenced by addConstExtender(), bundleInstructions(), bundleSize(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), getDuplexPossibilties(), hasImmExt(), llvm::HexagonMCShuffle(), instruction(), llvm::MachineInstr::isIdenticalTo(), isInnerLoop(), isMemReorderDisabled(), isMemStoreReorderEnabled(), isOuterLoop(), lookForCompound(), padEndloop(), llvm::HexagonInstPrinter::printInst(), replaceDuplex(), setInnerLoop(), setMemReorderDisabled(), setMemStoreReorderEnabled(), setOuterLoop(), and tryCompound().
| bool llvm::HexagonMCInstrInfo::isCanon | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 428 of file HexagonMCInstrInfo.cpp.
References getDesc(), getType(), isPrefix(), and llvm::HexagonII::TypeENDLOOP.
| bool llvm::HexagonMCInstrInfo::isCofMax1 | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 434 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::CofMax1Mask, llvm::HexagonII::CofMax1Pos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonShuffler::check().
| bool llvm::HexagonMCInstrInfo::isCompound | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 439 of file HexagonMCInstrInfo.cpp.
References llvm::Intrinsic::getType(), and llvm::HexagonII::TypeCOMPOUND.
| bool llvm::HexagonMCInstrInfo::isConstExtended | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 461 of file HexagonMCInstrInfo.cpp.
References assert(), getDesc(), llvm::MCOperand::getExpr(), getExtendableOperand(), getMaxValue(), getMinValue(), llvm::MCInst::getOpcode(), getType(), llvm::MCInstrDesc::isBranch(), isExtendable(), isExtended(), llvm::MCOperand::isImm(), mustExtend(), mustNotExtend(), llvm::HexagonII::TypeCOMPOUND, llvm::HexagonII::TypeCR, llvm::HexagonII::TypeJ, and llvm::HexagonII::TypeNV.
Referenced by extendIfNeeded(), llvm::HexagonInstPrinter::printBrtarget(), and llvm::HexagonInstPrinter::printOperand().
Definition at line 444 of file HexagonMCInstrInfo.cpp.
Referenced by getDuplexCandidateGroup().
| bool llvm::HexagonMCInstrInfo::isDuplex | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 449 of file HexagonMCInstrInfo.cpp.
References getType(), and llvm::HexagonII::TypeDUPLEX.
Referenced by llvm::HexagonMCELFStreamer::EmitInstruction(), llvm::HexagonMCCodeEmitter::parseBits(), and llvm::HexagonInstPrinter::printInst().
Symmetrical. See if these two instructions are fit for duplex pair.
Definition at line 639 of file HexagonMCDuplexInfo.cpp.
References getDuplexCandidateGroup(), and isDuplexPairMatch().
Definition at line 83 of file HexagonMCDuplexInfo.cpp.
References llvm::HexagonII::HSIG_A, llvm::HexagonII::HSIG_Compound, llvm::HexagonII::HSIG_L1, llvm::HexagonII::HSIG_L2, llvm::HexagonII::HSIG_None, llvm::HexagonII::HSIG_S1, and llvm::HexagonII::HSIG_S2.
| bool llvm::HexagonMCInstrInfo::isExtendable | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 495 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::ExtendableMask, llvm::HexagonII::ExtendablePos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by clampExtended(), deriveExtender(), getExtendableOperand(), and isConstExtended().
| bool llvm::HexagonMCInstrInfo::isExtended | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 501 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::ExtendedMask, llvm::HexagonII::ExtendedPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by clampExtended(), deriveExtender(), getExtendableOperand(), and isConstExtended().
| bool llvm::HexagonMCInstrInfo::isFloat | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Return whether it is a floating-point insn.
Definition at line 507 of file HexagonMCInstrInfo.cpp.
References F, llvm::HexagonII::FPMask, llvm::HexagonII::FPPos, getDesc(), and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonShuffler::check(), and combineTargetShuffle().
Definition at line 512 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::getOpcode().
Referenced by llvm::HexagonMCELFStreamer::EmitInstruction(), llvm::HexagonMCCodeEmitter::encodeInstruction(), llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), extenderForIndex(), hasImmExt(), and lookForCompound().
Definition at line 518 of file HexagonMCInstrInfo.cpp.
References assert(), fuzzer::Flags, llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), innerLoopMask, and isBundle().
Referenced by padEndloop(), llvm::HexagonMCCodeEmitter::parseBits(), and llvm::HexagonInstPrinter::printInst().
Definition at line 524 of file HexagonMCInstrInfo.cpp.
Referenced by getDuplexCandidateGroup().
Definition at line 528 of file HexagonMCInstrInfo.cpp.
Referenced by getCompoundCandidateGroup(), getDuplexCandidateGroup(), and subInstWouldBeExtended().
Definition at line 594 of file HexagonMCInstrInfo.cpp.
References assert(), fuzzer::Flags, llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), isBundle(), and memReorderDisabledMask.
Referenced by getDuplexPossibilties(), and setMemReorderDisabled().
Definition at line 600 of file HexagonMCInstrInfo.cpp.
References assert(), fuzzer::Flags, llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), isBundle(), and memStoreReorderEnabledMask.
Referenced by setMemStoreReorderEnabled().
| bool llvm::HexagonMCInstrInfo::isNewValue | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 534 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::NewValueMask, llvm::HexagonII::NewValuePos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), getNewValueOperand(), and getNewValueOperand2().
| bool llvm::HexagonMCInstrInfo::isOperandExtended | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI, | ||
| unsigned short | OperandNum | ||
| ) |
Definition at line 541 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonII::ExtendableOpMask, llvm::HexagonII::ExtendableOpPos, F, getDesc(), and llvm::MCInstrDesc::TSFlags.
| bool llvm::HexagonMCInstrInfo::isOrderedDuplexPair | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MIa, | ||
| bool | ExtendedA, | ||
| MCInst const & | MIb, | ||
| bool | ExtendedB, | ||
| bool | bisReversable | ||
| ) |
non-Symmetrical. See if these two instructions are fit for duplex pair.
Definition at line 565 of file HexagonMCDuplexInfo.cpp.
References llvm::sys::path::begin(), deriveSubInst(), llvm::sys::path::end(), 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().
Definition at line 549 of file HexagonMCInstrInfo.cpp.
References assert(), fuzzer::Flags, llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), isBundle(), and outerLoopMask.
Referenced by padEndloop(), llvm::HexagonMCCodeEmitter::parseBits(), and llvm::HexagonInstPrinter::printInst().
| bool llvm::HexagonMCInstrInfo::isPredicated | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 555 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::PredicatedMask, llvm::HexagonII::PredicatedPos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction(), llvm::MSP430InstrInfo::isUnpredicatedTerminator(), and llvm::X86InstrInfo::isUnpredicatedTerminator().
| bool llvm::HexagonMCInstrInfo::isPredicatedNew | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Return whether the insn is newly predicated.
Definition at line 568 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::PredicatedNewMask, llvm::HexagonII::PredicatedNewPos, and llvm::MCInstrDesc::TSFlags.
| bool llvm::HexagonMCInstrInfo::isPredicatedTrue | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 574 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::PredicatedFalseMask, llvm::HexagonII::PredicatedFalsePos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction().
| bool llvm::HexagonMCInstrInfo::isPredicateLate | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 561 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::PredicateLateMask, llvm::HexagonII::PredicateLatePos, and llvm::MCInstrDesc::TSFlags.
Definition at line 581 of file HexagonMCInstrInfo.cpp.
Referenced by getDuplexCandidateGroup().
| bool llvm::HexagonMCInstrInfo::isPrefix | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 585 of file HexagonMCInstrInfo.cpp.
References getType(), and llvm::HexagonII::TypePREFIX.
Referenced by isCanon(), and readPrefixes().
| bool llvm::HexagonMCInstrInfo::isSolo | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 589 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::SoloMask, llvm::HexagonII::SoloPos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonShuffler::check().
| bool llvm::HexagonMCInstrInfo::isSoloAin1 | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Return whether the insn can be packaged only with an A-type insn in slot #1.
Definition at line 671 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::SoloAin1Mask, llvm::HexagonII::SoloAin1Pos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonShuffler::check().
| bool llvm::HexagonMCInstrInfo::isSoloAX | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Return whether the insn can be packaged only with A and X-type insns.
Definition at line 666 of file HexagonMCInstrInfo.cpp.
References F, getDesc(), llvm::HexagonII::SoloAXMask, llvm::HexagonII::SoloAXPos, and llvm::MCInstrDesc::TSFlags.
Referenced by llvm::HexagonShuffler::check().
Definition at line 606 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::getOpcode().
Referenced by llvm::HexagonMCCodeEmitter::getMachineOpValue().
| bool llvm::HexagonMCInstrInfo::isVector | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 677 of file HexagonMCInstrInfo.cpp.
References llvm::Intrinsic::getType(), llvm::HexagonII::TypeCVI_FIRST, and llvm::HexagonII::TypeCVI_LAST.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction().
Definition at line 684 of file HexagonMCInstrInfo.cpp.
References llvm::MCOperand::getExpr(), llvm::MCInst::getOperand(), llvm::MCOperand::isExpr(), and llvm::MCInst::size().
Referenced by deriveSubInst(), getCompoundCandidateGroup(), getDuplexCandidateGroup(), inRange(), and inSRange().
Definition at line 703 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonMCExpr::mustExtend().
Referenced by isConstExtended().
Definition at line 712 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonMCExpr::mustNotExtend().
Referenced by isConstExtended().
Definition at line 717 of file HexagonMCInstrInfo.cpp.
References llvm::MCInst::addOperand(), assert(), bundleSize(), llvm::MCOperand::createInst(), HEXAGON_PACKET_INNER_SIZE, HEXAGON_PACKET_OUTER_SIZE, isBundle(), isInnerLoop(), isOuterLoop(), llvm::WebAssembly::Nop, and llvm::MCInst::setOpcode().
Referenced by canonicalizePacket(), and llvm::HexagonMCELFStreamer::EmitInstruction().
| bool llvm::HexagonMCInstrInfo::prefersSlot3 | ( | MCInstrInfo const & | MCII, |
| MCInst const & | MCI | ||
| ) |
Definition at line 728 of file HexagonMCInstrInfo.cpp.
References getDesc(), llvm::MCInstrDesc::getSchedClass(), getType(), and llvm::HexagonII::TypeCR.
Referenced by llvm::HexagonShuffler::check().
| void llvm::HexagonMCInstrInfo::replaceDuplex | ( | MCContext & | Context, |
| MCInst & | MCB, | ||
| DuplexCandidate | Candidate | ||
| ) |
Definition at line 748 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().
Definition at line 786 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonMCExpr::s23_2_reloc().
| void llvm::HexagonMCInstrInfo::setInnerLoop | ( | MCInst & | MCI | ) |
Definition at line 762 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), innerLoopMask, isBundle(), and llvm::MCOperand::setImm().
Referenced by llvm::HexagonLowerToMC().
| void llvm::HexagonMCInstrInfo::setMemReorderDisabled | ( | MCInst & | MCI | ) |
Definition at line 768 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), isBundle(), isMemReorderDisabled(), memReorderDisabledMask, and llvm::MCOperand::setImm().
| void llvm::HexagonMCInstrInfo::setMemStoreReorderEnabled | ( | MCInst & | MCI | ) |
Definition at line 775 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), isBundle(), isMemStoreReorderEnabled(), memStoreReorderEnabledMask, and llvm::MCOperand::setImm().
Definition at line 698 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonMCExpr::setMustExtend().
Referenced by GetSymbolRef(), and llvm::HexagonLowerToMC().
Definition at line 707 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonMCExpr::setMustNotExtend().
Referenced by llvm::HexagonAsmPrinter::HexagonProcessInstruction().
| void llvm::HexagonMCInstrInfo::setOuterLoop | ( | MCInst & | MCI | ) |
Definition at line 791 of file HexagonMCInstrInfo.cpp.
References assert(), llvm::MCOperand::getImm(), llvm::MCInst::getOperand(), isBundle(), outerLoopMask, and llvm::MCOperand::setImm().
Referenced by llvm::HexagonLowerToMC().
Definition at line 781 of file HexagonMCInstrInfo.cpp.
References llvm::HexagonMCExpr::setS23_2_reloc().
Referenced by llvm::HexagonAsmPrinter::HexagonProcessInstruction().
Definition at line 528 of file HexagonMCDuplexInfo.cpp.
References llvm::MCOperand::getExpr(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), and isIntRegForSubInst().
Referenced by isOrderedDuplexPair().
| unsigned llvm::HexagonMCInstrInfo::SubregisterBit | ( | unsigned | Consumer, |
| unsigned | Producer, | ||
| unsigned | Producer2 | ||
| ) |
Definition at line 797 of file HexagonMCInstrInfo.cpp.
Referenced by llvm::HexagonMCCodeEmitter::EncodeSingleInstruction().
| void llvm::HexagonMCInstrInfo::tryCompound | ( | MCInstrInfo const & | MCII, |
| MCContext & | Context, | ||
| MCInst & | MCI | ||
| ) |
tryCompound - Given a bundle check for compound insns when one is found update the contents fo the bundle with the compound insn.
If a compound instruction is found then the bundle will have one additional slot.
Definition at line 399 of file HexagonMCCompound.cpp.
References assert(), isBundle(), lookForCompound(), and llvm::MCInst::size().
Referenced by canonicalizePacket().
| size_t const llvm::HexagonMCInstrInfo::bundleInstructionsOffset = 1 |
Definition at line 53 of file HexagonMCInstrInfo.h.
Referenced by bundleInstructions(), bundleSize(), extenderForIndex(), getDuplexPossibilties(), instruction(), and lookForCompound().
| int64_t const llvm::HexagonMCInstrInfo::innerLoopMask = 1 << innerLoopOffset |
Definition at line 39 of file HexagonMCInstrInfo.h.
Referenced by isInnerLoop(), and setInnerLoop().
| size_t const llvm::HexagonMCInstrInfo::innerLoopOffset = 0 |
Definition at line 38 of file HexagonMCInstrInfo.h.
| int64_t const llvm::HexagonMCInstrInfo::memReorderDisabledMask = 1 << memReorderDisabledOffset |
Definition at line 47 of file HexagonMCInstrInfo.h.
Referenced by isMemReorderDisabled(), and setMemReorderDisabled().
| size_t const llvm::HexagonMCInstrInfo::memReorderDisabledOffset = 2 |
Definition at line 46 of file HexagonMCInstrInfo.h.
| int64_t const llvm::HexagonMCInstrInfo::memStoreReorderEnabledMask = 1 << memStoreReorderEnabledOffset |
Definition at line 51 of file HexagonMCInstrInfo.h.
Referenced by isMemStoreReorderEnabled(), and setMemStoreReorderEnabled().
| size_t const llvm::HexagonMCInstrInfo::memStoreReorderEnabledOffset = 3 |
Definition at line 50 of file HexagonMCInstrInfo.h.
| int64_t const llvm::HexagonMCInstrInfo::outerLoopMask = 1 << outerLoopOffset |
Definition at line 42 of file HexagonMCInstrInfo.h.
Referenced by isOuterLoop(), and setOuterLoop().
| size_t const llvm::HexagonMCInstrInfo::outerLoopOffset = 1 |
Definition at line 41 of file HexagonMCInstrInfo.h.
1.8.6