LLVM 20.0.0git
|
#include "llvm/Transforms/Vectorize/SandboxVectorizer/Interval.h"
Public Types | |
using | iterator = IntervalIterator< T, Interval > |
Public Member Functions | |
Interval () | |
Interval (T *Top, T *Bottom) | |
Interval (ArrayRef< T * > Elems) | |
bool | empty () const |
bool | contains (T *I) const |
T * | top () const |
T * | bottom () const |
iterator | begin () |
iterator | end () |
iterator | begin () const |
iterator | end () const |
bool | operator== (const Interval &Other) const |
Equality. | |
bool | operator!= (const Interval &Other) const |
Inequality. | |
bool | comesBefore (const Interval &Other) const |
\Returns true if this interval comes before Other in program order. | |
bool | disjoint (const Interval &Other) const |
\Returns true if this and Other have nothing in common. | |
Interval | intersection (const Interval &Other) const |
\Returns the intersection between this and Other . | |
SmallVector< Interval, 2 > | operator- (const Interval &Other) |
Difference operation. This returns up to two intervals. | |
Interval | getSingleDiff (const Interval &Other) |
\Returns the interval difference this - Other . | |
Interval | getUnionInterval (const Interval &Other) |
\Returns a single interval that spans across both this and Other . | |
template<typename HelperT = T> | |
std::enable_if_t< std::is_same< HelperT, Instruction >::value, void > | notifyMoveInstr (HelperT *I, decltype(I->getIterator()) BeforeIt) |
Update the interval when I is about to be moved before Before . | |
void | print (raw_ostream &OS) const |
LLVM_DUMP_METHOD void | dump () const |
Definition at line 78 of file Interval.h.
using llvm::sandboxir::Interval< T >::iterator = IntervalIterator<T, Interval> |
Definition at line 114 of file Interval.h.
|
inline |
Definition at line 83 of file Interval.h.
Referenced by llvm::sandboxir::Interval< T >::intersection(), and llvm::sandboxir::Interval< T >::operator-().
|
inline |
Definition at line 84 of file Interval.h.
References assert().
|
inline |
Definition at line 88 of file Interval.h.
References assert(), llvm::drop_begin(), llvm::ArrayRef< T >::empty(), and I.
|
inline |
Definition at line 115 of file Interval.h.
|
inline |
Definition at line 119 of file Interval.h.
|
inline |
Definition at line 112 of file Interval.h.
Referenced by llvm::sandboxir::Interval< T >::comesBefore(), llvm::sandboxir::MemDGNodeIntervalBuilder::getBotMemDGNode(), llvm::sandboxir::MemDGNodeIntervalBuilder::getTopMemDGNode(), and llvm::sandboxir::Interval< T >::print().
|
inline |
\Returns true if this interval comes before Other
in program order.
This expects disjoint intervals.
Definition at line 134 of file Interval.h.
References assert(), llvm::sandboxir::Interval< T >::bottom(), llvm::sandboxir::Interval< T >::disjoint(), and llvm::Other.
|
inline |
Definition at line 105 of file Interval.h.
References llvm::sandboxir::Interval< T >::empty(), and I.
Referenced by llvm::sandboxir::Interval< T >::notifyMoveInstr().
|
inline |
\Returns true if this and Other
have nothing in common.
Definition at line 139 of file Interval.h.
References llvm::sandboxir::Interval< T >::empty(), and llvm::Other.
Referenced by llvm::sandboxir::Interval< T >::comesBefore(), and llvm::sandboxir::Interval< T >::operator-().
void llvm::sandboxir::Interval< T >::dump |
Definition at line 20 of file Interval.cpp.
References llvm::dbgs(), and llvm::print().
|
inline |
Definition at line 99 of file Interval.h.
References assert().
Referenced by llvm::sandboxir::Interval< T >::contains(), llvm::sandboxir::Interval< T >::disjoint(), llvm::sandboxir::Interval< T >::getUnionInterval(), and llvm::sandboxir::Interval< T >::intersection().
|
inline |
Definition at line 116 of file Interval.h.
|
inline |
Definition at line 122 of file Interval.h.
|
inline |
\Returns the interval difference this - Other
.
This will crash in Debug if the result is not a single interval.
Definition at line 192 of file Interval.h.
References assert(), and llvm::Other.
|
inline |
\Returns a single interval that spans across both this and Other
.
Definition at line 202 of file Interval.h.
References llvm::sandboxir::Interval< T >::empty(), and llvm::Other.
|
inline |
\Returns the intersection between this and Other
.
Definition at line 151 of file Interval.h.
References llvm::sandboxir::Interval< T >::empty(), llvm::sandboxir::Interval< T >::Interval(), and llvm::Other.
Referenced by llvm::sandboxir::Interval< T >::operator-().
|
inline |
Update the interval when I
is about to be moved before Before
.
Definition at line 216 of file Interval.h.
References assert(), llvm::sandboxir::Interval< T >::contains(), and I.
|
inline |
Difference operation. This returns up to two intervals.
Definition at line 173 of file Interval.h.
References llvm::sandboxir::Interval< T >::disjoint(), llvm::sandboxir::Interval< T >::intersection(), llvm::sandboxir::Interval< T >::Interval(), and llvm::Other.
|
inline |
Definition at line 235 of file Interval.h.
References llvm::sandboxir::Interval< T >::bottom(), OS, and llvm::sandboxir::Interval< T >::top().
|
inline |
Definition at line 111 of file Interval.h.
Referenced by llvm::sandboxir::MemDGNodeIntervalBuilder::getBotMemDGNode(), llvm::sandboxir::MemDGNodeIntervalBuilder::getTopMemDGNode(), and llvm::sandboxir::Interval< T >::print().