FreeTensor
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Member Functions | List of all members
freetensor::StructuralFeature Class Reference

#include <structural_feature.h>

Inheritance diagram for freetensor::StructuralFeature:
Inheritance graph
[legend]
Collaboration diagram for freetensor::StructuralFeature:
Collaboration graph
[legend]

Public Member Functions

const std::unordered_map< ID, NodeFeature > & features () const
 
- Public Member Functions inherited from freetensor::CompTransientBounds< SymbolTable< Visitor > >
TransientBound transient (const Expr &op) const override
 
const std::vector< Expr > & conds () const override
 
- Public Member Functions inherited from freetensor::SymbolTable< Visitor >
 SymbolTable (T &&...args)
 
const std::unordered_set< std::string > & names () const override
 
const std::unordered_map< std::string, VarDef > & defs () const override
 
const std::unordered_map< std::string, For > & loops () const override
 
bool hasDef (const std::string &name) const override
 
const VarDefdef (const std::string &name) const override
 
Ref< Bufferbuffer (const std::string &name) const override
 
bool hasLoop (const std::string &name) const override
 
const Forloop (const std::string &name) const override
 
void pushDef (const VarDef &op) override
 
void popDef (const VarDef &op) override
 
void pushFor (const For &op) override
 
void popFor (const For &op) override
 
const SymbolTableDatasymbolTableSnapshot () const
 
- Public Member Functions inherited from freetensor::Visitor
virtual ~Visitor ()
 
virtual void operator() (const AST &op) final
 
virtual const std::unordered_set< std::string > & names () const =0
 
virtual const std::unordered_map< std::string, VarDef > & defs () const =0
 
virtual const std::unordered_map< std::string, For > & loops () const =0
 
virtual bool hasDef (const std::string &name) const =0
 
virtual const VarDefdef (const std::string &name) const =0
 
virtual Ref< Bufferbuffer (const std::string &name) const =0
 
virtual bool hasLoop (const std::string &name) const =0
 
virtual const Forloop (const std::string &name) const =0
 
virtual void pushDef (const VarDef &op)=0
 
virtual void popDef (const VarDef &op)=0
 
virtual void pushFor (const For &op)=0
 
virtual void popFor (const For &op)=0
 
virtual TransientBound transient (const Expr &op) const =0
 
virtual const std::vector< Expr > & conds () const =0
 

Protected Member Functions

void visitStmt (const Stmt &op) override
 
void visitExpr (const Expr &op) override
 
void visit (const Load &op) override
 
void visit (const Store &op) override
 
void visit (const ReduceTo &op) override
 
void visit (const Cast &op) override
 
void visit (const IfExpr &op) override
 
void visit (const StmtSeq &op) override
 
void visit (const If &op) override
 
void visit (const Assert &op) override
 
void visit (const For &op) override
 
void visit (const VarDef &op) override
 
- Protected Member Functions inherited from freetensor::CompTransientBounds< SymbolTable< Visitor > >
BaseClass::StmtRetType visit (const For &op) override
 
BaseClass::StmtRetType visit (const If &op) override
 
BaseClass::StmtRetType visit (const Assert &op) override
 
BaseClass::StmtRetType visit (const Assume &op) override
 
- Protected Member Functions inherited from freetensor::SymbolTable< Visitor >
BaseClass::StmtRetType visit (const VarDef &op) override
 
BaseClass::StmtRetType visit (const For &op) override
 
- Protected Member Functions inherited from freetensor::Visitor
virtual void visitExpr (const Expr &op)
 
virtual void visitStmt (const Stmt &op)
 
virtual void visit (const Any &op)
 
virtual void visit (const AnyExpr &op)
 
virtual void visit (const Func &op)
 
virtual void visit (const StmtSeq &op)
 
virtual void visit (const VarDef &op)
 
virtual void visit (const Var &op)
 
virtual void visit (const Store &op)
 
virtual void visit (const Alloc &op)
 
virtual void visit (const Free &op)
 
virtual void visit (const Load &op)
 
virtual void visit (const ReduceTo &op)
 
virtual void visit (const IntConst &op)
 
virtual void visit (const FloatConst &op)
 
virtual void visit (const BoolConst &op)
 
virtual void visit (const Add &op)
 
virtual void visit (const Sub &op)
 
virtual void visit (const Mul &op)
 
virtual void visit (const RealDiv &op)
 
virtual void visit (const FloorDiv &op)
 
virtual void visit (const CeilDiv &op)
 
virtual void visit (const RoundTowards0Div &op)
 
virtual void visit (const Mod &op)
 
virtual void visit (const Remainder &op)
 
virtual void visit (const Min &op)
 
virtual void visit (const Max &op)
 
virtual void visit (const LT &op)
 
virtual void visit (const LE &op)
 
virtual void visit (const GT &op)
 
virtual void visit (const GE &op)
 
virtual void visit (const EQ &op)
 
virtual void visit (const NE &op)
 
virtual void visit (const LAnd &op)
 
virtual void visit (const LOr &op)
 
virtual void visit (const LNot &op)
 
virtual void visit (const Sqrt &op)
 
virtual void visit (const Exp &op)
 
virtual void visit (const Ln &op)
 
virtual void visit (const Square &op)
 
virtual void visit (const Sigmoid &op)
 
virtual void visit (const Sin &op)
 
virtual void visit (const Cos &op)
 
virtual void visit (const Tan &op)
 
virtual void visit (const Tanh &op)
 
virtual void visit (const Abs &op)
 
virtual void visit (const Floor &op)
 
virtual void visit (const Ceil &op)
 
virtual void visit (const Unbound &op)
 
virtual void visit (const For &op)
 
virtual void visit (const If &op)
 
virtual void visit (const Assert &op)
 
virtual void visit (const Assume &op)
 
virtual void visit (const IfExpr &op)
 
virtual void visit (const Cast &op)
 
virtual void visit (const Intrinsic &op)
 
virtual void visit (const Eval &op)
 
virtual void visit (const MatMul &op)
 
virtual void visit (const MarkVersion &op)
 
virtual void visit (const LoadAtVersion &op)
 

Additional Inherited Members

- Public Types inherited from freetensor::Visitor
typedef void ExprRetType
 
typedef void StmtRetType
 

Detailed Description

Analyze program features for each nodes

Program features are used by machine learning models to predict program performance. This pass outputs an structual feature, which can be converted to a plain feature by a following pass

This Visitor generate a NodeFeature for each node, depicting the performance feature of running the subtree rooted at the node

Member Function Documentation

◆ features()

const std::unordered_map< ID, NodeFeature > & freetensor::StructuralFeature::features ( ) const
inline

◆ visit() [1/10]

void freetensor::StructuralFeature::visit ( const Assert op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [2/10]

void freetensor::StructuralFeature::visit ( const Cast op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [3/10]

void freetensor::StructuralFeature::visit ( const For op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [4/10]

void freetensor::StructuralFeature::visit ( const If op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [5/10]

void freetensor::StructuralFeature::visit ( const IfExpr op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [6/10]

void freetensor::StructuralFeature::visit ( const Load op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [7/10]

void freetensor::StructuralFeature::visit ( const ReduceTo op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [8/10]

void freetensor::StructuralFeature::visit ( const StmtSeq op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [9/10]

void freetensor::StructuralFeature::visit ( const Store op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visit() [10/10]

void freetensor::StructuralFeature::visit ( const VarDef op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visitExpr()

void freetensor::StructuralFeature::visitExpr ( const Expr op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.

◆ visitStmt()

void freetensor::StructuralFeature::visitStmt ( const Stmt op)
overrideprotectedvirtual

Reimplemented from freetensor::Visitor.


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