# Uses of Class
org.apache.sysds.hops.ipa.IPAPass

Packages that use IPAPass
Package
Description
org.apache.sysds.hops.ipa

## Uses of IPAPass in org.apache.sysds.hops.ipa

Subclasses of IPAPass in org.apache.sysds.hops.ipa
Modifier and Type
Class
Description
`class`
`IPAPassApplyStaticAndDynamicHopRewrites`
This rewrite applies static hop dag and statement block rewrites such as constant folding and branch removal in order to simplify statistic propagation.
`class`
`IPAPassCompressionWorkloadAnalysis`
This rewrite obtains workload summaries for all hops candidates amenable for compression as a basis for workload-aware compression planning.
`class`
`IPAPassEliminateDeadCode`
This rewrite eliminates unnecessary sub-DAGs that produce transient write outputs which are never consumed subsequently.
`class`
`IPAPassFlagFunctionsRecompileOnce`
This rewrite marks functions with loops as recompile once in order to reduce recompilation overhead.
`class`
`IPAPassFlagLoopsRecompileOnce`
This rewrite marks loops in the main program as recompile once in order to reduce recompilation overhead.
`class`
`IPAPassFlagNonDeterminism`
`class`
`IPAPassForwardFunctionCalls`
This rewrite forwards a function call to a function with a simple function call that only consumes function parameters and literals into the original call location.
`class`
`IPAPassInjectOOCTee`
Applies OOC tee injection after static/dynamic rewrites in IPA.
`class`
`IPAPassInlineFunctions`
This rewrite inlines single statement block functions, which have fewer operations than an internal threshold.
`class`
`IPAPassPropagateReplaceLiterals`
This rewrite propagates and replaces literals into functions in order to enable subsequent rewrites such as branch removal.
`class`
`IPAPassPruneUnreachableHops`
Prune stale parent links by keeping only parent references reachable from the statement block roots/predicates.
`class`
`IPAPassRemoveConstantBinaryOps`
This rewrite identifies binary operations with constant matrices such as X * ones, where ones might be created as a vector of ones before a loop.
`class`
`IPAPassRemoveUnnecessaryCheckpoints`
This rewrite identifies and removes unnecessary checkpoints, i.e., persisting of Spark RDDs into a given storage level.
`class`
`IPAPassRemoveUnusedFunctions`
This rewrite identifies and removes unused functions in order to reduce compilation overhead and other overheads such as parfor worker creation, where we construct function copies.
`class`
`IPAPassReplaceEvalFunctionCalls`
This rewrite applies static hop dag and statement block rewrites such as constant folding and branch removal in order to simplify statistic propagation.
`class`
`IPAPassRewriteFederatedPlan`
This rewrite generates a federated execution plan by estimating and setting costs and the FederatedOutput values of all relevant hops in the DML program.