| FunctionCallGraph | 
  | 
| FunctionCallSizeInfo | 
 Auxiliary data structure to hold function call summaries in terms
 of information about number of function calls, consistent dimensions,
 consistent sparsity, and dimension-preserving functions. 
 | 
| InterProceduralAnalysis | 
 This Inter Procedural Analysis (IPA) serves two major purposes:
   1) Inter-Procedure Analysis: propagate statistics from calling program into 
      functions and back into main program. 
 | 
| IPAPass | 
 Base class for all IPA passes. 
 | 
| IPAPassApplyStaticAndDynamicHopRewrites | 
 This rewrite applies static hop dag and statement block
 rewrites such as constant folding and branch removal
 in order to simplify statistic propagation. 
 | 
| IPAPassCompressionWorkloadAnalysis | 
 This rewrite obtains workload summaries for all hops candidates amenable for compression as a basis for
 workload-aware compression planning. 
 | 
| IPAPassEliminateDeadCode | 
 This rewrite eliminates unnecessary sub-DAGs that produce
 transient write outputs which are never consumed subsequently. 
 | 
| IPAPassFlagFunctionsRecompileOnce | 
 This rewrite marks functions with loops as recompile once
 in order to reduce recompilation overhead. 
 | 
| IPAPassFlagLoopsRecompileOnce | 
 This rewrite marks loops in the main program as recompile once
 in order to reduce recompilation overhead. 
 | 
| IPAPassFlagNonDeterminism | 
  | 
| 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. 
 | 
| IPAPassInlineFunctions | 
 This rewrite inlines single statement block functions, which have fewer 
 operations than an internal threshold. 
 | 
| IPAPassPropagateReplaceLiterals | 
 This rewrite propagates and replaces literals into functions
 in order to enable subsequent rewrites such as branch removal. 
 | 
| 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. 
 | 
| IPAPassRemoveUnnecessaryCheckpoints | 
 This rewrite identifies and removes unnecessary checkpoints, i.e.,
 persisting of Spark RDDs into a given storage level. 
 | 
| 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. 
 | 
| IPAPassReplaceEvalFunctionCalls | 
 This rewrite applies static hop dag and statement block
 rewrites such as constant folding and branch removal
 in order to simplify statistic propagation. 
 | 
| 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. 
 |