LLVM 20.0.0git
|
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, std::enable_if_t< std::is_convertible< OtherTy *, Ty * >::value, void * >=nullptr) | |
MachineInstrBundleIterator () | |
MachineInstrBundleIterator (const MachineInstrBundleIterator< Ty, !IsReverse > &I) | |
Explicit conversion between forward/reverse iterators. | |
reference | operator* () const |
pointer | operator-> () const |
bool | isValid () const |
Check for null. | |
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. | |
Static Public Member Functions | |
static MachineInstrBundleIterator | getAtBundleBegin (instr_iterator MI) |
Get the bundle iterator for the given instruction's bundle. | |
MachineBasicBlock iterator that automatically skips over MIs that are inside bundles (i.e.
walk top level MIs only).
Definition at line 108 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::const_pointer = typename instr_iterator::const_pointer |
Definition at line 119 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::const_reference = typename instr_iterator::const_reference |
Definition at line 120 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::difference_type = typename instr_iterator::difference_type |
Definition at line 116 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::iterator_category = std::bidirectional_iterator_tag |
Definition at line 121 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::pointer = typename instr_iterator::pointer |
Definition at line 117 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::reference = typename instr_iterator::reference |
Definition at line 118 of file MachineInstrBundleIterator.h.
using llvm::MachineInstrBundleIterator< Ty, IsReverse >::value_type = typename instr_iterator::value_type |
Definition at line 115 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 132 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 138 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 144 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 153 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 159 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 169 of file MachineInstrBundleIterator.h.
|
inlinestatic |
Get the bundle iterator for the given instruction's bundle.
Definition at line 174 of file MachineInstrBundleIterator.h.
References MI.
Referenced by llvm::MachineBasicBlock::rbegin().
|
inline |
Definition at line 274 of file MachineInstrBundleIterator.h.
Referenced by findCFILocation(), llvm::InstructionSelect::MIIteratorMaintainer::MF_HandleRemoval(), moveInstrOut(), llvm::HexagonInstrInfo::nonDbgBundleSize(), and llvm::MachineBasicBlock::splice().
|
inline |
Definition at line 276 of file MachineInstrBundleIterator.h.
Referenced by nextIfDebug(), and 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 283 of file MachineInstrBundleIterator.h.
References llvm::MachineInstrBundleIterator< Ty, IsReverse >::getReverse().
Referenced by llvm::LoongArchInstrInfo::analyzeBranch(), llvm::RISCVInstrInfo::analyzeBranch(), llvm::CSKYInstrInfo::analyzeBranch(), areCFlagsAccessedBetweenInstrs(), FindLastAluClause(), getLiveOutRegsAt(), llvm::MachineInstrBundleIterator< Ty, IsReverse >::getReverse(), performCopyPropagation(), and llvm::MachineBasicBlock::splitAt().
|
inline |
Check for null.
Definition at line 182 of file MachineInstrBundleIterator.h.
Referenced by llvm::FastISel::removeDeadCode().
|
inline |
Definition at line 178 of file MachineInstrBundleIterator.h.
Referenced by llvm::MachineInstrBundleIterator< Ty, IsReverse >::operator->().
|
inline |
Definition at line 259 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 268 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 255 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 263 of file MachineInstrBundleIterator.h.
|
inline |
Definition at line 179 of file MachineInstrBundleIterator.h.
References llvm::MachineInstrBundleIterator< Ty, IsReverse >::operator*().
|
friend |
Definition at line 227 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 223 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 219 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 231 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 239 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 245 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 235 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 242 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 249 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 192 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 188 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 184 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 196 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 204 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 210 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 200 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 207 of file MachineInstrBundleIterator.h.
|
friend |
Definition at line 214 of file MachineInstrBundleIterator.h.