class MachineInstrBundleIterator
Declaration
template <typename Ty, bool IsReverse = false>
class MachineInstrBundleIterator { /* full declaration omitted */ };
Description
MachineBasicBlock iterator that automatically skips over MIs that are inside bundles (i.e. walk top level MIs only).
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:108
Templates
- Ty
- bool IsReverse = false
Method Overview
- public MachineInstrBundleIterator<Ty, IsReverse>(llvm::MachineInstrBundleIterator::instr_iterator MI)
- public MachineInstrBundleIterator<Ty, IsReverse>(llvm::MachineInstrBundleIterator::reference MI)
- public MachineInstrBundleIterator<Ty, IsReverse>(llvm::MachineInstrBundleIterator::pointer MI)
- public MachineInstrBundleIterator<Ty, IsReverse>()
- public MachineInstrBundleIterator<Ty, IsReverse>(const MachineInstrBundleIterator<Ty, !IsReverse> & I)
- public template <class OtherTy> MachineInstrBundleIterator<Ty, IsReverse>(const MachineInstrBundleIterator<OtherTy, IsReverse> & I, typename std::enable_if<std::is_convertible<OtherTy *, Ty *>::value, void *>::type = nullptr)
- public static MachineInstrBundleIterator<Ty, IsReverse> getAtBundleBegin(llvm::MachineInstrBundleIterator::instr_iterator MI)
- public llvm::MachineInstrBundleIterator::instr_iterator getInstrIterator() const
- public llvm::MachineInstrBundleIterator::nonconst_iterator getNonConstIterator() const
- public llvm::MachineInstrBundleIterator::reverse_iterator getReverse() const
- public bool isValid() const
Methods
¶MachineInstrBundleIterator<Ty, IsReverse>(
llvm::MachineInstrBundleIterator::
instr_iterator MI)
MachineInstrBundleIterator<Ty, IsReverse>(
llvm::MachineInstrBundleIterator::
instr_iterator MI)
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:132
Parameters
- llvm::MachineInstrBundleIterator::instr_iterator MI
¶MachineInstrBundleIterator<Ty, IsReverse>(
llvm::MachineInstrBundleIterator::reference
MI)
MachineInstrBundleIterator<Ty, IsReverse>(
llvm::MachineInstrBundleIterator::reference
MI)
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:138
Parameters
- llvm::MachineInstrBundleIterator::reference MI
¶MachineInstrBundleIterator<Ty, IsReverse>(
llvm::MachineInstrBundleIterator::pointer MI)
MachineInstrBundleIterator<Ty, IsReverse>(
llvm::MachineInstrBundleIterator::pointer MI)
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:144
Parameters
- llvm::MachineInstrBundleIterator::pointer MI
¶MachineInstrBundleIterator<Ty, IsReverse>()
MachineInstrBundleIterator<Ty, IsReverse>()
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:159
¶MachineInstrBundleIterator<Ty, IsReverse>(
const MachineInstrBundleIterator<Ty,
!IsReverse>&
I)
MachineInstrBundleIterator<Ty, IsReverse>(
const MachineInstrBundleIterator<Ty,
!IsReverse>&
I)
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:169
Parameters
- const MachineInstrBundleIterator<Ty, !IsReverse>& I
¶template <class OtherTy>
MachineInstrBundleIterator<Ty, IsReverse>(
const MachineInstrBundleIterator<OtherTy,
IsReverse>&
I,
typename std::enable_if<
std::is_convertible<OtherTy*, Ty*>::value,
void*>::type = nullptr)
template <class OtherTy>
MachineInstrBundleIterator<Ty, IsReverse>(
const MachineInstrBundleIterator<OtherTy,
IsReverse>&
I,
typename std::enable_if<
std::is_convertible<OtherTy*, Ty*>::value,
void*>::type = nullptr)
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:153
Templates
- OtherTy
Parameters
- const MachineInstrBundleIterator<OtherTy, IsReverse>& I
- typename std::enable_if< std::is_convertible<OtherTy*, Ty*>::value, void*>::type = nullptr
¶static MachineInstrBundleIterator<Ty, IsReverse>
getAtBundleBegin(
llvm::MachineInstrBundleIterator::
instr_iterator MI)
static MachineInstrBundleIterator<Ty, IsReverse>
getAtBundleBegin(
llvm::MachineInstrBundleIterator::
instr_iterator MI)
Description
Get the bundle iterator for the given instruction's bundle.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:174
Parameters
- llvm::MachineInstrBundleIterator::instr_iterator MI
¶llvm::MachineInstrBundleIterator::instr_iterator
getInstrIterator() const
llvm::MachineInstrBundleIterator::instr_iterator
getInstrIterator() const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:274
¶llvm::MachineInstrBundleIterator::
nonconst_iterator
getNonConstIterator() const
llvm::MachineInstrBundleIterator::
nonconst_iterator
getNonConstIterator() const
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:276
¶llvm::MachineInstrBundleIterator::reverse_iterator
getReverse() const
llvm::MachineInstrBundleIterator::reverse_iterator
getReverse() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:283
¶bool isValid() const
bool isValid() const
Description
Check for null.
Declared at: llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h:182