docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::passes Namespace Reference

Namespaces

namespace  detail
namespace  expansion
namespace  scheduler
namespace  loop_fusion
namespace  normalization
namespace  rpc

Classes

class  ApproximateMath
 Marks every CMathNode as approximate, permitting fast device intrinsics (e.g. __expf). More...
class  ByteReferenceElimination
class  ConstantPropagation
 Forward-propagates floating-point constant scalars into their uses. More...
class  DeadDataElimination
class  DeadReferenceElimination
class  LocalBufferReuseN
class  MemletLinearization
 Linearizes memlet base types by flattening nested arrays. More...
class  MemletSimplification
 Simplifies mixed-radix index expressions in memlet subsets. More...
class  ReferencePropagation
class  TaskletFusion
class  TensorToPointerConversion
class  TrivialArrayElimination
class  TrivialReferenceConversion
class  DebugDumpPass
class  DebugInfoPropagation
class  LibNodeExpander
class  TypedLibNodeExpander
class  CodeLibNodeExpander
class  MathNodeExpander
struct  SingleExpanderHolder
class  LibraryNodeExpansionPass
 Looks for and expands library nodes in a single pass, potentially recursively. More...
class  LibNodeExpansionVisitor
class  SwitchExpander
 An expander that bundles several sub-expanders and switches to the correct one per node. More...
class  AllocationManagement
class  TensorAllocationSizeInference
 Records the byte size of pointer containers in their StorageType::allocation_size, derived from the Tensor-typed memlets connecting them to library nodes. More...
class  Pass
class  VisitorPass
class  Pipeline
class  HierarchicalStatistics
class  CompileStatistics
class  CodegenStatistics
class  BlockFusion
class  NoLibnodesBlockFusionPass
class  CommonAssignmentElimination
class  ConditionElimination
class  DeadCFGElimination
class  IteratorToIndvar
class  SequenceFusion
class  UnifyLoopExits
class  UniqueLoopIndvars
 Ensures every structured loop has a unique induction variable. More...
class  WhileToForConversion
class  SymbolEvolution
 Rewrites loop-carried scalar recurrences into closed-form expressions. More...
class  SymbolPromotion
 Pass that promotes simple dataflow computations to symbolic expressions. More...
class  SymbolPropagation
 Pass that propagates symbolic assignments through the SDFG. More...
class  ExtendedBlockHoisting
class  ExtendedBlockSortingPass
class  CollapsePass
 Phased collapse pass: collects applicable collapses, then applies them. More...
class  DotExpansion
class  BlockHoisting
 Currently only looks at the first and lost block in the sequence of a if/else or Map node and thus provides very limited hoisting by itself. More...
class  BlockSortingPass
class  CudaExpansion
class  DataTransferMinimizationPass
class  DeviceBufferReusePass
 Coalesces pure device buffer allocations (deviceMalloc/deviceFree without any host/device transfer) so that non-overlapping buffers of the same element type share a single, max-sized allocation. More...
struct  Candidate
struct  AllocRec
class  BufferReuseMarker
class  DeviceResidentArgPromotionPass
 Promotes function pointer arguments to device-resident storage. More...
struct  CUDAControlFlowOffloadTraits
struct  ROCMControlFlowOffloadTraits
class  GPUControlFlowOffloadPass
 Offloads non-loop control flow directly nested in the SDFG root. More...
class  GPULoopReorderingPass
 Phased GPU loop reordering pass. More...
class  GPUNestedOffloadPass
 Depth-aware nested GPU offload pass. More...
class  GPUNestedParallelizationPass
 Phased GPU nested map parallelization pass. More...
class  ReductionSharedMemoryDelinearization
 Materialize compact GPU reduction partials and their SDFG accesses. More...
class  RemoveRedundantTransfersPass
class  RocmExpansion
class  SyncConditionPropagation
class  ReadonlyTransferHoistingPass
class  RedundantLoadEliminationPass
class  RedundantLoadVisitor
class  RedundantZeroInitEliminationPass
 Applies RedundantZeroInitElimination to every loop annotated as zero init (ScheduleType_ZeroInit). More...
class  ScalarPromotionPass
 Promotes the array element a Reduce accumulates into, e.g. More...
class  TargetMappingVisitor
 Generified version to map LibraryNodes for now. More...
class  TargetMappingPass
class  TilingPass
 Phased tiling pass: collects applicable tilings, then applies them. More...
class  TrivialLoopEliminationPass
 Applies TrivialLoopElimination to a set of maps. More...

Concepts

concept  HolderPolicy

Typedefs

typedef VisitorPass< ApproximateMath > ApproximateMathPass
template<class T, class S>
using LocalBufferReuse = LocalBufferReuseN<T, S>
typedef VisitorPass< LocalBufferReuseN< math::tensor::ConvNode, math::tensor::BatchNormNode > > ConvBatchNormEliminationPass
typedef VisitorPass< LocalBufferReuseN< math::tensor::BatchNormNode, math::tensor::ReLUNode > > BatchNormReLUEliminationPass
typedef VisitorPass< LocalBufferReuseN< math::tensor::ConvNode, math::tensor::BatchNormNode, math::tensor::ReLUNode > > ConvBatchNormReLUEliminationPass
typedef VisitorPass< LocalBufferReuseN< math::tensor::ConvNode, math::tensor::BatchNormNode, math::tensor::ReLUNode, math::tensor::ConvNode > > ConvBatchNormReLUConvEliminationPass
typedef VisitorPass< LocalBufferReuseN< math::tensor::ConvNode, math::tensor::BatchNormNode, math::tensor::ReLUNode, math::tensor::ConvNode, math::tensor::BatchNormNode > > ConvBatchNormReLUConvBatchNormEliminationPass
typedef VisitorPass< MemletLinearization > MemletLinearizationPass
typedef VisitorPass< MemletSimplification > MemletSimplificationPass
typedef VisitorPass< TaskletFusion > TaskletFusionPass
typedef VisitorPass< TensorToPointerConversion > TensorToPointerConversionPass
typedef VisitorPass< TrivialReferenceConversion > TrivialReferenceConversionPass
typedef VisitorPass< AllocationManagement > AllocationManagementPass
typedef VisitorPass< BlockFusion > BlockFusionPass
typedef VisitorPass< ConditionElimination > ConditionEliminationPass
typedef VisitorPass< IteratorToIndvar > PointerEvolution
typedef VisitorPass< ExtendedBlockHoisting > ExtendedBlockHoistingPass
typedef VisitorPass< DotExpansion > DotExpansionPass
typedef VisitorPass< BlockHoisting > BlockHoistingPass
typedef VisitorPass< CudaExpansion > CudaExpansionPass
using CUDAControlFlowOffloadPass = GPUControlFlowOffloadPass<CUDAControlFlowOffloadTraits>
using ROCMControlFlowOffloadPass = GPUControlFlowOffloadPass<ROCMControlFlowOffloadTraits>
typedef VisitorPass< RocmExpansion > RocmExpansionPass

Enumerations

enum class  GPUTarget { CUDA , ROCM }

Functions

Pipeline local_buffer_reuse_pipeline ()
template<typename T>
 LibraryNodeExpansionPass (T) -> LibraryNodeExpansionPass< T >
bool statistics_enabled_by_env ()
int statistics_mode_env ()
Pipeline code_motion ()
bool promote_device_residency (StructuredSDFG &sdfg, bool is_rocm)

Variables

constexpr const char * DOCC_STATISTICS_ENV = "DOCC_STATISTICS"

Typedef Documentation

◆ AllocationManagementPass

◆ ApproximateMathPass

◆ BatchNormReLUEliminationPass

◆ BlockFusionPass

◆ BlockHoistingPass

◆ ConditionEliminationPass

◆ ConvBatchNormEliminationPass

◆ ConvBatchNormReLUConvBatchNormEliminationPass

◆ ConvBatchNormReLUConvEliminationPass

◆ ConvBatchNormReLUEliminationPass

◆ CUDAControlFlowOffloadPass

◆ CudaExpansionPass

◆ DotExpansionPass

◆ ExtendedBlockHoistingPass

◆ LocalBufferReuse

template<class T, class S>
using sdfg::passes::LocalBufferReuse = LocalBufferReuseN<T, S>

◆ MemletLinearizationPass

◆ MemletSimplificationPass

◆ PointerEvolution

◆ ROCMControlFlowOffloadPass

◆ RocmExpansionPass

◆ TaskletFusionPass

◆ TensorToPointerConversionPass

◆ TrivialReferenceConversionPass

Enumeration Type Documentation

◆ GPUTarget

enum class sdfg::passes::GPUTarget
strong
Enumerator
CUDA 
ROCM 

Function Documentation

◆ code_motion()

Pipeline sdfg::passes::code_motion ( )

◆ LibraryNodeExpansionPass()

template<typename T>
sdfg::passes::LibraryNodeExpansionPass ( T ) ->LibraryNodeExpansionPass< T >

◆ local_buffer_reuse_pipeline()

Pipeline sdfg::passes::local_buffer_reuse_pipeline ( )

◆ promote_device_residency()

bool sdfg::passes::promote_device_residency ( StructuredSDFG & sdfg,
bool is_rocm )

◆ statistics_enabled_by_env()

bool sdfg::passes::statistics_enabled_by_env ( )
inline

◆ statistics_mode_env()

int sdfg::passes::statistics_mode_env ( )

Variable Documentation

◆ DOCC_STATISTICS_ENV

const char* sdfg::passes::DOCC_STATISTICS_ENV = "DOCC_STATISTICS"
inlineconstexpr