My Project
Public Member Functions | List of all members
mlir::RegionRange Class Reference

#include <Region.h>

Inheritance diagram for mlir::RegionRange:
Inheritance graph
[legend]
Collaboration diagram for mlir::RegionRange:
Collaboration graph
[legend]

Public Member Functions

 RegionRange (MutableArrayRef< Region > regions=llvm::None)
 
template<typename Arg , typename = typename std::enable_if_t<std::is_constructible< ArrayRef<std::unique_ptr<Region>>, Arg>::value>>
 RegionRange (Arg &&arg)
 
 RegionRange (ArrayRef< std::unique_ptr< Region >> regions)
 
- Public Member Functions inherited from mlir::detail::indexed_accessor_range_base< RegionRange, PointerUnion< Region *, const std::unique_ptr< Region > *>, Region *, Region *, Region *>
 indexed_accessor_range_base (iterator begin, iterator end)
 
 indexed_accessor_range_base (const iterator_range< iterator > &range)
 
 indexed_accessor_range_base (PointerUnion< Region *, const std::unique_ptr< Region > * > base, ptrdiff_t count)
 
iterator begin () const
 
iterator end () const
 
Regionoperator[] (unsigned index) const
 
size_t size () const
 Return the size of this range. More...
 
bool empty () const
 Return if the range is empty. More...
 
RegionRange slice (size_t n, size_t m) const
 Drop the first N elements, and keep M elements. More...
 
RegionRange drop_front (size_t n=1) const
 Drop the first n elements. More...
 
RegionRange drop_back (size_t n=1) const
 Drop the last n elements. More...
 
RegionRange take_front (size_t n=1) const
 Take the first n elements. More...
 
 operator SmallVector< SVT, N > () const
 

Additional Inherited Members

- Public Types inherited from mlir::detail::indexed_accessor_range_base< RegionRange, PointerUnion< Region *, const std::unique_ptr< Region > *>, Region *, Region *, Region *>
using RangeBaseT = indexed_accessor_range_base< RegionRange, PointerUnion< Region *, const std::unique_ptr< Region > * >, Region *, Region *, Region * >
 
- Protected Member Functions inherited from mlir::detail::indexed_accessor_range_base< RegionRange, PointerUnion< Region *, const std::unique_ptr< Region > *>, Region *, Region *, Region *>
 indexed_accessor_range_base (const indexed_accessor_range_base &)=default
 
 indexed_accessor_range_base (indexed_accessor_range_base &&)=default
 
indexed_accessor_range_baseoperator= (const indexed_accessor_range_base &)=default
 
- Protected Attributes inherited from mlir::detail::indexed_accessor_range_base< RegionRange, PointerUnion< Region *, const std::unique_ptr< Region > *>, Region *, Region *, Region *>
PointerUnion< Region *, const std::unique_ptr< Region > * > base
 The base that owns the provided range of values. More...
 
ptrdiff_t count
 The size from the owning range. More...
 

Detailed Description

This class provides an abstraction over the different types of ranges over Regions. In many cases, this prevents the need to explicitly materialize a SmallVector/std::vector. This class should be used in places that are not suitable for a more derived type (e.g. ArrayRef) or a template range parameter.

Constructor & Destructor Documentation

◆ RegionRange() [1/3]

RegionRange::RegionRange ( MutableArrayRef< Region regions = llvm::None)

◆ RegionRange() [2/3]

template<typename Arg , typename = typename std::enable_if_t<std::is_constructible< ArrayRef<std::unique_ptr<Region>>, Arg>::value>>
mlir::RegionRange::RegionRange ( Arg &&  arg)
inline

◆ RegionRange() [3/3]

RegionRange::RegionRange ( ArrayRef< std::unique_ptr< Region >>  regions)

The documentation for this class was generated from the following files: