cddc3e03e4ec99c0268c03a126195173e519ed58 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 (cherry picked from commit f3ef5332fa3f4d5ec72c178a2b19dac363a19383) Change-Id: Ic75dcb63191d65df1b69724576392c0aaeb47728
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
6948897e478cbd66626159776a8017b3c18579b9 |
|
01-Jul-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r239765 Bug: 20140355: This rebase pulls the upstream fix for the spurious warnings mentioned in the bug. Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
ebe69fe11e48d322045d5949c83283927a0d790b |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
77226a03dca98e6237c1068f2652fe41bea7b687 |
|
24-May-2013 |
Diego Novillo <dnovillo@google.com> |
Add a new function attribute 'cold' to functions. Other than recognizing the attribute, the patch does little else. It changes the branch probability analyzer so that edges into blocks postdominated by a cold function are given low weight. Added analysis and code generation tests. Added documentation for the new attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
255f89faee13dc491cb64fbeae3c763e7e2ea4e6 |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort the #include lines for the include/... tree with the script. AKA: Recompile *ALL* the source code! This one went much better. No manual edits here. I spot-checked for silliness and grep-checked for really broken edits and everything seemed good. It all still compiles. Yell if you see something that looks goofy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
1a710fdde197b00107ef55df51054925b9a5d2a2 |
|
24-Aug-2012 |
Manman Ren <mren@apple.com> |
BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle the case of multiple edges from one block to another. A simple example is a switch statement with multiple values to the same destination. The definition of an edge is modified from a pair of blocks to a pair of PredBlock and an index into the successors. Also set the weight correctly when building SelectionDAG from LLVM IR, especially when converting a Switch. IntegersSubsetMapping is updated to calculate the weight for each cluster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
0c34ae88bfe6ab40fc30784f131510992438ea43 |
|
15-Aug-2012 |
Bill Wendling <isanbard@gmail.com> |
Set the branch probability of branching to the 'normal' destination of an invoke instruction to something absurdly high, while setting the probability of branching to the 'unwind' destination to the bare minimum. This should set cause the normal destination's invoke blocks to be moved closer to the invoke. PR13612 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
de1c9bb45017e25b5fc2b77e15d3c377f6572075 |
|
24-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove return heuristics from the static branch probabilities, and introduce no-return or unreachable heuristics. The return heuristics from the Ball and Larus paper don't work well in practice as they pessimize early return paths. The only good hitrate return heuristics are those for: - NULL return - Constant return - negative integer return Only the last of these three can possibly require significant code for the returning block, and even the last is fairly rare and usually also a constant. As a consequence, even for the cold return paths, there is little code on that return path, and so little code density to be gained by sinking it. The places where sinking these blocks is valuable (inner loops) will already be weighted appropriately as the edge is a loop-exit branch. All of this aside, early returns are nearly as common as all three of these return categories, and should actually be predicted as taken! Rather than muddy the waters of the static predictions, just remain silent on returns and let the CFG itself dictate any layout or other issues. However, the return heuristic was flagging one very important case: unreachable. Unfortunately it still gave a 1/4 chance of the branch-to-unreachable occuring. It also didn't do a rigorous job of finding those blocks which post-dominate an unreachable block. This patch builds a more powerful analysis that should flag all branches to blocks known to then reach unreachable. It also has better worst-case runtime complexity by not looping through successors for each block. The previous code would perform an N^2 walk in the event of a single entry block branching to N successors with a switch where each successor falls through to the next and they finally fall through to a return. Test case added for noreturn heuristics. Also doxygen comments improved along the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
f46c674a16669518dbb24d4cdd4bfc904dd3b505 |
|
24-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Doxygen-ify the comments on the public interface for BPI. Also, move the two more subtle routines to the bottom and expand on their cautionary comments a bit. No functionality or actual interface change here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
b068bbbaecf338f481124551a5e6f37484fad800 |
|
24-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Simplify the design of BranchProbabilityInfo by collapsing it into a single class. Previously it was split between two classes, one internal and one external. The concern seemed to center around exposing the weights used, but those can remain confined to the implementation file. Having a single class to maintain the state and analyses in use will also simplify several of the enhancements I want to make to our static heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
14edd314af99ccaad194d071f23e437a1371f176 |
|
23-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Teach the BranchProbabilityInfo pass to print its results, and use that to bring it under direct test instead of merely indirectly testing it in the BlockFrequencyInfo pass. The next step is to start adding tests for the various heuristics employed, and to start fixing those heuristics once they're under test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
6f6baf1bdd7531da5ddb925ffcfcf38724e9e4aa |
|
29-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Add more constantness in BranchProbabilityInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
12af93ae86cb4a517d1b67f9363fbf21f24f583b |
|
16-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Remove "LoopInfo.h" include from BranchProbabilityInfo.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
66dddd1da3e036d05f94df82221a97b7d26e3498 |
|
24-Jun-2011 |
Jakub Staszak <jstaszak@apple.com> |
Calculate backedge probability correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
44eb49c2a191108df801977c8e3dc03466c6c02a |
|
23-Jun-2011 |
Jakub Staszak <jstaszak@apple.com> |
Introduce BlockFrequency analysis for BasicBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
7cc2b07437a1243c33324549a1904fefc5f1845e |
|
16-Jun-2011 |
Jakub Staszak <jstaszak@apple.com> |
Introduce MachineBranchProbabilityInfo class, which has similar API to BranchProbabilityInfo (expect setEdgeWeight which is not available here). Branch Weights are kept in MachineBasicBlocks. To turn off this analysis set -use-mbpi=false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
f289df2d9544bd3a0934651daa20e589544413ba |
|
11-Jun-2011 |
Andrew Trick <atrick@apple.com> |
Branch profiling: floating-point avoidance. Patch by: Jakub Staszak! Introduces BranchProbability. Changes unsigned to uint32_t all over and uint64_t only when overflow is expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|
9e76422b963a65f243fdbee0abed61068b82dd98 |
|
04-Jun-2011 |
Andrew Trick <atrick@apple.com> |
New BranchProbabilityInfo analysis. Patch by Jakub Staszak! BranchProbabilityInfo provides an interface for IR passes to query the likelihood that control follows a CFG edge. This patch provides an initial implementation of static branch predication that will populate BranchProbabilityInfo for branches with no external profile information using very simple heuristics. It currently isn't hooked up to any external profile data, so static prediction does all the work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/BranchProbabilityInfo.h
|