llvm-analysis-0.3.0: src/LLVM/Analysis/CallGraphSCCTraversal.hs
-- | This module provides a framework for analyzing LLVM Modules
-- bottom-up with regard to the call graph. The analysis starts at
-- the leaves and propagates summary information up the call graph.
-- Strongly-connected components (hence the SCC in the module name)
-- are analyzed until a fixed-point is reached.
--
-- Analysis functions can be either pure or monadic; the adaptors take
-- summary functions of various shapes and convert them into a form
-- suitable for the traversal engine.
--
-- The traversal also processes independent strongly-connected
-- components in parallel with as many cores as the process has been
-- allocated.
module LLVM.Analysis.CallGraphSCCTraversal (
-- * Traversals
callGraphSCCTraversal,
parallelCallGraphSCCTraversal,
-- * Types
ComposableAnalysis,
-- * Adaptors
callGraphAnalysis,
callGraphAnalysisM,
callGraphComposeAnalysis,
composableAnalysis,
composableDependencyAnalysis,
composableAnalysisM,
composableDependencyAnalysisM,
) where
import LLVM.Analysis.CallGraph.Internal