tvm
Classes | Namespaces | Functions
analysis.h File Reference

Analysis utilities and passes for TIR. More...

#include <tvm/ir/module.h>
#include <tvm/ir/transform.h>
#include <tvm/s_tir/analysis.h>
#include <tvm/target/target.h>
#include <tvm/tirx/expr.h>
#include <tvm/tirx/function.h>
#include <tvm/tirx/op_attr_types.h>
#include <tvm/tirx/stmt.h>
#include <optional>
#include <string>
Include dependency graph for analysis.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tvm::tirx::ExprDeepEqual
 Compare two expressions recursively and check if they are equal to each other without var remapping. More...
 

Namespaces

 tvm
 An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
 
 tvm::arith
 namespace of arithmetic analysis.
 
 tvm::tirx
 
 tvm::tirx::transform
 

Functions

template<class FLambda >
void tvm::tirx::VisitPrimFuncs (const IRModule &mod, FLambda fvisit)
 Visit the PrimFuncs in the IRModule. More...
 
ffi::Array< Var > tvm::tirx::UndefinedVars (const Stmt &stmt, const ffi::Array< Var > &defs)
 Find undefined vars in the statement. More...
 
ffi::Array< Var > tvm::tirx::UndefinedVars (const PrimExpr &expr)
 Find undefined vars in the expression. More...
 
ffi::Array< Var > tvm::tirx::UndefinedVars (const PrimExpr &expr, const ffi::Array< Var > &defs)
 Find undefined vars in the expression. More...
 
CallEffectKind tvm::tirx::SideEffect (const PrimExpr &expr)
 Analyze the side effect of an expression. More...
 
bool tvm::tirx::UsesVar (const Stmt &stmt, std::function< bool(const VarNode *)> vset_contains)
 Whether the given Stmt uses any var in the given variable set. More...
 
bool tvm::tirx::UsesVar (const PrimExpr &expr, std::function< bool(const VarNode *)> vset_contains)
 Whether the given PrimExpr uses any var in the given variable set. More...
 
bool tvm::tirx::VerifySSA (const PrimFunc &func)
 Verifies whether the IR stmt or Expr is in SSA form. That is: each Var is defined and assigned once(in Let/For) More...
 
bool tvm::tirx::VerifyMemory (const PrimFunc &func)
 Verify if memory accesses are legal for a specific target device type. More...
 
size_t tvm::tirx::CalculateExprComplexity (const PrimExpr &expr)
 Calculate the expression complexity based on number of symbols it contains. More...
 
size_t tvm::tirx::CalculateConstantBytes (const PrimFunc &func, const Integer &constant_byte_alignment)
 Calculate the constants size in bytes needed by the TIR allocates inside the TIR PrimFunc. More...
 
size_t tvm::tirx::CalculateWorkspaceBytes (const PrimFunc &func, const Integer &workspace_byte_alignment)
 Calculate the workspace size in bytes needed by the TIR allocates inside the TIR PrimFunc. More...
 
bool tvm::tirx::VerifyWellFormed (const PrimFunc &func, bool assert_mode=true)
 Verify if the given TIR is well-formed. The verification includes: More...
 
bool tvm::tirx::VerifyWellFormed (const IRModule &mod, bool assert_mode=true)
 Verify if the TIR in the given IRMOdule is well-formed. More...
 
const PrimFuncNode * tvm::tirx::FindEntryFunc (const IRModule &mod, GlobalVar *result_g_var)
 Find the entry function of the given IRModule, i.e, functions marked by tirx::attr::kIsEntryFunc, whose name is main or being the only PrimeFunc. More...
 
Pass tvm::tirx::transform::VerifySSA ()
 Pass variant of VerifySSA. More...
 
Pass tvm::tirx::transform::VerifyMemory ()
 Pass variant of VerifyMemory. More...
 

Detailed Description

Analysis utilities and passes for TIR.