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 bar();</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>void foo() { bar(); }</pre></div></td> 32</tr> 33 34<tr> 35<td></td> 36<td></td> 37<td class="column-entry-red">inline</td> 38<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> bar will not be inlined into foo because its definition is unavailable </span></td> 39<td class="column-entry-yellow">foo</td> 40</tr> 41 42<tr> 43<td><a name="L3">3</a></td> 44<td></td> 45<td></td> 46<td><div class="highlight"><pre></pre></div></td> 47</tr> 48 49<tr> 50<td><a name="L4">4</a></td> 51<td></td> 52<td></td> 53<td><div class="highlight"><pre>#include "or.h"</pre></div></td> 54</tr> 55 56<tr> 57<td><a name="L5">5</a></td> 58<td></td> 59<td></td> 60<td><div class="highlight"><pre></pre></div></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>void Test(int *res, int *c, int *d, int *p, int n) {</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> int i;</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>#pragma clang loop vectorize(assume_safety)</pre></div></td> 89</tr> 90 91<tr> 92<td><a name="L10">10</a></td> 93<td></td> 94<td></td> 95<td><div class="highlight"><pre> for (i = 0; i < 1600; i++) {</pre></div></td> 96</tr> 97 98<tr> 99<td></td> 100<td></td> 101<td class="column-entry-green">loop-vectorize</td> 102<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> vectorized loop (vectorization width: 4, interleaved count: 2) </span></td> 103<td class="column-entry-yellow">Test</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> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</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></pre></div></td> 125</tr> 126 127<tr> 128<td><a name="L14">14</a></td> 129<td></td> 130<td></td> 131<td><div class="highlight"><pre> for (i = 0; i < 16; i++) {</pre></div></td> 132</tr> 133 134<tr> 135<td></td> 136<td></td> 137<td class="column-entry-green">loop-unroll</td> 138<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> completely unrolled loop with 16 iterations </span></td> 139<td class="column-entry-yellow">Test</td> 140</tr> 141 142<tr> 143<td><a name="L15">15</a></td> 144<td></td> 145<td></td> 146<td><div class="highlight"><pre> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td> 147</tr> 148 149<tr> 150<td><a name="L16">16</a></td> 151<td></td> 152<td></td> 153<td><div class="highlight"><pre> }</pre></div></td> 154</tr> 155 156<tr> 157<td><a name="L17">17</a></td> 158<td></td> 159<td></td> 160<td><div class="highlight"><pre></pre></div></td> 161</tr> 162 163<tr> 164<td><a name="L18">18</a></td> 165<td></td> 166<td></td> 167<td><div class="highlight"><pre> foo();</pre></div></td> 168</tr> 169 170<tr> 171<td></td> 172<td></td> 173<td class="column-entry-white">inline</td> 174<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412) </span></td> 175<td class="column-entry-yellow">Test</td> 176</tr> 177 178<tr> 179<td></td> 180<td></td> 181<td class="column-entry-green">inline</td> 182<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into Test </span></td> 183<td class="column-entry-yellow">Test</td> 184</tr> 185 186<tr> 187<td><a name="L19">19</a></td> 188<td></td> 189<td></td> 190<td><div class="highlight"><pre></pre></div></td> 191</tr> 192 193<tr> 194<td><a name="L20">20</a></td> 195<td></td> 196<td></td> 197<td><div class="highlight"><pre> foo(); bar(); foo();</pre></div></td> 198</tr> 199 200<tr> 201<td></td> 202<td></td> 203<td class="column-entry-red">inline</td> 204<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> bar will not be inlined into Test because its definition is unavailable </span></td> 205<td class="column-entry-yellow">Test</td> 206</tr> 207 208<tr> 209<td></td> 210<td></td> 211<td class="column-entry-white">inline</td> 212<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412) </span></td> 213<td class="column-entry-yellow">Test</td> 214</tr> 215 216<tr> 217<td></td> 218<td></td> 219<td class="column-entry-green">inline</td> 220<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into Test </span></td> 221<td class="column-entry-yellow">Test</td> 222</tr> 223 224<tr> 225<td></td> 226<td></td> 227<td class="column-entry-white">inline</td> 228<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412) </span></td> 229<td class="column-entry-yellow">Test</td> 230</tr> 231 232<tr> 233<td></td> 234<td></td> 235<td class="column-entry-green">inline</td> 236<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into Test </span></td> 237<td class="column-entry-yellow">Test</td> 238</tr> 239 240<tr> 241<td><a name="L21">21</a></td> 242<td></td> 243<td></td> 244<td><div class="highlight"><pre>}</pre></div></td> 245</tr> 246 247<tr> 248<td><a name="L22">22</a></td> 249<td></td> 250<td></td> 251<td><div class="highlight"><pre></pre></div></td> 252</tr> 253 254</tbody> 255</table> 256</body> 257</html> 258