-- | 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