tvm
Public Member Functions | List of all members
tvm::SIBuilder Class Reference

Source Information Builder, SIBuilder provides helper APIs for filling spans, particularly useful for one-to-many, many-to-one and many-to-many IR transformations. More...

#include <si_builder.h>

Collaboration diagram for tvm::SIBuilder:

Public Member Functions

 SIBuilder (const Span &span=Span())
 Create SIBuilder from a given span. More...
 
 SIBuilder (const Array< Span > &spans=Array< Span >())
 Create SIBuilder from a given span sequence. More...
 
 SIBuilder (const std::initializer_list< Span > &init)
 
template<typename T , typename = std::enable_if_t<std::is_base_of<BaseExpr, T>::value>>
 SIBuilder (const T &entry, const tvm::Array< T > &inputs={})
 Create SIBuilder via a subgraph, Will construct span based on the exprs in the subgraph. Including the inputs exprs. More...
 
 SIBuilder (const tir::Stmt &entry, const tvm::Array< PrimExpr > &inputs={})
 
 SIBuilder (const tir::Stmt &entry, const tvm::Array< tir::Stmt > &inputs={})
 
 ~SIBuilder ()
 
 SIBuilder (const SIBuilder &)=delete
 
SIBuilderoperator= (const SIBuilder &)=delete
 
Span Build () const
 build a span of source information, which is based on the given span or subgraph. More...
 
template<typename T , typename = std::enable_if_t<std::is_base_of<BaseExpr, T>::value>>
void RecursivelyFillSpan (const T &entry, const std::unordered_set< T, ObjectPtrHash, ObjectPtrEqual > &inputs) const
 Recursively fill all span of exprs in subgraph from entry until inputs. More...
 
void RecursivelyFillSpan (const tir::Stmt &entry, const std::unordered_set< PrimExpr, ObjectPtrHash, ObjectPtrEqual > &inputs) const
 
void RecursivelyFillSpan (const tir::Stmt &entry, const std::unordered_set< tir::Stmt, ObjectPtrHash, ObjectPtrEqual > &inputs) const
 

Detailed Description

Source Information Builder, SIBuilder provides helper APIs for filling spans, particularly useful for one-to-many, many-to-one and many-to-many IR transformations.

Constructor & Destructor Documentation

◆ SIBuilder() [1/7]

tvm::SIBuilder::SIBuilder ( const Span span = Span())
explicit

Create SIBuilder from a given span.

◆ SIBuilder() [2/7]

tvm::SIBuilder::SIBuilder ( const Array< Span > &  spans = ArraySpan >())
explicit

Create SIBuilder from a given span sequence.

◆ SIBuilder() [3/7]

tvm::SIBuilder::SIBuilder ( const std::initializer_list< Span > &  init)
explicit

◆ SIBuilder() [4/7]

template<typename T , typename = std::enable_if_t<std::is_base_of<BaseExpr, T>::value>>
tvm::SIBuilder::SIBuilder ( const T &  entry,
const tvm::Array< T > &  inputs = {} 
)
explicit

Create SIBuilder via a subgraph, Will construct span based on the exprs in the subgraph. Including the inputs exprs.

Parameters
entryEntry expr for subgraph
inputsEnd exprs for subgraph

◆ SIBuilder() [5/7]

tvm::SIBuilder::SIBuilder ( const tir::Stmt entry,
const tvm::Array< PrimExpr > &  inputs = {} 
)
explicit

◆ SIBuilder() [6/7]

tvm::SIBuilder::SIBuilder ( const tir::Stmt entry,
const tvm::Array< tir::Stmt > &  inputs = {} 
)
explicit

◆ ~SIBuilder()

tvm::SIBuilder::~SIBuilder ( )

◆ SIBuilder() [7/7]

tvm::SIBuilder::SIBuilder ( const SIBuilder )
delete

Member Function Documentation

◆ Build()

Span tvm::SIBuilder::Build ( ) const

build a span of source information, which is based on the given span or subgraph.

Returns
the built span

◆ operator=()

SIBuilder& tvm::SIBuilder::operator= ( const SIBuilder )
delete

◆ RecursivelyFillSpan() [1/3]

template<typename T , typename = std::enable_if_t<std::is_base_of<BaseExpr, T>::value>>
void tvm::SIBuilder::RecursivelyFillSpan ( const T &  entry,
const std::unordered_set< T, ObjectPtrHash, ObjectPtrEqual > &  inputs 
) const

Recursively fill all span of exprs in subgraph from entry until inputs.

Parameters
entryEntry expr for subgraph.
inputsEnd exprs for subgraph, will not be filled with new span.

◆ RecursivelyFillSpan() [2/3]

void tvm::SIBuilder::RecursivelyFillSpan ( const tir::Stmt entry,
const std::unordered_set< PrimExpr, ObjectPtrHash, ObjectPtrEqual > &  inputs 
) const

◆ RecursivelyFillSpan() [3/3]

void tvm::SIBuilder::RecursivelyFillSpan ( const tir::Stmt entry,
const std::unordered_set< tir::Stmt, ObjectPtrHash, ObjectPtrEqual > &  inputs 
) const

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