bpi.cpp reimplements the estimated (loop-aware) heuristic of LLVM's
BranchProbabilityInfo — the only heuristic that is a pure function of the CFG +
loop structure. See the header comment in bpi.cpp for what is intentionally
omitted (instruction-level heuristics, computeUnlikelySuccessors).
Loops come from a nested cycle forest built with Tao Wei's single-pass DFS
(the algorithm llvm::CycleInfo uses), visiting successors LIFO to match LLVM's
iterative DFS order. This handles reducible and irreducible loops and gives each