tvm
Namespaces | Functions
transform.h File Reference

TIR specific transformation passes. More...

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

Go to the source code of this file.

Namespaces

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

Functions

Pass tvm::tirx::transform::CreatePrimFuncPass (std::function< PrimFunc(PrimFunc, IRModule, PassContext)> pass_func, int opt_level, ffi::String name, tvm::ffi::Array< ffi::String > required, bool traceable=false)
 
Pass tvm::tirx::transform::VectorizeLoop (bool enable_vectorize=true)
 Lower vectorization loops. More...
 
Pass tvm::tirx::transform::StorageRewrite ()
 Rewrite storage allocation pattern. Moves the allocation to outer most possible scope. Trying to share space between allocations to make a static allocation plan when possible. More...
 
Pass tvm::tirx::transform::UnrollLoop ()
 unroll the constant loop marked by unroll. This pass also automatically attach pragma unroll tag to loops which meets the standard. More...
 
Pass tvm::tirx::transform::RemoveNoOp ()
 Remove No Op from the Stmt. More...
 
Pass tvm::tirx::transform::Simplify ()
 Run arithmetic simplifications on the statements and expressions. More...
 
Pass tvm::tirx::transform::ConvertSSA ()
 Convert an IRModule to be SSA form. More...
 
Pass tvm::tirx::transform::MakePackedAPI ()
 Transform the high-level PrimFunc to a low-level version that can be used as an API function. More...
 
Pass tvm::tirx::transform::RemapThreadAxis (ffi::Map< ffi::String, IterVar > axis_map)
 Remap the thread axis. More...
 
Pass tvm::tirx::transform::LowerCustomDatatypes ()
 Lower custom datatypes. More...
 
Pass tvm::tirx::transform::AnnotateDeviceRegions ()
 Annotate locations that should be run on the device. More...
 
Pass tvm::tirx::transform::SplitHostDevice ()
 Split the function into a host function and device functions. More...
 
Pass tvm::tirx::transform::LowerDeviceKernelLaunch ()
 Lower cross-device function calls. More...
 
Pass tvm::tirx::transform::SkipAssert ()
 skip assert stmt. More...
 
Pass tvm::tirx::transform::LowerTVMBuiltin ()
 Lower builtin intrinsics. More...
 
Pass tvm::tirx::transform::LowerIntrin ()
 Lower the target specific function intrinsics in each of the function. More...
 
Pass tvm::tirx::transform::LowerWarpMemory ()
 Lower warp memory access to low-level device related function calls. More...
 
Pass tvm::tirx::transform::NarrowDataType (int target_bits)
 Narrow down PrimExpr datatype in stmt to target_bits. More...
 
Pass tvm::tirx::transform::ForceNarrowIndexToInt32 ()
 Force to narrow down indexing expressions and integer buffers to int32 dtype. More...
 
Pass tvm::tirx::transform::BF16ComputeLegalize ()
 Legalize bf16 compute Ops. Add a cast to fp32 before Ops, then add a cast back to bf16. More...
 
Pass tvm::tirx::transform::FP8ComputeLegalize (ffi::String promote_dtype="float16")
 Legalize fp8 compute Ops. Add a cast to fp16/fp32 before Ops, then add a cast back to fp8. More...
 
Pass tvm::tirx::transform::BF16StorageLegalize ()
 Legalize bf16 storage types to u16. More...
 
Pass tvm::tirx::transform::FP8StorageLegalize ()
 Legalize fp8 storage types to u8. More...
 
Pass tvm::tirx::transform::InlinePrivateFunctions ()
 Inline calls to private functions. More...
 
Pass tvm::tirx::transform::PointerValueTypeRewrite ()
 Rewrite the pointer content type of arguments, as well as Alloc internal to the function to use the most frequently accessed type for load/store to avoid pointer casting in backend when possible. More...
 
Pass tvm::tirx::transform::FlattenBuffer ()
 Flatten the multi-dimensional BufferLoad and BufferStore to single dimensional BufferLoad/BufferStore for the TIR not contains opaque block. More...
 
Pass tvm::tirx::transform::CommonSubexprElim ()
 Implements Common Subexpression Elimination (CSE) for TIR which introduces Bind statements for duplicated sub-expressions. More...
 
Pass tvm::tirx::transform::UnifiedStaticMemoryPlanner ()
 This is the unified static memory planner pass that will plan for memory intra- and inter- PrimFuncs together. The pass requires all the function to be PrimFuncs including the main. More...
 
Pass tvm::tirx::transform::BindTarget (Target target)
 Annotate a PrimFunc with a given target. More...
 
Pass tvm::tirx::transform::AnnotateEntryFunc ()
 Set a PrimFunc as the entry point if it is only function in IRModule. More...
 
Pass tvm::tirx::transform::Filter (ffi::TypedFunction< bool(PrimFunc)> fcond)
 Filter PrimFuncs with a given condition. More...
 

Detailed Description

TIR specific transformation passes.