1 2<html> 3<title>or.c</title> 4<meta charset="utf-8" /> 5<head> 6<link rel='stylesheet' type='text/css' href='style.css'> 7<script type="text/javascript"> 8/* Simple helper to show/hide the expanded message of a remark. */ 9function toggleExpandedMessage(e) { 10 var FullTextElems = e.parentElement.parentElement.getElementsByClassName("full-info"); 11 if (!FullTextElems || FullTextElems.length < 1) { 12 return false; 13 } 14 var FullText = FullTextElems[0]; 15 if (FullText.style.display == 'none') { 16 e.innerHTML = '-'; 17 FullText.style.display = 'block'; 18 } else { 19 e.innerHTML = '+'; 20 FullText.style.display = 'none'; 21 } 22} 23</script> 24</head> 25<body> 26<div class="centered"> 27<table class="source"> 28<thead> 29<tr> 30<th style="width: 2%">Line</td> 31<th style="width: 3%">Hotness</td> 32<th style="width: 10%">Optimization</td> 33<th style="width: 70%">Source</td> 34<th style="width: 15%">Inline Context</td> 35</tr> 36</thead> 37<tbody> 38 39<tr> 40<td><a name="L1">1</a></td> 41<td></td> 42<td></td> 43<td><div class="highlight"><pre>void bar();</pre></div></td> 44</tr> 45 46<tr> 47<td><a name="L2">2</a></td> 48<td></td> 49<td></td> 50<td><div class="highlight"><pre>void foo() { bar(); }</pre></div></td> 51</tr> 52 53<tr> 54<td></td> 55<td></td> 56<td class="column-entry-red">inline</td> 57<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> 58<td class="column-entry-yellow">foo</td> 59</tr> 60 61<tr> 62<td><a name="L3">3</a></td> 63<td></td> 64<td></td> 65<td><div class="highlight"><pre></pre></div></td> 66</tr> 67 68<tr> 69<td><a name="L4">4</a></td> 70<td></td> 71<td></td> 72<td><div class="highlight"><pre>#include "or.h"</pre></div></td> 73</tr> 74 75<tr> 76<td><a name="L5">5</a></td> 77<td></td> 78<td></td> 79<td><div class="highlight"><pre></pre></div></td> 80</tr> 81 82<tr> 83<td><a name="L6">6</a></td> 84<td></td> 85<td></td> 86<td><div class="highlight"><pre>void Test(int *res, int *c, int *d, int *p, int n) {</pre></div></td> 87</tr> 88 89<tr> 90<td><a name="L7">7</a></td> 91<td></td> 92<td></td> 93<td><div class="highlight"><pre> int i;</pre></div></td> 94</tr> 95 96<tr> 97<td><a name="L8">8</a></td> 98<td></td> 99<td></td> 100<td><div class="highlight"><pre></pre></div></td> 101</tr> 102 103<tr> 104<td><a name="L9">9</a></td> 105<td></td> 106<td></td> 107<td><div class="highlight"><pre>#pragma clang loop vectorize(assume_safety)</pre></div></td> 108</tr> 109 110<tr> 111<td><a name="L10">10</a></td> 112<td></td> 113<td></td> 114<td><div class="highlight"><pre> for (i = 0; i < 1600; i++) {</pre></div></td> 115</tr> 116 117<tr> 118<td></td> 119<td></td> 120<td class="column-entry-green">loop-vectorize</td> 121<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> vectorized loop (vectorization width: 4, interleaved count: 2) </span></td> 122<td class="column-entry-yellow">Test</td> 123</tr> 124 125<tr> 126<td></td> 127<td></td> 128<td class="column-entry-green">multiline</td> 129<td><pre style="display:inline"> </pre><span class="column-entry-yellow"><a style="text-decoration: none;" href="" onclick="toggleExpandedMessage(this); return false;">+</a> This is a remark with </span> 130<div class="full-info" style="display:none;"> 131 <div class="col-left"><pre style="display:inline"> </pre></div> 132 <div class="expanded col-left"><pre>multiple 133 lines 134</pre></div> 135</div></td> 136<td class="column-entry-yellow">Test</td> 137</tr> 138 139<tr> 140<td><a name="L11">11</a></td> 141<td></td> 142<td></td> 143<td><div class="highlight"><pre> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td> 144</tr> 145 146<tr> 147<td><a name="L12">12</a></td> 148<td></td> 149<td></td> 150<td><div class="highlight"><pre> }</pre></div></td> 151</tr> 152 153<tr> 154<td><a name="L13">13</a></td> 155<td></td> 156<td></td> 157<td><div class="highlight"><pre></pre></div></td> 158</tr> 159 160<tr> 161<td><a name="L14">14</a></td> 162<td></td> 163<td></td> 164<td><div class="highlight"><pre> for (i = 0; i < 16; i++) {</pre></div></td> 165</tr> 166 167<tr> 168<td></td> 169<td></td> 170<td class="column-entry-green">loop-unroll</td> 171<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> completely unrolled loop with 16 iterations </span></td> 172<td class="column-entry-yellow">Test</td> 173</tr> 174 175<tr> 176<td><a name="L15">15</a></td> 177<td></td> 178<td></td> 179<td><div class="highlight"><pre> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td> 180</tr> 181 182<tr> 183<td><a name="L16">16</a></td> 184<td></td> 185<td></td> 186<td><div class="highlight"><pre> }</pre></div></td> 187</tr> 188 189<tr> 190<td><a name="L17">17</a></td> 191<td></td> 192<td></td> 193<td><div class="highlight"><pre></pre></div></td> 194</tr> 195 196<tr> 197<td><a name="L18">18</a></td> 198<td></td> 199<td></td> 200<td><div class="highlight"><pre> foo();</pre></div></td> 201</tr> 202 203<tr> 204<td></td> 205<td></td> 206<td class="column-entry-white">inline</td> 207<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412) </span></td> 208<td class="column-entry-yellow">Test</td> 209</tr> 210 211<tr> 212<td></td> 213<td></td> 214<td class="column-entry-green">inline</td> 215<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into Test </span></td> 216<td class="column-entry-yellow">Test</td> 217</tr> 218 219<tr> 220<td><a name="L19">19</a></td> 221<td></td> 222<td></td> 223<td><div class="highlight"><pre></pre></div></td> 224</tr> 225 226<tr> 227<td><a name="L20">20</a></td> 228<td></td> 229<td></td> 230<td><div class="highlight"><pre> foo(); bar(); foo();</pre></div></td> 231</tr> 232 233<tr> 234<td></td> 235<td></td> 236<td class="column-entry-red">inline</td> 237<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> 238<td class="column-entry-yellow">Test</td> 239</tr> 240 241<tr> 242<td></td> 243<td></td> 244<td class="column-entry-white">inline</td> 245<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412) </span></td> 246<td class="column-entry-yellow">Test</td> 247</tr> 248 249<tr> 250<td></td> 251<td></td> 252<td class="column-entry-green">inline</td> 253<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into Test </span></td> 254<td class="column-entry-yellow">Test</td> 255</tr> 256 257<tr> 258<td></td> 259<td></td> 260<td class="column-entry-white">inline</td> 261<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412) </span></td> 262<td class="column-entry-yellow">Test</td> 263</tr> 264 265<tr> 266<td></td> 267<td></td> 268<td class="column-entry-green">inline</td> 269<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into Test </span></td> 270<td class="column-entry-yellow">Test</td> 271</tr> 272 273<tr> 274<td><a name="L21">21</a></td> 275<td></td> 276<td></td> 277<td><div class="highlight"><pre>}</pre></div></td> 278</tr> 279 280<tr> 281<td><a name="L22">22</a></td> 282<td></td> 283<td></td> 284<td><div class="highlight"><pre></pre></div></td> 285</tr> 286 287</tbody> 288</table> 289</body> 290</html> 291