9#ifndef LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_REGION_H
10#define LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_REGION_H
61 static constexpr const char *MDKind =
"sandboxvec";
62 static constexpr const char *RegionStr =
"sandboxregion";
This file implements a set that has insertion order iteration characteristics.
A vector that has set insertion semantics.
iterator end()
Get an iterator to the end of the SetVector.
bool empty() const
Determine if the SetVector is empty or not.
iterator begin()
Get an iterator to the beginning of the SetVector.
bool contains(const key_type &key) const
Check if the SetVector contains the given key.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
A range adaptor for a pair of iterators.
This class implements an extremely fast bulk output stream that can only output to a stream.
A sandboxir::User with operands, opcode and linked with previous/next instructions in an instruction ...
The main job of the Region is to point to new instructions generated by vectorization passes.
Context & getContext() const
bool contains(Instruction *I) const
Returns true if I is in the Region.
iterator_range< iterator > insts()
bool operator!=(const Region &other) const
void add(Instruction *I)
Adds I to the set.
void remove(Instruction *I)
Removes I from the set.
static SmallVector< std::unique_ptr< Region > > createRegionsFromMD(Function &F)
friend raw_ostream & operator<<(raw_ostream &OS, const Region &Rgn)
decltype(Insts.begin()) iterator
void dump(raw_ostream &OS) const
bool empty() const
Returns true if the Region has no instructions.
This provides a very simple, boring adaptor for a begin and end iterator into a range type.
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.