dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Support/BlockFrequency.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Support/BlockFrequency.cpp
|
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/lib/Support/BlockFrequency.cpp
|
5d3257e37ced7dd75023bb9c4619f297374f61d6 |
|
28-Jun-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a bad overflow check pointed out by Ben. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/BlockFrequency.cpp
|
e187512bde9fd090a78924928a0b8793e3d87cbb |
|
28-Jun-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate an assortment of undefined behavior. Hopefully, this fixes the PPC64 buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/BlockFrequency.cpp
|
a45b375610b24243ad131c96142f7f57c08c2d43 |
|
28-Jun-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stylistic cleanups, no functional change. - Use static functions instead of anonymous namespace. - Appease the Doxygen lobby. - Use 0-based induction variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/BlockFrequency.cpp
|
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/lib/Support/BlockFrequency.cpp
|
b1c0cc22dd5854a77e5699e80ce37545315b98ed |
|
25-Jun-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print block frequencies in decimal form. This is easier to read than the internal fixed-point representation. If anybody knows the correct algorithm for converting fixed-point numbers to base 10, feel free to fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/BlockFrequency.cpp
|
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/lib/Support/BlockFrequency.cpp
|
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/lib/Support/BlockFrequency.cpp
|
bc1430a0a0b3f97b86039950e57d832cb01f1cf6 |
|
27-Oct-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
BlockFrequency: Use a smarter overflow check. This trades one 64 bit div for one 64 bit mul and some arithmetic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/BlockFrequency.cpp
|
ffcc2a542c13b698848f38c56a13cdac388c65ab |
|
27-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Optimize 96-bit division a little bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/BlockFrequency.cpp
|
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/lib/Support/BlockFrequency.cpp
|
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/lib/Support/BlockFrequency.cpp
|