|
LLVM
3.7.0
|
#include <HexagonShuffler.h>
Public Types | |
| enum | { SHUFFLE_SUCCESS = 0, SHUFFLE_ERROR_INVALID, SHUFFLE_ERROR_STORES, SHUFFLE_ERROR_LOADS, SHUFFLE_ERROR_BRANCHES, SHUFFLE_ERROR_NOSLOTS, SHUFFLE_ERROR_SLOTS, SHUFFLE_ERROR_UNKNOWN } |
| typedef HexagonPacket::iterator | iterator |
Public Member Functions | |
| HexagonShuffler (MCInstrInfo const &MCII, MCSubtargetInfo const &STI) | |
| void | reset () |
| bool | check () |
| Check that the packet is legal and enforce relative insn order. More... | |
| bool | shuffle () |
| unsigned | size () const |
| iterator | begin () |
| iterator | end () |
| void | append (MCInst const *ID, MCInst const *Extender, unsigned S, bool X=false) |
| void | setError (unsigned Err) |
| unsigned | getError () const |
Protected Attributes | |
| int64_t | BundleFlags |
| MCInstrInfo const & | MCII |
| MCSubtargetInfo const & | STI |
Definition at line 85 of file HexagonShuffler.h.
Definition at line 101 of file HexagonShuffler.h.
| anonymous enum |
Definition at line 103 of file HexagonShuffler.h.
|
explicit |
Definition at line 96 of file HexagonShuffler.cpp.
References reset().
| void HexagonShuffler::append | ( | MCInst const * | ID, |
| MCInst const * | Extender, | ||
| unsigned | S, | ||
| bool | X = false |
||
| ) |
Definition at line 108 of file HexagonShuffler.cpp.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
|
inline |
Definition at line 125 of file HexagonShuffler.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin().
Referenced by check(), llvm::HexagonMCShuffler::copyTo(), and shuffle().
| bool HexagonShuffler::check | ( | ) |
Check that the packet is legal and enforce relative insn order.
Definition at line 116 of file HexagonShuffler.cpp.
References begin(), HexagonUnitAuction::bid(), end(), llvm::HexagonMCInstrInfo::getDesc(), llvm::MCInstrDesc::getOpcode(), llvm::HexagonMCInstrInfo::getType(), I, llvm::MCInstrDesc::isBranch(), llvm::MCInstrDesc::isCall(), llvm::HexagonMCInstrInfo::isFloat(), llvm::MCInstrDesc::isReturn(), llvm::HexagonMCInstrInfo::isSolo(), llvm::HexagonMCInstrInfo::isSoloAin1(), llvm::HexagonMCInstrInfo::isSoloAX(), llvm::HexagonInstr::lessCore(), llvm::MCInstrDesc::mayLoad(), llvm::MCInstrDesc::mayStore(), MCII, llvm::HexagonMCInstrInfo::prefersSlot3(), SHUFFLE_ERROR_BRANCHES, SHUFFLE_ERROR_INVALID, SHUFFLE_ERROR_NOSLOTS, SHUFFLE_ERROR_SLOTS, SHUFFLE_ERROR_STORES, SHUFFLE_ERROR_UNKNOWN, SHUFFLE_SUCCESS, size(), llvm::HexagonII::TypeALU32, llvm::HexagonII::TypeCR, llvm::HexagonII::TypeJ, llvm::HexagonII::TypeJR, llvm::HexagonII::TypeLD, llvm::HexagonII::TypeMEMOP, llvm::HexagonII::TypeNV, llvm::HexagonII::TypeST, llvm::HexagonII::TypeSYSTEM, and llvm::HexagonII::TypeXTYPE.
Referenced by shuffle().
|
inline |
Definition at line 126 of file HexagonShuffler.h.
References llvm::SmallVectorTemplateCommon< T, typename >::end().
Referenced by check(), llvm::HexagonMCShuffler::copyTo(), and shuffle().
|
inline |
Definition at line 134 of file HexagonShuffler.h.
Referenced by llvm::HexagonMCShuffle(), llvm::HexagonMCShuffler::reshuffleTo(), and shuffle().
| void HexagonShuffler::reset | ( | ) |
Definition at line 102 of file HexagonShuffler.cpp.
References BundleFlags, llvm::SmallVectorImpl< T >::clear(), and SHUFFLE_SUCCESS.
Referenced by HexagonShuffler().
|
inline |
Definition at line 133 of file HexagonShuffler.h.
| bool HexagonShuffler::shuffle | ( | ) |
Definition at line 344 of file HexagonShuffler.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), begin(), check(), llvm::dbgs(), DEBUG, llvm::SmallVectorTemplateCommon< T, typename >::end(), end(), llvm::HexagonMCInstrInfo::getDesc(), getError(), HEXAGON_PACKET_SIZE, MCII, SHUFFLE_ERROR_INVALID, size(), and llvm::raw_ostream::write_hex().
Referenced by llvm::HexagonMCShuffler::reshuffleTo().
|
inline |
Definition at line 123 of file HexagonShuffler.h.
References llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by check(), llvm::HexagonMCShuffle(), and shuffle().
|
protected |
Definition at line 96 of file HexagonShuffler.h.
Referenced by llvm::HexagonMCShuffler::copyTo(), and reset().
|
protected |
Definition at line 97 of file HexagonShuffler.h.
|
protected |
Definition at line 98 of file HexagonShuffler.h.
1.8.6