LLVM
8.0.1
|
MachineBasicBlock iterator that automatically skips over MIs that are inside bundles (i.e. More...
#include "llvm/CodeGen/MachineInstrBundleIterator.h"
Public Types | |
using | value_type = typename instr_iterator::value_type |
using | difference_type = typename instr_iterator::difference_type |
using | pointer = typename instr_iterator::pointer |
using | reference = typename instr_iterator::reference |
using | const_pointer = typename instr_iterator::const_pointer |
using | const_reference = typename instr_iterator::const_reference |
using | iterator_category = std::bidirectional_iterator_tag |
Public Member Functions | |
MachineInstrBundleIterator (instr_iterator MI) | |
MachineInstrBundleIterator (reference MI) | |
MachineInstrBundleIterator (pointer MI) | |
template<class OtherTy > | |
MachineInstrBundleIterator (const MachineInstrBundleIterator< OtherTy, IsReverse > &I, typename std::enable_if< std::is_convertible< OtherTy *, Ty *>::value, void *>::type=nullptr) | |
MachineInstrBundleIterator () | |
MachineInstrBundleIterator (const MachineInstrBundleIterator< Ty, !IsReverse > &I) | |
Explicit conversion between forward/reverse iterators. More... | |
reference | operator* () const |
pointer | operator-> () const |
bool | isValid () const |
Check for null. More... | |
MachineInstrBundleIterator & | operator-- () |
MachineInstrBundleIterator & | operator++ () |
MachineInstrBundleIterator | operator-- (int) |
MachineInstrBundleIterator | operator++ (int) |
instr_iterator | getInstrIterator () const |
nonconst_iterator | getNonConstIterator () const |
reverse_iterator | getReverse () const |
Get a reverse iterator to the same node. More... | |
Static Public Member Functions | |
static MachineInstrBundleIterator | getAtBundleBegin (instr_iterator MI) |
Get the bundle iterator for the given instruction's bundle. More... | |
MachineBasicBlock iterator that automatically skips over MIs that are inside bundles (i.e.
walk top level MIs only).
Definition at line 109 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::const_pointer = typename instr_iterator::const_pointer |
Definition at line 120 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::const_reference = typename instr_iterator::const_reference |
Definition at line 121 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::difference_type = typename instr_iterator::difference_type |
Definition at line 117 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::iterator_category = std::bidirectional_iterator_tag |
Definition at line 122 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::pointer = typename instr_iterator::pointer |
Definition at line 118 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::reference = typename instr_iterator::reference |
Definition at line 119 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::value_type = typename instr_iterator::value_type |
Definition at line 116 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 133 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 139 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 145 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 154 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 160 of file MachineInstrBundleIterator.h.
|
inlineexplicit |
Explicit conversion between forward/reverse iterators.
Translate between forward and reverse iterators without changing range boundaries. The resulting iterator will dereference (and have a handle) to the previous node, which is somewhat unexpected; but converting the two endpoints in a range will give the same range in reverse.
This matches std::reverse_iterator conversions.
Definition at line 170 of file MachineInstrBundleIterator.h.
|
inlinestatic |
Get the bundle iterator for the given instruction's bundle.
Definition at line 175 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 275 of file MachineInstrBundleIterator.h.
Referenced by llvm::HexagonPacketizerList::endPacket(), llvm::VLIWPacketizerList::endPacket(), llvm::MachineBasicBlock::erase(), llvm::HexagonInstrInfo::expandVGatherPseudo(), llvm::MachineBasicBlock::findDebugLoc(), llvm::MachineBasicBlock::findPrevDebugLoc(), getBundledDefMI(), llvm::MachineBasicBlock::insert(), llvm::MachineBasicBlock::insertAfter(), isCopy(), moveInstrOut(), llvm::HexagonInstrInfo::nonDbgBundleSize(), and llvm::MachineBasicBlock::splice().
|
inline |
Definition at line 277 of file MachineInstrBundleIterator.h.
Referenced by priorNonDebug().
|
inline |
Get a reverse iterator to the same node.
Gives a reverse iterator that will dereference (and have a handle) to the same node. Converting the endpoint iterators in a range will give a different range; for range operations, use the explicit conversions.
Definition at line 284 of file MachineInstrBundleIterator.h.
Referenced by llvm::RISCVInstrInfo::analyzeBranch(), areCFlagsAccessedBetweenInstrs(), FindLastAluClause(), getNextBlock(), llvm::MachineInstrBundleIterator< const MachineInstr >::getReverse(), MoveAndTeeForMultiUse(), and llvm::X86InstrInfo::optimizeCompareInstr().
|
inline |
Check for null.
Definition at line 183 of file MachineInstrBundleIterator.h.
Referenced by llvm::FastISel::removeDeadCode().
|
inline |
Definition at line 179 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 260 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 269 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 256 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 264 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 180 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 220 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 224 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 228 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 232 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 236 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 240 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 243 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 246 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 250 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 185 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 189 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 193 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 197 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 201 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 205 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 208 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 211 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 215 of file MachineInstrBundleIterator.h.