My Project
Public Member Functions | List of all members
mlir::edsc::intrinsics::ValueBuilder< Op > Struct Template Reference

#include <Intrinsics.h>

Inheritance diagram for mlir::edsc::intrinsics::ValueBuilder< Op >:
Inheritance graph
[legend]
Collaboration diagram for mlir::edsc::intrinsics::ValueBuilder< Op >:
Collaboration graph
[legend]

Public Member Functions

template<typename... Args>
 ValueBuilder (Args... args)
 
 ValueBuilder (ArrayRef< ValueHandle > vs)
 
template<typename... Args>
 ValueBuilder (ArrayRef< ValueHandle > vs, Args... args)
 
template<typename T , typename... Args>
 ValueBuilder (T t, ArrayRef< ValueHandle > vs, Args... args)
 
template<typename T1 , typename T2 , typename... Args>
 ValueBuilder (T1 t1, T2 t2, ArrayRef< ValueHandle > vs, Args... args)
 
template<typename... Args>
 ValueBuilder (OperationFolder *folder, Args... args)
 Folder-based. More...
 
 ValueBuilder (OperationFolder *folder, ArrayRef< ValueHandle > vs)
 
template<typename... Args>
 ValueBuilder (OperationFolder *folder, ArrayRef< ValueHandle > vs, Args... args)
 
template<typename T , typename... Args>
 ValueBuilder (OperationFolder *folder, T t, ArrayRef< ValueHandle > vs, Args... args)
 
template<typename T1 , typename T2 , typename... Args>
 ValueBuilder (OperationFolder *folder, T1 t1, T2 t2, ArrayRef< ValueHandle > vs, Args... args)
 
 ValueBuilder ()
 
- Public Member Functions inherited from mlir::edsc::ValueHandle
 ValueHandle (Type t)
 
 ValueHandle (Value v)
 
 ValueHandle (index_t cst)
 
 ValueHandle (const ValueHandle &other)=default
 ValueHandle is a value type, use the default copy constructor. More...
 
ValueHandleoperator= (const ValueHandle &other)
 
void swap (ValueHandle &other)
 Provide a swap operator. More...
 
 operator Value () const
 Implicit conversion useful for automatic conversion to Container<Value>. More...
 
 operator bool () const
 
bool hasValue () const
 
Value getValue () const
 
bool hasType () const
 
Type getType () const
 
OperationgetOperation () const
 

Additional Inherited Members

- Static Public Member Functions inherited from mlir::edsc::ValueHandle
static ValueHandle null ()
 A ValueHandle in a null state can never be captured;. More...
 
template<typename Op , typename... Args>
static ValueHandle create (Args... args)
 
template<typename Op , typename... Args>
static ValueHandle create (OperationFolder *folder, Args... args)
 
static ValueHandle createComposedAffineApply (AffineMap map, ArrayRef< Value > operands)
 Special case to build composed AffineApply operations. More...
 
static ValueHandle create (StringRef name, ArrayRef< ValueHandle > operands, ArrayRef< Type > resultTypes, ArrayRef< NamedAttribute > attributes={})
 Generic create for a named operation producing a single value. More...
 
- Protected Member Functions inherited from mlir::edsc::ValueHandle
 ValueHandle ()
 
- Protected Member Functions inherited from mlir::edsc::CapturableHandle
 CapturableHandle ()=default
 
- Protected Attributes inherited from mlir::edsc::ValueHandle
Type t
 
Value v
 

Detailed Description

template<typename Op>
struct mlir::edsc::intrinsics::ValueBuilder< Op >

Helper variadic abstraction to allow extending to any MLIR op without boilerplate or Tablegen. Arguably a builder is not a ValueHandle but in practice it is only used as an alias to a notional ValueHandle<Op>. Implementing it as a subclass allows it to compose all the way to Value. Without subclassing, implicit conversion to Value would fail when composing in patterns such as: select(a, b, select(c, d, e)).

Constructor & Destructor Documentation

◆ ValueBuilder() [1/11]

template<typename Op >
template<typename... Args>
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( Args...  args)
inline

◆ ValueBuilder() [2/11]

template<typename Op >
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( ArrayRef< ValueHandle vs)
inline

◆ ValueBuilder() [3/11]

template<typename Op >
template<typename... Args>
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( ArrayRef< ValueHandle vs,
Args...  args 
)
inline

◆ ValueBuilder() [4/11]

template<typename Op >
template<typename T , typename... Args>
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( t,
ArrayRef< ValueHandle vs,
Args...  args 
)
inline

◆ ValueBuilder() [5/11]

template<typename Op >
template<typename T1 , typename T2 , typename... Args>
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( T1  t1,
T2  t2,
ArrayRef< ValueHandle vs,
Args...  args 
)
inline

◆ ValueBuilder() [6/11]

template<typename Op >
template<typename... Args>
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( OperationFolder folder,
Args...  args 
)
inline

Folder-based.

◆ ValueBuilder() [7/11]

template<typename Op >
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( OperationFolder folder,
ArrayRef< ValueHandle vs 
)
inline

◆ ValueBuilder() [8/11]

template<typename Op >
template<typename... Args>
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( OperationFolder folder,
ArrayRef< ValueHandle vs,
Args...  args 
)
inline

◆ ValueBuilder() [9/11]

template<typename Op >
template<typename T , typename... Args>
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( OperationFolder folder,
t,
ArrayRef< ValueHandle vs,
Args...  args 
)
inline

◆ ValueBuilder() [10/11]

template<typename Op >
template<typename T1 , typename T2 , typename... Args>
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( OperationFolder folder,
T1  t1,
T2  t2,
ArrayRef< ValueHandle vs,
Args...  args 
)
inline

◆ ValueBuilder() [11/11]

template<typename Op >
mlir::edsc::intrinsics::ValueBuilder< Op >::ValueBuilder ( )
inline

The documentation for this struct was generated from the following file: