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

#include <Utils.h>

Inheritance diagram for mlir::edsc::LoopRangeBuilder:
Inheritance graph
[legend]
Collaboration diagram for mlir::edsc::LoopRangeBuilder:
Collaboration graph
[legend]

Public Member Functions

 LoopRangeBuilder (ValueHandle *iv, ValueHandle range)
 
 LoopRangeBuilder (ValueHandle *iv, Value range)
 
 LoopRangeBuilder (ValueHandle *iv, SubViewOp::Range range)
 
 LoopRangeBuilder (const LoopRangeBuilder &)=delete
 
 LoopRangeBuilder (LoopRangeBuilder &&)=default
 
LoopRangeBuilderoperator= (const LoopRangeBuilder &)=delete
 
LoopRangeBuilderoperator= (LoopRangeBuilder &&)=default
 
ValueHandle operator() (std::function< void(void)> fun=nullptr)
 

Additional Inherited Members

- Protected Member Functions inherited from mlir::edsc::NestedBuilder
 NestedBuilder ()=default
 
 NestedBuilder (const NestedBuilder &)=delete
 
 NestedBuilder (NestedBuilder &&other)
 
NestedBuilderoperator= (const NestedBuilder &)=delete
 
NestedBuilderoperator= (NestedBuilder &&other)
 
void enter (mlir::Block *block, int prev=0)
 
void exit ()
 
 ~NestedBuilder ()
 

Detailed Description

A LoopRangeBuilder is a generic NestedBuilder for loop.for operations. More specifically it is meant to be used as a temporary object for representing any nested MLIR construct that is "related to" an mlir::Value (for now an induction variable).

Constructor & Destructor Documentation

◆ LoopRangeBuilder() [1/5]

mlir::edsc::LoopRangeBuilder::LoopRangeBuilder ( ValueHandle iv,
ValueHandle  range 
)

Constructs a new loop.for and captures the associated induction variable. A ValueHandle pointer is passed as the first argument and is the only way to capture the loop induction variable.

◆ LoopRangeBuilder() [2/5]

mlir::edsc::LoopRangeBuilder::LoopRangeBuilder ( ValueHandle iv,
Value  range 
)

◆ LoopRangeBuilder() [3/5]

mlir::edsc::LoopRangeBuilder::LoopRangeBuilder ( ValueHandle iv,
SubViewOp::Range  range 
)

◆ LoopRangeBuilder() [4/5]

mlir::edsc::LoopRangeBuilder::LoopRangeBuilder ( const LoopRangeBuilder )
delete

◆ LoopRangeBuilder() [5/5]

mlir::edsc::LoopRangeBuilder::LoopRangeBuilder ( LoopRangeBuilder &&  )
default

Member Function Documentation

◆ operator()()

ValueHandle mlir::edsc::LoopRangeBuilder::operator() ( std::function< void(void)>  fun = nullptr)

The only purpose of this operator is to serve as a sequence point so that the evaluation of fun (which build IR snippets in a scoped fashion) is scoped within a LoopRangeBuilder.

◆ operator=() [1/2]

LoopRangeBuilder& mlir::edsc::LoopRangeBuilder::operator= ( const LoopRangeBuilder )
delete

◆ operator=() [2/2]

LoopRangeBuilder& mlir::edsc::LoopRangeBuilder::operator= ( LoopRangeBuilder &&  )
default

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