LLVM: lib/Target/Hexagon/HexagonVLIWPacketizer.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "packets" |
| Enumerations | |
|---|---|
| enum | PredicateKind { PK_False, PK_True, PK_Unknown } |
| Variables | |
|---|---|
| static cl::opt< bool > | DisablePacketizer ("disable-packetizer", cl::Hidden, cl::desc("Disable Hexagon packetizer pass")) |
| static cl::opt< bool > | Slot1Store ("slot1-store-slot0-load", cl::Hidden, cl::init(true), cl::desc("Allow slot1 store and slot0 load")) |
| static cl::opt< bool > | PacketizeVolatiles ("hexagon-packetize-volatiles", cl::Hidden, cl::init(true), cl::desc("Allow non-solo packetization of volatile memory references")) |
| static cl::opt< bool > | EnableGenAllInsnClass ("enable-gen-insn", cl::Hidden, cl::desc("Generate all instruction with TC")) |
| static cl::opt< bool > | DisableVecDblNVStores ("disable-vecdbl-nv-stores", cl::Hidden, cl::desc("Disable vector double new-value-stores")) |
| cl::opt< bool > | ScheduleInlineAsm |
| hexagon | packetizer |
| hexagon Hexagon | Packetizer |
| hexagon Hexagon | false |
◆ DEBUG_TYPE
#define DEBUG_TYPE "packets"
◆ PredicateKind
◆ cannotCoexistAsymm()
Definition at line 1097 of file HexagonVLIWPacketizer.cpp.
References llvm::MachineFunction::getSubtarget(), llvm::HexagonInstrInfo::getType(), llvm::HexagonSubtarget::hasV60OpsOnly(), llvm::MachineInstr::isBarrier(), llvm::MachineInstr::isBranch(), llvm::MachineInstr::isCall(), llvm::HexagonInstrInfo::isHVXMemWithAIndirect(), llvm::MachineInstr::isInlineAsm(), llvm::HexagonInstrInfo::isNewValueStore(), llvm::HexagonInstrInfo::isPureSlot0(), llvm::HexagonInstrInfo::isRestrictNoSlot1Store(), llvm::MachineInstr::isTerminator(), llvm::MachineInstr::mayStore(), MI, llvm::HexagonII::TypeALU32_2op, llvm::HexagonII::TypeALU32_3op, and llvm::HexagonII::TypeALU32_ADDI.
Referenced by llvm::HexagonPacketizerList::cannotCoexist().
◆ doesModifyCalleeSavedReg()
◆ getAbsSetOperand()
◆ getPostIncrementOperand()
Definition at line 567 of file HexagonVLIWPacketizer.cpp.
References assert(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert(), llvm::HexagonInstrInfo::isPostIncrement(), llvm::MachineOperand::isReg(), llvm_unreachable, and MI.
Referenced by llvm::HexagonPacketizerList::canPromoteToNewValueStore().
◆ getPredicatedRegister()
◆ getPredicateSense()
◆ getStoreValueOperand()
◆ hasWriteToReadDep()
◆ INITIALIZE_PASS_BEGIN()
| INITIALIZE_PASS_BEGIN | ( | HexagonPacketizer | , |
|---|---|---|---|
| "hexagon-packetizer" | , | ||
| "Hexagon Packetizer" | , | ||
| false | , | ||
| false | ) |
◆ isControlFlow()
◆ isDirectJump()
◆ isImplicitDependency()
◆ isLoadAbsSet()
◆ isRegDependence()
◆ isSchedBarrier()
◆ isSystemInstr()
◆ moveInstrOut()
Definition at line 154 of file HexagonVLIWPacketizer.cpp.
References assert(), B(), llvm::MachineInstr::BundledPred, llvm::MachineInstr::BundledSucc, E(), llvm::MachineInstrBundleIterator< Ty, IsReverse >::getInstrIterator(), I, llvm::MachineInstr::isBundledWithSucc(), MI, Size, and llvm::MachineInstr::unbundleFromPred().
Referenced by llvm::HexagonPacketizerList::unpacketizeSoloInstrs().
◆ DisablePacketizer
| cl::opt< bool > DisablePacketizer("disable-packetizer", cl::Hidden, cl::desc("Disable Hexagon packetizer pass")) ( "disable-packetizer" , cl::Hidden , cl::desc("Disable Hexagon packetizer pass") ) | static |
|---|
◆ DisableVecDblNVStores
| cl::opt< bool > DisableVecDblNVStores("disable-vecdbl-nv-stores", cl::Hidden, cl::desc("Disable vector double new-value-stores")) ( "disable-vecdbl-nv-stores" , cl::Hidden , cl::desc("Disable vector double new-value-stores") ) | static |
|---|
◆ EnableGenAllInsnClass
| cl::opt< bool > EnableGenAllInsnClass("enable-gen-insn", cl::Hidden, cl::desc("Generate all instruction with TC")) ( "enable-gen-insn" , cl::Hidden , cl::desc("Generate all instruction with TC") ) | static |
|---|
◆ false
◆ Packetizer
hexagon Hexagon Packetizer
◆ packetizer
◆ PacketizeVolatiles
| cl::opt< bool > PacketizeVolatiles("hexagon-packetize-volatiles", cl::Hidden, cl::init(true), cl::desc("Allow non-solo packetization of volatile memory references")) ( "hexagon-packetize-volatiles" , cl::Hidden , cl::init(true) , cl::desc("Allow non-solo packetization of volatile memory references") ) | static |
|---|
◆ ScheduleInlineAsm
◆ Slot1Store
| cl::opt< bool > Slot1Store("slot1-store-slot0-load", cl::Hidden, cl::init(true), cl::desc("Allow slot1 store and slot0 load")) ( "slot1-store-slot0-load" , cl::Hidden , cl::init(true) , cl::desc("Allow slot1 store and slot0 load") ) | static |
|---|