LLVM: llvm::MachineInstrBundleIterator< Ty, IsReverse > Class Template Reference (original) (raw)
MachineBasicBlock iterator that automatically skips over MIs that are inside bundles (i.e. More...
#include "[llvm/CodeGen/MachineInstrBundleIterator.h](MachineInstrBundleIterator%5F8h%5Fsource.html)"
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 | |
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. | |
template<typename Ty, bool IsReverse = false>
class llvm::MachineInstrBundleIterator< Ty, IsReverse >
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.
◆ const_pointer
template<typename Ty , bool IsReverse = false>
◆ const_reference
template<typename Ty , bool IsReverse = false>
◆ difference_type
template<typename Ty , bool IsReverse = false>
◆ iterator_category
template<typename Ty , bool IsReverse = false>
◆ pointer
template<typename Ty , bool IsReverse = false>
template<typename Ty , bool IsReverse = false>
◆ value_type
template<typename Ty , bool IsReverse = false>
◆ MachineInstrBundleIterator() [1/6]
template<typename Ty , bool IsReverse = false>
◆ MachineInstrBundleIterator() [2/6]
template<typename Ty , bool IsReverse = false>
◆ MachineInstrBundleIterator() [3/6]
template<typename Ty , bool IsReverse = false>
◆ MachineInstrBundleIterator() [4/6]
template<typename Ty , bool IsReverse = false>
template
◆ MachineInstrBundleIterator() [5/6]
template<typename Ty , bool IsReverse = false>
◆ MachineInstrBundleIterator() [6/6]
template<typename Ty , bool IsReverse = false>
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.
◆ getAtBundleBegin()
template<typename Ty , bool IsReverse = false>
◆ getInstrIterator()
template<typename Ty , bool IsReverse = false>
◆ getNonConstIterator()
template<typename Ty , bool IsReverse = false>
◆ getReverse()
template<typename Ty , bool IsReverse = false>
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().
◆ isValid()
template<typename Ty , bool IsReverse = false>
◆ operator*()
template<typename Ty , bool IsReverse = false>
◆ operator++() [1/2]
template<typename Ty , bool IsReverse = false>
◆ operator++() [2/2]
template<typename Ty , bool IsReverse = false>
◆ operator--() [1/2]
template<typename Ty , bool IsReverse = false>
◆ operator--() [2/2]
template<typename Ty , bool IsReverse = false>
◆ operator->()
template<typename Ty , bool IsReverse = false>
◆ operator!= [1/9]
template<typename Ty , bool IsReverse = false>
◆ operator!= [2/9]
template<typename Ty , bool IsReverse = false>
◆ operator!= [3/9]
template<typename Ty , bool IsReverse = false>
◆ operator!= [4/9]
template<typename Ty , bool IsReverse = false>
◆ operator!= [5/9]
template<typename Ty , bool IsReverse = false>
◆ operator!= [6/9]
template<typename Ty , bool IsReverse = false>
◆ operator!= [7/9]
template<typename Ty , bool IsReverse = false>
◆ operator!= [8/9]
template<typename Ty , bool IsReverse = false>
◆ operator!= [9/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [1/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [2/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [3/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [4/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [5/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [6/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [7/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [8/9]
template<typename Ty , bool IsReverse = false>
◆ operator== [9/9]
template<typename Ty , bool IsReverse = false>
The documentation for this class was generated from the following file:
- include/llvm/CodeGen/MachineInstrBundleIterator.h