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