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

- Packages that use FunctionCallGraph
  Package | Description
  --- | ---
  org.apache.sysds.hops.fedplanner |
  org.apache.sysds.hops.ipa |
  org.apache.sysds.utils |

- - ### Uses of FunctionCallGraph in org.apache.sysds.hops.fedplanner

    Methods in org.apache.sysds.hops.fedplanner with parameters of type FunctionCallGraph
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract void` | AFederatedPlanner.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` | Selects a federated execution plan for the given program by setting the forced execution type.
    `void` | FederatedPlannerCostbased.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `void` | FederatedPlannerFedAll.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |

  - ### Uses of FunctionCallGraph in org.apache.sysds.hops.ipa

    Methods in org.apache.sysds.hops.ipa with parameters of type FunctionCallGraph
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract boolean` | IPAPass.`isApplicable​(FunctionCallGraph fgraph)` | Indicates if an IPA pass is applicable for the current configuration such as global flags or the chosen execution mode (e.g., HYBRID).
    `boolean` | IPAPassApplyStaticAndDynamicHopRewrites.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassCompressionWorkloadAnalysis.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassEliminateDeadCode.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassFlagFunctionsRecompileOnce.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassFlagNonDeterminism.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassForwardFunctionCalls.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassInlineFunctions.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassPropagateReplaceLiterals.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassRemoveConstantBinaryOps.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassRemoveUnnecessaryCheckpoints.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassRemoveUnusedFunctions.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassReplaceEvalFunctionCalls.`isApplicable​(FunctionCallGraph fgraph)` |
    `boolean` | IPAPassRewriteFederatedPlan.`isApplicable​(FunctionCallGraph fgraph)` | Indicates if an IPA pass is applicable for the current configuration.
    `abstract boolean` | IPAPass.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` | Rewrites the given program or its functions in place, with access to the read-only function call graph.
    `boolean` | IPAPassApplyStaticAndDynamicHopRewrites.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassCompressionWorkloadAnalysis.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassEliminateDeadCode.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassFlagFunctionsRecompileOnce.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassFlagNonDeterminism.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassForwardFunctionCalls.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassInlineFunctions.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassPropagateReplaceLiterals.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassRemoveConstantBinaryOps.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassRemoveUnnecessaryCheckpoints.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassRemoveUnusedFunctions.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassReplaceEvalFunctionCalls.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` |
    `boolean` | IPAPassRewriteFederatedPlan.`rewriteProgram​(DMLProgram prog, FunctionCallGraph fgraph, FunctionCallSizeInfo fcallSizes)` | Estimates cost and selects a federated execution plan by setting the federated output value of each hop in the program.

    Constructors in org.apache.sysds.hops.ipa with parameters of type FunctionCallGraph
    Constructor | Description
    --- | ---
    `FunctionCallSizeInfo​(FunctionCallGraph fgraph)` | Constructs the function call summary for all functions reachable from the main program.
    `FunctionCallSizeInfo​(FunctionCallGraph fgraph, boolean init)` | Constructs the function call summary for all functions reachable from the main program.

  - ### Uses of FunctionCallGraph in org.apache.sysds.utils

    Methods in org.apache.sysds.utils with parameters of type FunctionCallGraph
    Modifier and Type | Method | Description
    --- | --- | ---
    `static String` | Explain.`explainFunctionCallGraph​(FunctionCallGraph fgraph, HashSet<String> fstack, String fkey, int level)` |