1 2<html> 3<title>or.h</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 TestH(int *res, int *c, int *d, int *p, int n) {</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> int i;</pre></div></td> 51</tr> 52 53<tr> 54<td><a name="L3">3</a></td> 55<td></td> 56<td></td> 57<td><div class="highlight"><pre></pre></div></td> 58</tr> 59 60<tr> 61<td><a name="L4">4</a></td> 62<td></td> 63<td></td> 64<td><div class="highlight"><pre>#pragma clang loop vectorize(assume_safety)</pre></div></td> 65</tr> 66 67<tr> 68<td><a name="L5">5</a></td> 69<td></td> 70<td></td> 71<td><div class="highlight"><pre> for (i = 0; i < 1600; i++) {</pre></div></td> 72</tr> 73 74<tr> 75<td></td> 76<td></td> 77<td class="column-entry-green">loop-vectorize</td> 78<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> vectorized loop (vectorization width: 4, interleaved count: 2) </span></td> 79<td class="column-entry-yellow">TestH</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> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</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> }</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> for (i = 0; i < 16; i++) {</pre></div></td> 108</tr> 109 110<tr> 111<td></td> 112<td></td> 113<td class="column-entry-green">loop-unroll</td> 114<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> completely unrolled loop with 16 iterations </span></td> 115<td class="column-entry-yellow">TestH</td> 116</tr> 117 118<tr> 119<td><a name="L10">10</a></td> 120<td></td> 121<td></td> 122<td><div class="highlight"><pre> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td> 123</tr> 124 125<tr> 126<td><a name="L11">11</a></td> 127<td></td> 128<td></td> 129<td><div class="highlight"><pre> }</pre></div></td> 130</tr> 131 132<tr> 133<td><a name="L12">12</a></td> 134<td></td> 135<td></td> 136<td><div class="highlight"><pre></pre></div></td> 137</tr> 138 139<tr> 140<td><a name="L13">13</a></td> 141<td></td> 142<td></td> 143<td><div class="highlight"><pre> foo();</pre></div></td> 144</tr> 145 146<tr> 147<td></td> 148<td></td> 149<td class="column-entry-white">inline</td> 150<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412) </span></td> 151<td class="column-entry-yellow">TestH</td> 152</tr> 153 154<tr> 155<td></td> 156<td></td> 157<td class="column-entry-green">inline</td> 158<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into TestH </span></td> 159<td class="column-entry-yellow">TestH</td> 160</tr> 161 162<tr> 163<td><a name="L14">14</a></td> 164<td></td> 165<td></td> 166<td><div class="highlight"><pre></pre></div></td> 167</tr> 168 169<tr> 170<td><a name="L15">15</a></td> 171<td></td> 172<td></td> 173<td><div class="highlight"><pre> foo(); bar(); foo();</pre></div></td> 174</tr> 175 176<tr> 177<td></td> 178<td></td> 179<td class="column-entry-red">inline</td> 180<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> 181<td class="column-entry-yellow">TestH</td> 182</tr> 183 184<tr> 185<td></td> 186<td></td> 187<td class="column-entry-white">inline</td> 188<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412) </span></td> 189<td class="column-entry-yellow">TestH</td> 190</tr> 191 192<tr> 193<td></td> 194<td></td> 195<td class="column-entry-green">inline</td> 196<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into TestH </span></td> 197<td class="column-entry-yellow">TestH</td> 198</tr> 199 200<tr> 201<td></td> 202<td></td> 203<td class="column-entry-white">inline</td> 204<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412) </span></td> 205<td class="column-entry-yellow">TestH</td> 206</tr> 207 208<tr> 209<td></td> 210<td></td> 211<td class="column-entry-green">inline</td> 212<td><pre style="display:inline"> </pre><span class="column-entry-yellow"> foo inlined into TestH </span></td> 213<td class="column-entry-yellow">TestH</td> 214</tr> 215 216<tr> 217<td><a name="L16">16</a></td> 218<td></td> 219<td></td> 220<td><div class="highlight"><pre>}</pre></div></td> 221</tr> 222 223<tr> 224<td><a name="L17">17</a></td> 225<td></td> 226<td></td> 227<td><div class="highlight"><pre></pre></div></td> 228</tr> 229 230</tbody> 231</table> 232</body> 233</html> 234