1 2<html> 3<meta charset="utf-8" /> 4<head> 5<link rel='stylesheet' type='text/css' href='style.css'> 6</head> 7<body> 8<div class="centered"> 9<table class="source"> 10<thead> 11<tr> 12<th style="width: 2%">Line</td> 13<th style="width: 3%">Hotness</td> 14<th style="width: 10%">Optimization</td> 15<th style="width: 70%">Source</td> 16<th style="width: 15%">Inline Context</td> 17</tr> 18</thead> 19<tbody> 20 21<tr> 22<td><a name="L1">1</a></td> 23<td></td> 24<td></td> 25<td><div class="highlight"><pre>void TestH(int *res, int *c, int *d, int *p, int n) {</pre></div></td> 26</tr> 27 28<tr> 29<td><a name="L2">2</a></td> 30<td></td> 31<td></td> 32<td><div class="highlight"><pre> int i;</pre></div></td> 33</tr> 34 35<tr> 36<td><a name="L3">3</a></td> 37<td></td> 38<td></td> 39<td><div class="highlight"><pre></pre></div></td> 40</tr> 41 42<tr> 43<td><a name="L4">4</a></td> 44<td></td> 45<td></td> 46<td><div class="highlight"><pre>#pragma clang loop vectorize(assume_safety)</pre></div></td> 47</tr> 48 49<tr> 50<td><a name="L5">5</a></td> 51<td></td> 52<td></td> 53<td><div class="highlight"><pre> for (i = 0; i < 1600; i++) {</pre></div></td> 54</tr> 55 56<tr> 57<td></td> 58<td></td> 59<td class="column-entry-green">loop-vectorize</td> 60<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> vectorized loop (vectorization width: 4, interleaved count: 2) </span></td> 61<td class="column-entry-yellow">TestH</td> 62</tr> 63 64<tr> 65<td><a name="L6">6</a></td> 66<td></td> 67<td></td> 68<td><div class="highlight"><pre> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td> 69</tr> 70 71<tr> 72<td><a name="L7">7</a></td> 73<td></td> 74<td></td> 75<td><div class="highlight"><pre> }</pre></div></td> 76</tr> 77 78<tr> 79<td><a name="L8">8</a></td> 80<td></td> 81<td></td> 82<td><div class="highlight"><pre></pre></div></td> 83</tr> 84 85<tr> 86<td><a name="L9">9</a></td> 87<td></td> 88<td></td> 89<td><div class="highlight"><pre> for (i = 0; i < 16; i++) {</pre></div></td> 90</tr> 91 92<tr> 93<td></td> 94<td></td> 95<td class="column-entry-green">loop-unroll</td> 96<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> completely unrolled loop with 16 iterations </span></td> 97<td class="column-entry-yellow">TestH</td> 98</tr> 99 100<tr> 101<td><a name="L10">10</a></td> 102<td></td> 103<td></td> 104<td><div class="highlight"><pre> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td> 105</tr> 106 107<tr> 108<td><a name="L11">11</a></td> 109<td></td> 110<td></td> 111<td><div class="highlight"><pre> }</pre></div></td> 112</tr> 113 114<tr> 115<td><a name="L12">12</a></td> 116<td></td> 117<td></td> 118<td><div class="highlight"><pre></pre></div></td> 119</tr> 120 121<tr> 122<td><a name="L13">13</a></td> 123<td></td> 124<td></td> 125<td><div class="highlight"><pre> foo();</pre></div></td> 126</tr> 127 128<tr> 129<td></td> 130<td></td> 131<td class="column-entry-white">inline</td> 132<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412) </span></td> 133<td class="column-entry-yellow">TestH</td> 134</tr> 135 136<tr> 137<td></td> 138<td></td> 139<td class="column-entry-green">inline</td> 140<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into TestH </span></td> 141<td class="column-entry-yellow">TestH</td> 142</tr> 143 144<tr> 145<td><a name="L14">14</a></td> 146<td></td> 147<td></td> 148<td><div class="highlight"><pre></pre></div></td> 149</tr> 150 151<tr> 152<td><a name="L15">15</a></td> 153<td></td> 154<td></td> 155<td><div class="highlight"><pre> foo(); bar(); foo();</pre></div></td> 156</tr> 157 158<tr> 159<td></td> 160<td></td> 161<td class="column-entry-red">inline</td> 162<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> bar will not be inlined into TestH because its definition is unavailable </span></td> 163<td class="column-entry-yellow">TestH</td> 164</tr> 165 166<tr> 167<td></td> 168<td></td> 169<td class="column-entry-white">inline</td> 170<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412) </span></td> 171<td class="column-entry-yellow">TestH</td> 172</tr> 173 174<tr> 175<td></td> 176<td></td> 177<td class="column-entry-green">inline</td> 178<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into TestH </span></td> 179<td class="column-entry-yellow">TestH</td> 180</tr> 181 182<tr> 183<td></td> 184<td></td> 185<td class="column-entry-white">inline</td> 186<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412) </span></td> 187<td class="column-entry-yellow">TestH</td> 188</tr> 189 190<tr> 191<td></td> 192<td></td> 193<td class="column-entry-green">inline</td> 194<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into TestH </span></td> 195<td class="column-entry-yellow">TestH</td> 196</tr> 197 198<tr> 199<td><a name="L16">16</a></td> 200<td></td> 201<td></td> 202<td><div class="highlight"><pre>}</pre></div></td> 203</tr> 204 205<tr> 206<td><a name="L17">17</a></td> 207<td></td> 208<td></td> 209<td><div class="highlight"><pre></pre></div></td> 210</tr> 211 212</tbody> 213</table> 214</body> 215</html> 216