1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/Analysis/BlockFrequencyInfo
Diego Novillo 8e90e86295 Fix PR 23525 - Separate header mass propagation in irregular loops.
Summary:
When propagating mass through irregular loops, the mass flowing through
each loop header may not be equal. This was causing wrong frequencies
to be computed for irregular loop headers.

Fixed by keeping track of masses flowing through each of the headers in
an irregular loop. To do this, we now keep track of per-header backedge
weights. After the loop mass is distributed through the loop, the
backedge weights are used to re-distribute the loop mass to the loop
headers.

Since each backedge will have a mass proportional to the different
branch weights, the loop headers will end up with a more approximate
weight distribution (as opposed to the current distribution that assumes
that every loop header is the same).

Reviewers: dexonsmith

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D10348

llvm-svn: 239843
2015-06-16 19:10:58 +00:00
..
bad_input.ll Remove 4,096 loop scale limitation. 2015-04-01 17:42:27 +00:00
basic.ll
double_backedge.ll
double_exit.ll
extremely-likely-loop-successor.ll
irreducible.ll Fix PR 23525 - Separate header mass propagation in irregular loops. 2015-06-16 19:10:58 +00:00
loop_with_branch.ll
loops_with_profile_info.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
nested_loop_with_branches.ll
PR23525.ll Fix PR 23525 - Separate header mass propagation in irregular loops. 2015-06-16 19:10:58 +00:00