LLVM
8.0.1
|
#include "Target/Hexagon/HexagonVLIWPacketizer.h"
Protected Attributes | |
const MachineBranchProbabilityInfo * | MBPI |
A handle to the branch probability pass. More... | |
const MachineLoopInfo * | MLI |
Protected Attributes inherited from llvm::VLIWPacketizerList | |
MachineFunction & | MF |
const TargetInstrInfo * | TII |
AliasAnalysis * | AA |
DefaultVLIWScheduler * | VLIWScheduler |
std::vector< MachineInstr * > | CurrentPacketMIs |
DFAPacketizer * | ResourceTracker |
std::map< MachineInstr *, SUnit * > | MIToSUnit |
Definition at line 28 of file HexagonVLIWPacketizer.h.
hexagon Hexagon false HexagonPacketizerList::HexagonPacketizerList | ( | MachineFunction & | MF, |
MachineLoopInfo & | MLI, | ||
AliasAnalysis * | AA, | ||
const MachineBranchProbabilityInfo * | MBPI, | ||
bool | Minimal | ||
) |
Definition at line 132 of file HexagonVLIWPacketizer.cpp.
|
overridevirtual |
Reimplemented from llvm::VLIWPacketizerList.
Definition at line 1688 of file HexagonVLIWPacketizer.cpp.
References assert(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getParent(), and llvm::MachineInstr::isImplicitDef().
|
protected |
Definition at line 958 of file HexagonVLIWPacketizer.cpp.
References llvm::SDep::Data, getPredicatedRegister(), getPredicateSense(), I, llvm::SUnit::isSucc(), PK_Unknown, and llvm::SUnit::Succs.
Referenced by setmemShufDisabled().
|
protected |
Definition at line 1143 of file HexagonVLIWPacketizer.cpp.
References cannotCoexistAsymm().
Referenced by setmemShufDisabled().
|
protected |
Definition at line 399 of file HexagonVLIWPacketizer.cpp.
References llvm::dbgs(), llvm::MachineInstr::dump(), llvm::SUnit::getInstr(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MachineFunction::getSubtarget(), llvm::MachineInstr::isInlineAsm(), and LLVM_DEBUG.
Referenced by setmemShufDisabled().
|
protected |
Definition at line 842 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineFunction::CreateMachineInstr(), D, llvm::MachineFunction::DeleteMachineInstr(), DisableVecDblNVStores, llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::MachineInstr::isImplicitDef(), isImplicitDependency(), and llvm::MachineInstr::isInlineAsm().
Referenced by setmemShufDisabled().
|
protected |
Definition at line 812 of file HexagonVLIWPacketizer.cpp.
References llvm::SUnit::getInstr().
Referenced by setmemShufDisabled().
|
protected |
Definition at line 643 of file HexagonVLIWPacketizer.cpp.
References assert(), getAbsSetOperand(), llvm::MachineInstr::getDesc(), llvm::SUnit::getInstr(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), getPostIncrementOperand(), getPredicateSense(), llvm::MachineOperand::getReg(), getStoreValueOperand(), I, isLoadAbsSet(), llvm::MachineOperand::isReg(), llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), llvm::MachineInstr::modifiesRegister(), and llvm::MachineInstr::operands().
Referenced by setmemShufDisabled().
|
protected |
Definition at line 280 of file HexagonVLIWPacketizer.cpp.
Referenced by isPromotedToDotNew().
|
protected |
Definition at line 377 of file HexagonVLIWPacketizer.cpp.
References llvm::dbgs(), llvm::MachineInstr::dump(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), LLVM_DEBUG, MI, and llvm::MachineInstr::setDesc().
Referenced by setmemShufDisabled().
|
protected |
Definition at line 463 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::setDesc().
Referenced by setmemShufDisabled().
|
overridevirtual |
Reimplemented from llvm::VLIWPacketizerList.
Definition at line 1764 of file HexagonVLIWPacketizer.cpp.
References llvm::dbgs(), llvm::finalizeBundle(), llvm::MachineInstrBundleIterator< Ty, IsReverse >::getInstrIterator(), I, LLVM_DEBUG, llvm::make_range(), and MI.
bool HexagonPacketizerList::foundLSInPacket | ( | ) |
Definition at line 1668 of file HexagonVLIWPacketizer.cpp.
|
inlineprotected |
Definition at line 105 of file HexagonVLIWPacketizer.h.
|
protected |
Definition at line 1219 of file HexagonVLIWPacketizer.cpp.
References doesModifyCalleeSavedReg(), llvm::MachineInstr::isBarrier(), llvm::MachineInstr::isBranch(), llvm::MachineInstr::isCall(), isControlFlow(), and MI.
Referenced by isPromotedToDotNew().
|
protected |
Definition at line 1192 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::isCall(), and llvm::MachineInstr::operands().
Referenced by isPromotedToDotNew().
|
protected |
Definition at line 1285 of file HexagonVLIWPacketizer.cpp.
References isSystemInstr(), and llvm::MachineInstr::mayStore().
Referenced by isPromotedToDotNew().
|
protected |
Definition at line 1255 of file HexagonVLIWPacketizer.cpp.
References assert(), llvm::MachineInstr::isCall(), and llvm::MachineInstr::operands().
Referenced by isPromotedToDotNew().
|
overridevirtual |
Reimplemented from llvm::VLIWPacketizerList.
Definition at line 1035 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getDesc(), llvm::MCInstrDesc::getSchedClass(), llvm::MachineInstr::isCFIInstruction(), llvm::MachineInstr::isDebugInstr(), llvm::MachineInstr::isImplicitDef(), and llvm::MachineInstr::isInlineAsm().
|
overridevirtual |
Reimplemented from llvm::VLIWPacketizerList.
Definition at line 1025 of file HexagonVLIWPacketizer.cpp.
References INT64_MAX.
|
protected |
Definition at line 295 of file HexagonVLIWPacketizer.cpp.
References llvm::SDep::Data, and llvm::MachineInstr::operands().
Referenced by setmemShufDisabled().
|
protected |
Referenced by setmemShufDisabled().
Reimplemented from llvm::VLIWPacketizerList.
Definition at line 1310 of file HexagonVLIWPacketizer.cpp.
References llvm::SDep::Anti, assert(), llvm::SDep::Data, llvm::find(), llvm::SUnit::getInstr(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getSubtarget(), llvm::MachineInstr::hasOrderedMemoryRef(), llvm::HexagonSubtarget::hasV65Ops(), I, llvm::MachineInstr::isBranch(), llvm::MachineInstr::isCall(), isDirectJump(), llvm::MachineOperand::isReg(), isRegDependence(), llvm::SUnit::isSucc(), llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), llvm::MachineInstr::modifiesRegister(), llvm::SDep::Order, llvm::SDep::Output, PacketizeVolatiles, llvm::MachineInstr::readsRegister(), Slot1Store, and llvm::SUnit::Succs.
Reimplemented from llvm::VLIWPacketizerList.
Definition at line 1621 of file HexagonVLIWPacketizer.cpp.
References assert(), llvm::SUnit::getInstr(), I, and INT64_MAX.
|
protected |
Definition at line 352 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::mayStore().
Referenced by setmemShufDisabled().
|
inlineprotected |
Definition at line 142 of file HexagonVLIWPacketizer.h.
References canReserveResourcesForConstExt(), hasControlDependence(), hasDeadDependence(), hasDualStoreDependence(), hasRegMaskDependence(), I, producesStall(), reserveResourcesForConstExt(), and tryAllocateResourcesForConstExt().
|
overridevirtual |
Reimplemented from llvm::VLIWPacketizerList.
Definition at line 1058 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::isBundle(), llvm::MachineInstr::isCFIInstruction(), llvm::MachineInstr::isEHLabel(), llvm::MachineInstr::isInlineAsm(), isSchedBarrier(), and ScheduleInlineAsm.
|
protected |
Definition at line 1805 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getParent(), I, and llvm::SUnit::Preds.
Referenced by isPromotedToDotNew().
|
protected |
Definition at line 368 of file HexagonVLIWPacketizer.cpp.
References assert(), llvm::SDep::Data, and llvm::MachineInstr::setDesc().
Referenced by setmemShufDisabled().
|
protected |
Definition at line 450 of file HexagonVLIWPacketizer.cpp.
References assert(), llvm::SDep::Data, and llvm::MachineInstr::setDesc().
Referenced by setmemShufDisabled().
|
protected |
Definition at line 275 of file HexagonVLIWPacketizer.cpp.
References llvm_unreachable.
Referenced by isPromotedToDotNew().
|
protected |
Definition at line 911 of file HexagonVLIWPacketizer.cpp.
References llvm::SDep::Anti, I, llvm::SUnit::isSucc(), and llvm::SUnit::Succs.
Referenced by setmemShufDisabled().
|
inlineprotected |
Definition at line 108 of file HexagonVLIWPacketizer.h.
References arePredicatesComplements(), cannotCoexist(), canPromoteToDotCur(), canPromoteToDotNew(), canPromoteToNewValue(), canPromoteToNewValueStore(), cleanUpDotCur(), demoteToDotOld(), isCallDependent(), isCurifiable(), isNewifiable(), MI, promoteToDotCur(), promoteToDotNew(), restrictingDepExistInPacket(), undoChangedOffset(), updateOffset(), useCalleesSP(), and useCallersSP().
|
overridevirtual |
Reimplemented from llvm::VLIWPacketizerList.
Definition at line 1798 of file HexagonVLIWPacketizer.cpp.
Definition at line 286 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineFunction::CreateMachineInstr(), and llvm::MachineFunction::DeleteMachineInstr().
Referenced by isPromotedToDotNew().
|
protected |
Undo the changed offset.
This is needed if the instruction cannot be added to the current packet due to a different instruction.
Definition at line 544 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineInstr::getOperand(), llvm_unreachable, OP, and llvm::MachineOperand::setImm().
Referenced by setmemShufDisabled().
void HexagonPacketizerList::unpacketizeSoloInstrs | ( | MachineFunction & | MF | ) |
Definition at line 1148 of file HexagonVLIWPacketizer.cpp.
References B, E, hasWriteToReadDep(), I, llvm::MachineInstr::isBundle(), llvm::MachineInstr::isDebugValue(), llvm::MachineInstr::isInlineAsm(), llvm::MachineInstr::isInsideBundle(), MI, and moveInstrOut().
Return true if we can update the offset in MI so that MI and MJ can be packetized together.
Definition at line 508 of file HexagonVLIWPacketizer.cpp.
References llvm::SDep::Anti, assert(), llvm::SDep::Data, llvm::SUnit::getInstr(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), MI, llvm::SUnit::Preds, and Reg.
Referenced by setmemShufDisabled().
|
protected |
Definition at line 490 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineFrameInfo::getStackSize(), HEXAGON_LRFP_SIZE, llvm_unreachable, and llvm::MachineOperand::setImm().
Referenced by setmemShufDisabled().
|
protected |
Definition at line 469 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineFrameInfo::getStackSize(), HEXAGON_LRFP_SIZE, llvm_unreachable, and llvm::MachineOperand::setImm().
Referenced by setmemShufDisabled().
|
protected |
A handle to the branch probability pass.
Definition at line 63 of file HexagonVLIWPacketizer.h.
|
protected |
Definition at line 64 of file HexagonVLIWPacketizer.h.