tvm
Loading...
Searching...
No Matches
Namespaces | Functions
transform.h File Reference

TIR specific transformation passes. More...

#include <tvm/ir/function.h>
#include <tvm/ir/prim/expr.h>
#include <tvm/ir/transform.h>
#include <tvm/target/target.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

namespace  tvm
 An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
 
namespace  tvm::tirx
 Backend-defined execution hierarchy nodes shared by layouts and tile calls.
 
namespace  tvm::tirx::transform
 

Functions

TVM_TIRX_DLL Pass tvm::tirx::transform::DecorateDeviceScope ()
 Wrap a function body in a device scope region.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::CreateFunctionPass (std::function< ffi::Optional< Function >(Function, IRModule, PassContext)> pass_func, int opt_level, ffi::String name)
 
TVM_TIRX_DLL Pass tvm::tirx::transform::VectorizeLoop (bool enable_vectorize=true)
 Lower vectorization loops.
 
TVM_TIRX_DLL 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.
 
TVM_TIRX_DLL 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.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::RemoveNoOp ()
 Remove No Op from the Stmt.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::HoistIf ()
 Hoist loop-invariant If statements outside eligible loops.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::RenormalizeSplitPattern ()
 Renormalize the split pattern from floordiv(floormod()) to floormod(floordiv()).
 
TVM_TIRX_DLL Pass tvm::tirx::transform::StmtSimplify ()
 Run statement-level arithmetic simplifications on the TIR Function.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::ConvertSSA ()
 Convert an IRModule to be SSA form.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::LowerThreadAllreduce ()
 Lower cross-thread reductions to target-specific communication.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::MakePackedAPI ()
 Transform the high-level Function to a low-level version that can be used as an API function.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::SplitHostDevice ()
 Annotate, split, and lower host/device functions.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::SkipAssert ()
 skip assert stmt.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::LowerTVMBuiltin ()
 Lower builtin intrinsics.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::LowerIntrin ()
 Lower the target specific function intrinsics in each of the function.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::LowerWarpMemory ()
 Lower warp memory access to low-level device related function calls.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::NarrowDataType (int target_bits)
 Narrow down PrimExpr datatype in stmt to target_bits.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::ForceNarrowIndexToInt32 ()
 Force to narrow down indexing expressions and integer tensors to int32 dtype.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::BF16ComputeLegalize ()
 Legalize bf16 compute Ops. Add a cast to fp32 before Ops, then add a cast back to bf16.
 
TVM_TIRX_DLL 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.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::BF16StorageLegalize ()
 Legalize bf16 storage types to u16.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::FP8StorageLegalize ()
 Legalize fp8 storage types to u8.
 
TVM_TIRX_DLL 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.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::FlattenTensor ()
 Flatten the multi-dimensional TensorLoad and TensorStore to single dimensional TensorLoad/TensorStore for the TIR not contains opaque block.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::CommonSubexprElim ()
 Implements Common Subexpression Elimination (CSE) for TIR which introduces Bind statements for duplicated sub-expressions.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::BindTarget (Target target)
 Annotate a Function with a given target.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::AnnotateEntryFunc ()
 Set a Function as the entry point if it is only function in IRModule.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::Filter (ffi::TypedFunction< bool(Function)> fcond)
 Filter Functions with a given condition.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::TileDispatch ()
 Lower TIRx op calls using registered op dispatchers for the given target.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::LowerTIRxCleanup ()
 Finalize TIRx lowering by applying layout rewriters and cleanup passes.
 
TVM_TIRX_DLL Pass tvm::tirx::transform::LowerTIRx ()
 Lower the TIR to a lower level IR for the given target.
 

Detailed Description

TIR specific transformation passes.