4 <meta charset=
"utf-8" />
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. */
9 function toggleExpandedMessage(e) {
10 var FullTextElems = e.parentElement.parentElement.getElementsByClassName("full-info");
11 if (!FullTextElems || FullTextElems.length < 1) {
14 var FullText = FullTextElems[0];
15 if (FullText.style.display == 'none') {
17 FullText.style.display = 'block';
20 FullText.style.display = 'none';
26 <div class="centered">
27 <table class="source">
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>
40 <td><a name="L1">1</a></td>
43 <td><div class="highlight"><pre>void bar();</pre></div></td>
47 <td><a name="L2">2</a></td>
50 <td><div class="highlight"><pre>void foo() { bar(); }</pre></div></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>
62 <td><a name="L3">3</a></td>
65 <td><div class="highlight"><pre></pre></div></td>
69 <td><a name="L4">4</a></td>
72 <td><div class="highlight"><pre>#include "or.h"</pre></div></td>
76 <td><a name="L5">5</a></td>
79 <td><div class="highlight"><pre></pre></div></td>
83 <td><a name="L6">6</a></td>
86 <td><div class="highlight"><pre>void Test(int *res, int *c, int *d, int *p, int n) {</pre></div></td>
90 <td><a name="L7">7</a></td>
93 <td><div class="highlight"><pre> int i;</pre></div></td>
97 <td><a name="L8">8</a></td>
100 <td><div class="highlight"><pre></pre></div></td>
104 <td><a name="L9">9</a></td>
107 <td><div class="highlight"><pre>#pragma clang loop vectorize(assume_safety)</pre></div></td>
111 <td><a name="L10">10</a></td>
114 <td><div class="highlight"><pre> for (i = 0; i < 1600; i++) {</pre></div></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>
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
136 <td class="column-entry-yellow">Test</td>
140 <td><a name="L11">11</a></td>
143 <td><div class="highlight"><pre> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td>
147 <td><a name="L12">12</a></td>
150 <td><div class="highlight"><pre> }</pre></div></td>
154 <td><a name="L13">13</a></td>
157 <td><div class="highlight"><pre></pre></div></td>
161 <td><a name="L14">14</a></td>
164 <td><div class="highlight"><pre> for (i = 0; i < 16; i++) {</pre></div></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>
176 <td><a name="L15">15</a></td>
179 <td><div class="highlight"><pre> res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td>
183 <td><a name="L16">16</a></td>
186 <td><div class="highlight"><pre> }</pre></div></td>
190 <td><a name="L17">17</a></td>
193 <td><div class="highlight"><pre></pre></div></td>
197 <td><a name="L18">18</a></td>
200 <td><div class="highlight"><pre> foo();</pre></div></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>
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>
220 <td><a name="L19">19</a></td>
223 <td><div class="highlight"><pre></pre></div></td>
227 <td><a name="L20">20</a></td>
230 <td><div class="highlight"><pre> foo(); bar(); foo();</pre></div></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>
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>
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>
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>
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>
274 <td><a name="L21">21</a></td>
277 <td><div class="highlight"><pre>}</pre></div></td>
281 <td><a name="L22">22</a></td>
284 <td><div class="highlight"><pre></pre></div></td>