<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
<br>
<div class="moz-cite-prefix">On 12/8/17 5:03 PM, Duncan P. N. Exon
Smith wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CF136B90-D2AF-4577-98D1-3C37E6AFD710@apple.com">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Dec 8, 2017, at 15:38, Jonathan Roelofs <<a
href="mailto:jonathan@codesourcery.com" class=""
moz-do-not-send="true">jonathan@codesourcery.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class=""><br style="font-family: Menlo-Regular;
font-size: 11px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<br style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; float: none; display:
inline !important;" class="">On 12/8/17 3:42 PM, Duncan P.
N. Exon Smith via llvm-commits wrote:</span><br
style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<blockquote type="cite" style="font-family: Menlo-Regular;
font-size: 11px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px;" class="">Author:
dexonsmith<br class="">
Date: Fri Dec 8 14:42:43 2017<br class="">
New Revision: 320208<br class="">
URL: <a
href="http://llvm.org/viewvc/llvm-project?rev=320208&view=rev"
class="" moz-do-not-send="true">http://llvm.org/viewvc/llvm-project?rev=320208&view=rev</a><br
class="">
Log:<br class="">
Revert part of "Cleanup some GraphTraits iteration code"<br
class="">
This reverts part of r300656, which caused a regression in<br
class="">
propagateMassToSuccessors by counting edges n^2 times,
where n is the<br class="">
number of edges from the source basic block to the same
successor basic<br class="">
block. The result was both incorrect and very slow to
compute for large<br class="">
values of n (e.g. switches with multiple cases that go to
the same basic<br class="">
block).<br class="">
Patch by Andrew Scheidecker!<br class="">
Added:<br class="">
llvm/trunk/test/Analysis/BlockFrequencyInfo/redundant_edges.ll<br
class="">
Modified:<br class="">
llvm/trunk/include/llvm/Analysis/BlockFrequencyInfoImpl.h<br
class="">
Modified:
llvm/trunk/include/llvm/Analysis/BlockFrequencyInfoImpl.h<br
class="">
URL: <a
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/BlockFrequencyInfoImpl.h?rev=320208&r1=320207&r2=320208&view=diff"
class="" moz-do-not-send="true">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/BlockFrequencyInfoImpl.h?rev=320208&r1=320207&r2=320208&view=diff</a><br
class="">
==============================================================================<br
class="">
---
llvm/trunk/include/llvm/Analysis/BlockFrequencyInfoImpl.h
(original)<br class="">
+++
llvm/trunk/include/llvm/Analysis/BlockFrequencyInfoImpl.h
Fri Dec 8 14:42:43 2017<br class="">
@@ -1314,9 +1314,12 @@
BlockFrequencyInfoImpl<BT>::propagateMas<br class="">
return false;<br class="">
} else {<br class="">
const BlockT *BB = getBlock(Node);<br class="">
- for (const auto Succ : children<const BlockT
*>(BB))<br class="">
- if (!addToDist(Dist, OuterLoop, Node,
getNode(Succ),<br class="">
-
getWeightFromBranchProb(BPI->getEdgeProbability(BB,
Succ))))<br class="">
+ for (auto SI = GraphTraits<const BlockT
*>::child_begin(BB),<br class="">
+ SE = GraphTraits<const BlockT
*>::child_end(BB);<br class="">
+ SI != SE; ++SI)<br class="">
+ if (!addToDist(<br class="">
+ Dist, OuterLoop, Node, getNode(*SI),<br
class="">
+
getWeightFromBranchProb(BPI->getEdgeProbability(BB,
SI))))<br class="">
</blockquote>
<br style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<br style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; float: none; display:
inline !important;" class="">Where was the bug here, does
children() recompute more or something?</span><br
style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
</div>
</blockquote>
<div><br class="">
</div>
<div>It would have helped if I'd linked to the review in the
commit message:</div>
<div><a href="https://reviews.llvm.org/D40891" class=""
moz-do-not-send="true">https://reviews.llvm.org/D40891</a></div>
<div><br class="">
</div>
<div>- `getEdgeProbability(BasicBlock&, edge_iterator)`
returns the probability of a single edge.</div>
<div>- `getEdgeProbability(BasicBlock&, BasicBlock&)`
returns the sum of the edges between blocks.</div>
<div><br class="">
</div>
</div>
</blockquote>
<br>
ahhh, thanks!<br>
<br>
<br>
Jon<br>
<br>
<blockquote type="cite"
cite="mid:CF136B90-D2AF-4577-98D1-3C37E6AFD710@apple.com">
<div><br class="">
<blockquote type="cite" class="">
<div class=""><br style="font-family: Menlo-Regular;
font-size: 11px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<br style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; float: none; display:
inline !important;" class="">Jon</span><br
style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<br style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<blockquote type="cite" style="font-family: Menlo-Regular;
font-size: 11px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px;" class=""> //
Irreducible backedge.<br class="">
return false;<br class="">
}<br class="">
Added:
llvm/trunk/test/Analysis/BlockFrequencyInfo/redundant_edges.ll<br
class="">
URL: <a
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/BlockFrequencyInfo/redundant_edges.ll?rev=320208&view=auto"
class="" moz-do-not-send="true">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/BlockFrequencyInfo/redundant_edges.ll?rev=320208&view=auto</a><br
class="">
==============================================================================<br
class="">
---
llvm/trunk/test/Analysis/BlockFrequencyInfo/redundant_edges.ll
(added)<br class="">
+++
llvm/trunk/test/Analysis/BlockFrequencyInfo/redundant_edges.ll
Fri Dec 8 14:42:43 2017<br class="">
@@ -0,0 +1,22 @@<br class="">
+; RUN: opt < %s -analyze -block-freq | FileCheck %s<br
class="">
+; RUN: opt < %s -analyze -lazy-block-freq | FileCheck
%s<br class="">
+; RUN: opt < %s -passes='print<block-freq>'
-disable-output 2>&1 | FileCheck %s<br class="">
+<br class="">
+define void @test1() {<br class="">
+; CHECK-LABEL: Printing analysis {{.*}} for function
'test1':<br class="">
+; CHECK-NEXT: block-frequency-info: test1<br class="">
+; CHECK-NEXT: entry: float = 1.0, int = [[ENTRY:[0-9]+]]<br
class="">
+entry:<br class="">
+ br label %loop<br class="">
+<br class="">
+; CHECK-NEXT: loop: float = 32.0<br class="">
+loop:<br class="">
+ switch i32 undef, label %loop [<br class="">
+ i32 0, label %return<br class="">
+ i32 1, label %return<br class="">
+ ]<br class="">
+<br class="">
+; CHECK-NEXT: return: float = 1.0<br class="">
+return:<br class="">
+ ret void<br class="">
+}<br class="">
_______________________________________________<br
class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@lists.llvm.org" class=""
moz-do-not-send="true">llvm-commits@lists.llvm.org</a><br
class="">
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="">
</blockquote>
<br style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; float: none; display:
inline !important;" class="">--<span
class="Apple-converted-space"> </span></span><br
style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; float: none; display:
inline !important;" class="">Jon Roelofs</span><br
style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<a href="mailto:jonathan@codesourcery.com"
style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing:
0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px;" class=""
moz-do-not-send="true">jonathan@codesourcery.com</a><br
style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px;" class="">
<span style="font-family: Menlo-Regular; font-size: 11px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; text-align:
start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; float: none; display:
inline !important;" class="">CodeSourcery / Mentor
Embedded / Siemens</span></div>
</blockquote>
</div>
<br class="">
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Jon Roelofs
<a class="moz-txt-link-abbreviated" href="mailto:jonathan@codesourcery.com">jonathan@codesourcery.com</a>
CodeSourcery / Mentor Embedded / Siemens</pre>
</body>
</html>