dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/include/llvm/Support/BlockFrequency.h
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/Support/BlockFrequency.h
|
e7a1e3ee8279f12d0f2b49fb198d577949795c88 |
|
17-Nov-2013 |
Michael Gottesman <mgottesman@apple.com> |
[block-freq] Add BlockFrequency::scale that returns a remainder from the division and make the private scale in BlockFrequency more performant. This change is the first in a series of changes improving LLVM's Block Frequency propogation implementation to not lose probability mass in branchy code when propogating block frequency information from a basic block to its successors. This patch is a simple infrastructure improvement that does not actually modify the block frequency algorithm. The specific changes are: 1. Changes the division algorithm used when scaling block frequencies by branch probabilities to a short division algorithm. This gives us the remainder for free as well as provides a nice speed boost. When I benched the old routine and the new routine on a Sandy Bridge iMac with disabled turbo mode performing 8192 iterations on an array of length 32768, I saw ~600% increase in speed in mean/median performance. 2. Exposes a scale method that returns a remainder. This is important so we can ensure that when we scale a block frequency by some branch probability BP = N/D, the remainder from the division by D can be retrieved and propagated to other children to ensure no probability mass is lost (more to come on this). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
2a210b7df7156cfc348e8287e05fcf662646614d |
|
02-Jul-2013 |
Tobias Grosser <grosser@fim.uni-passau.de> |
Fix typo in comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
74d2a3e1a014b93e9037a7b04e85dc92bfb54fa7 |
|
02-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove floating point computations form SpillPlacement.cpp. Patch by Benjamin Kramer! Use the BlockFrequency class instead of floats in the Hopfield network computations. This rescales the node Bias field from a [-2;2] float range to two block frequencies BiasN and BiasP pulling in opposite directions. This construct has a more predictable behavior when block frequencies saturate. The per-node scaling factors are no longer necessary, assuming the block frequencies around a bundle are consistent. This patch can cause the register allocator to make different spilling decisions. The differences should be small. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
d7648ff20f8bbc8217a26576ca96addc55e003de |
|
28-Jun-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a division operator to BlockFrequency. Allow a BlockFrequency to be divided by a non-zero BranchProbability with saturating arithmetic. This will be used to compute the frequency of a loop header given the probability of leaving the loop. Our long division algorithm already saturates on overflow, so that was a freebie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
75b51621540c23ddfc1e9ef6b4dc803453d9d122 |
|
25-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
BlockFrequency: Bump up the entry frequency a bit. This is a band-aid to fix the most severe regressions we're seeing from basing spill decisions on block frequencies, until we have a better solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
2ea475cddf42ce3421f0463be670c77c93329b2c |
|
22-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reapply documentation changes from r184584. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
b47aceaf068352eebf4da87a647363b2317f0f22 |
|
21-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert "BlockFrequency: Saturate at 1 instead of 0 when multiplying a frequency with a branch probability." This reverts commit r184584. Breaks PPC selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
93702a3b0754052d926c75082abf7ca156b80c45 |
|
21-Jun-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
BlockFrequency: Saturate at 1 instead of 0 when multiplying a frequency with a branch probability. Zero is used by BlockFrequencyInfo as a special "don't know" value. It also causes a sink for frequencies as you can't ever get off a zero frequency with more multiplies. This recovers a 10% regression on MultiSource/Benchmarks/7zip. A zero frequency was propagated into an inner loop causing excessive spilling. PR16402. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
73a1ad8f0560f01830fd206e84d4a21e5b3b7f59 |
|
04-Nov-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add missing includes/class declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
e2481ff8ee722e25d1e3aa192b276f9b5be5b177 |
|
01-Aug-2011 |
Jakub Staszak <jstaszak@apple.com> |
Add BlockFrequency::getEntryFrequency() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
636a02b57c3ade2eb528bda31f05556f42aa7d48 |
|
27-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Move static methods to the anonymous namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|
a26ec886a3a4d9d317262861d7a3de4f64bad71c |
|
26-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Add BlockFrequency class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/BlockFrequency.h
|