LLVM
8.0.1
|
Class with methods to propagate synthetic entry counts. More...
#include "llvm/Analysis/SyntheticCountsUtils.h"
Public Types | |
using | Scaled64 = ScaledNumber< uint64_t > |
using | CGT = GraphTraits< CallGraphType > |
using | NodeRef = typename CGT::NodeRef |
using | EdgeRef = typename CGT::EdgeRef |
using | SccTy = std::vector< NodeRef > |
using | GetProfCountTy = function_ref< Optional< Scaled64 >(NodeRef, EdgeRef)> |
using | AddCountTy = function_ref< void(NodeRef, Scaled64)> |
Static Public Member Functions | |
static void | propagate (const CallGraphType &CG, GetProfCountTy GetProfCount, AddCountTy AddCount) |
Propgate synthetic entry counts on a callgraph CG . More... | |
Class with methods to propagate synthetic entry counts.
This class is templated on the type of the call graph and designed to work with the traditional per-module callgraph and the summary callgraphs used in ThinLTO. This contains only static methods and alias templates.
Definition at line 31 of file SyntheticCountsUtils.h.
using llvm::SyntheticCountsUtils< CallGraphType >::AddCountTy = function_ref<void(NodeRef, Scaled64)> |
Definition at line 42 of file SyntheticCountsUtils.h.
using llvm::SyntheticCountsUtils< CallGraphType >::CGT = GraphTraits<CallGraphType> |
Definition at line 34 of file SyntheticCountsUtils.h.
using llvm::SyntheticCountsUtils< CallGraphType >::EdgeRef = typename CGT::EdgeRef |
Definition at line 36 of file SyntheticCountsUtils.h.
using llvm::SyntheticCountsUtils< CallGraphType >::GetProfCountTy = function_ref<Optional<Scaled64>(NodeRef, EdgeRef)> |
Definition at line 41 of file SyntheticCountsUtils.h.
using llvm::SyntheticCountsUtils< CallGraphType >::NodeRef = typename CGT::NodeRef |
Definition at line 35 of file SyntheticCountsUtils.h.
using llvm::SyntheticCountsUtils< CallGraphType >::Scaled64 = ScaledNumber<uint64_t> |
Definition at line 33 of file SyntheticCountsUtils.h.
using llvm::SyntheticCountsUtils< CallGraphType >::SccTy = std::vector<NodeRef> |
Definition at line 37 of file SyntheticCountsUtils.h.
|
static |
Propgate synthetic entry counts on a callgraph CG
.
This performs a reverse post-order traversal of the callgraph SCC. For each SCC, it first propagates the entry counts to the nodes within the SCC through call edges and updates them in one shot. Then the entry counts are propagated to nodes outside the SCC. This requires GraphTraits
to have a specialization for CallGraphType
.
Definition at line 88 of file SyntheticCountsUtils.cpp.
References I, llvm::reverse(), and llvm::scc_begin().
Referenced by llvm::computeSyntheticCounts(), and llvm::SyntheticCountsPropagation::run().