36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
93a013c760631e696e6ae3042551c16d4636ade6 |
|
12-Aug-2013 |
Michael Gottesman <mgottesman@apple.com> |
Add editor C++ filetype declaration no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
9dff83dfb082e20ee3940980dea0c7531c3f48e2 |
|
20-Mar-2013 |
Eric Christopher <echristo@gmail.com> |
Remove blank line before block comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.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/CodeGen/MachineBranchProbabilityInfo.h
|
94c22716d60ff5edf6a98a3c67e0faa001be1142 |
|
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
7e2c793a2b5c746344652b6579e958ee42fafdcc |
|
27-Sep-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo 'iff' => 'if' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
990ca5517fd6666d4049b6b8281d9df99da11637 |
|
21-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a quadratic algorithm in MachineBranchProbabilityInfo. The getSumForBlock function was quadratic in the number of successors because getSuccWeight would perform a linear search for an already known iterator. This patch was originally committed as r161460, but reverted again because of assertion failures. Now that duplicate Machine CFG edges have been eliminated, this works properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
913ff09a9acf563ae9719ff223bc117dd66ad6b0 |
|
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Fix a quadratic algorithm in MachineBranchProbabilityInfo." It caused an assertion failure when compiling consumer-typeset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
5e63d43e48f6d0b597d21b83a1eed9eaf2febc93 |
|
08-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a quadratic algorithm in MachineBranchProbabilityInfo. The getSumForBlock function was quadratic in the number of successors because getSuccWeight would perform a linear search for an already known iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
25101bb2a799a36be9f077ee2fc2dcf0df2b6efb |
|
20-Dec-2011 |
Jakub Staszak <kubastaszak@gmail.com> |
Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
2d24e2a396a1d211baaeedf32148a3b657240170 |
|
20-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
340d596509129de8c3fa9dbe4184a2b148b78757 |
|
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Under the hood, MBPI is doing a linear scan of every successor every time it is queried to compute the probability of a single successor. This makes computing the probability of every successor of a block in sequence... really really slow. ;] This switches to a linear walk of the successors rather than a quadratic one. One of several quadratic behaviors slowing this pass down. I'm not really thrilled with moving the sum code into the public interface of MBPI, but I don't (at the moment) have ideas for a better interface. My direction I'm thinking in for a better interface is to have MBPI actually retain much more state and make *all* of these queries cheap. That's a lot of work, and would require invasive changes. Until then, this seems like the least bad (ie, least quadratic) solution. Suggestions welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
c4e15628255b24cb17138404abe3d94bde811e25 |
|
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Reuse the logic in getEdgeProbability within getHotSucc in order to correctly handle blocks whose successor weights sum to more than UINT32_MAX. This is slightly less efficient, but the entire thing is already linear on the number of successors. Calling it within any hot routine is a mistake, and indeed no one is calling it. It also simplifies the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
2770c141856eefda6a192622bf5fd5b06bef4963 |
|
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Fix an overflow bug in MachineBranchProbabilityInfo. This pass relied on the sum of the edge weights not overflowing uint32, and crashed when they did. This is generally safe as BranchProbabilityInfo tries to provide this guarantee. However, the CFG can get modified during codegen in a way that grows the *sum* of the edge weights. This doesn't seem unreasonable (imagine just adding more blocks all with the default weight of 16), but it is hard to come up with a case that actually triggers 32-bit overflow. Fortuately, the single-source GCC build is good at this. The solution isn't very pretty, but its no worse than the previous code. We're already summing all of the edge weights on each query, we can sum them, check for an overflow, compute a scale, and sum them again. I've included a *greatly* reduced test case out of the GCC source that triggers it. It's a pretty lame test, as it clearly is just barely triggering the overflow. I'd like to have something that is much more definitive, but I don't understand the fundamental pattern that triggers an explosion in the edge weight sums. The buggy code is duplicated within this file. I'll colapse them into a single implementation in a subsequent commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
883f2fab47ca2f7f6efebb10a5e859f5804bed07 |
|
14-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add a cautionary note to this API. It was not at all obvious to me how expensive the most useful interface to this analysis is. Fun story -- it's also not correct. That's getting fixed in another patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
|
687dc24e1d17d3d8bb4f4f095929db16f65f3067 |
|
10-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
- Make BranchProbability constructor public. - Add getCompl() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.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/CodeGen/MachineBranchProbabilityInfo.h
|