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