This patch makes it possible to propagate hot cold across basic
blocks with in the attributes. It relies on the BranchProbabilityInfo
to check if a edge is hot or cold.
The hot cold information is propagated both to successors and to
predecessors.
I don't like the true => hot, false = cold encoding. We should make it explicit.
How does the backwards traversal change anything here? I can see how it might if we do more in Propagate.
Also, we should not walk the CFG twice. WDYT about one of the following two: