<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><span class="vcard"><a class="email" href="mailto:t_arceri@yahoo.com.au" title="Timothy Arceri <t_arceri@yahoo.com.au>"> <span class="fn">Timothy Arceri</span></a>
</span> changed
<a class="bz_bug_link
bz_status_NEW "
title="NEW - [GLSL] lower_jumps with continue-statements in for-loops prevents loop unrolling"
href="https://bugs.freedesktop.org/show_bug.cgi?id=32211">bug 32211</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Assignee</td>
<td>t_arceri@yahoo.com.au
</td>
<td>mesa-dev@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [GLSL] lower_jumps with continue-statements in for-loops prevents loop unrolling"
href="https://bugs.freedesktop.org/show_bug.cgi?id=32211#c11">Comment # 11</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [GLSL] lower_jumps with continue-statements in for-loops prevents loop unrolling"
href="https://bugs.freedesktop.org/show_bug.cgi?id=32211">bug 32211</a>
from <span class="vcard"><a class="email" href="mailto:t_arceri@yahoo.com.au" title="Timothy Arceri <t_arceri@yahoo.com.au>"> <span class="fn">Timothy Arceri</span></a>
</span></b>
<pre>With NIR we end up with :
loop {
block block_1:
/* preds: block_0 block_5 block_7 */
vec1 32 ssa_8 = phi block_0: ssa_3, block_5: ssa_4, block_7:
ssa_19
vec1 32 ssa_9 = phi block_0: ssa_2, block_5: ssa_17, block_7:
ssa_4
vec1 32 ssa_10 = phi block_0: ssa_1, block_5: ssa_4, block_7:
ssa_4
vec1 32 ssa_11 = phi block_0: ssa_0, block_5: ssa_4, block_7:
ssa_4
vec1 32 ssa_12 = phi block_0: ssa_4, block_5: ssa_16, block_7:
ssa_18
vec4 32 ssa_13 = vec4 ssa_8, ssa_9, ssa_10, ssa_11
vec1 32 ssa_14 = ige ssa_12, ssa_5
/* succs: block_2 block_3 */
if ssa_14 {
block block_2:
/* preds: block_1 */
break
/* succs: block_8 */
} else {
block block_3:
/* preds: block_1 */
/* succs: block_4 */
}
block block_4:
/* preds: block_3 */
vec1 32 ssa_15 = ilt ssa_6, ssa_12
/* succs: block_5 block_6 */
if ssa_15 {
block block_5:
/* preds: block_4 */
vec1 32 ssa_16 = iadd ssa_12, ssa_7
vec1 32 ssa_17 = load_const (0x3f800000 /* 1.000000 */)
continue
/* succs: block_1 */
} else {
block block_6:
/* preds: block_4 */
/* succs: block_7 */
}
block block_7:
/* preds: block_6 */
vec1 32 ssa_18 = iadd ssa_12, ssa_7
vec1 32 ssa_19 = load_const (0x3f800000 /* 1.000000 */)
/* succs: block_1 */
}
So all we need to do is move everything after the if into the else block and
remove the continue. Removing myself as assignee, this would probably be a good
beginners task.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>