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