My Project
Public Types | Public Member Functions | List of all members
mlir::ValueRange Class Referencefinal

#include <OperationSupport.h>

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

Public Types

using type_iterator = ValueTypeIterator< iterator >
 Returns the types of the values within this range. More...
 
- Public Types inherited from mlir::detail::indexed_accessor_range_base< ValueRange, detail::ValueRangeOwner, Value, Value, Value >
using RangeBaseT = indexed_accessor_range_base< ValueRange, detail::ValueRangeOwner, Value, Value, Value >
 

Public Member Functions

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

Additional Inherited Members

- Protected Member Functions inherited from mlir::detail::indexed_accessor_range_base< ValueRange, detail::ValueRangeOwner, Value, Value, Value >
 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< ValueRange, detail::ValueRangeOwner, Value, Value, Value >
detail::ValueRangeOwner 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 Values. 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.

Member Typedef Documentation

◆ type_iterator

Returns the types of the values within this range.

Constructor & Destructor Documentation

◆ ValueRange() [1/8]

template<typename Arg , typename = typename std::enable_if_t< std::is_constructible<ArrayRef<Value>, Arg>::value && !std::is_convertible<Arg, Value>::value>>
mlir::ValueRange::ValueRange ( Arg &&  arg)
inline

◆ ValueRange() [2/8]

mlir::ValueRange::ValueRange ( const Value value)
inline

◆ ValueRange() [3/8]

mlir::ValueRange::ValueRange ( const std::initializer_list< Value > &  values)
inline

◆ ValueRange() [4/8]

mlir::ValueRange::ValueRange ( iterator_range< OperandRange::iterator >  values)
inline

◆ ValueRange() [5/8]

mlir::ValueRange::ValueRange ( iterator_range< ResultRange::iterator >  values)
inline

◆ ValueRange() [6/8]

ValueRange::ValueRange ( ArrayRef< Value values = llvm::None)

◆ ValueRange() [7/8]

ValueRange::ValueRange ( OperandRange  values)

◆ ValueRange() [8/8]

ValueRange::ValueRange ( ResultRange  values)

Member Function Documentation

◆ getTypes()

iterator_range<type_iterator> mlir::ValueRange::getTypes ( ) const
inline

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