195e0c5fcSAdam Nemet
295e0c5fcSAdam Nemet<html>
3f7778892SAdam Nemet<title>or.c</title>
4f19d3cd4SAdam Nemet<meta charset="utf-8" />
595e0c5fcSAdam Nemet<head>
695e0c5fcSAdam Nemet<link rel='stylesheet' type='text/css' href='style.css'>
7*fd7ee479SFlorian Hahn<script type="text/javascript">
8*fd7ee479SFlorian Hahn/* Simple helper to show/hide the expanded message of a remark. */
9*fd7ee479SFlorian Hahnfunction toggleExpandedMessage(e) {
10*fd7ee479SFlorian Hahn  var FullTextElems = e.parentElement.parentElement.getElementsByClassName("full-info");
11*fd7ee479SFlorian Hahn  if (!FullTextElems || FullTextElems.length < 1) {
12*fd7ee479SFlorian Hahn      return false;
13*fd7ee479SFlorian Hahn  }
14*fd7ee479SFlorian Hahn  var FullText = FullTextElems[0];
15*fd7ee479SFlorian Hahn  if (FullText.style.display == 'none') {
16*fd7ee479SFlorian Hahn    e.innerHTML = '-';
17*fd7ee479SFlorian Hahn    FullText.style.display = 'block';
18*fd7ee479SFlorian Hahn  } else {
19*fd7ee479SFlorian Hahn    e.innerHTML = '+';
20*fd7ee479SFlorian Hahn    FullText.style.display = 'none';
21*fd7ee479SFlorian Hahn  }
22*fd7ee479SFlorian Hahn}
23*fd7ee479SFlorian Hahn</script>
2495e0c5fcSAdam Nemet</head>
2595e0c5fcSAdam Nemet<body>
2695e0c5fcSAdam Nemet<div class="centered">
2795e0c5fcSAdam Nemet<table class="source">
2895e0c5fcSAdam Nemet<thead>
2995e0c5fcSAdam Nemet<tr>
3095e0c5fcSAdam Nemet<th style="width: 2%">Line</td>
3195e0c5fcSAdam Nemet<th style="width: 3%">Hotness</td>
3295e0c5fcSAdam Nemet<th style="width: 10%">Optimization</td>
3395e0c5fcSAdam Nemet<th style="width: 70%">Source</td>
3495e0c5fcSAdam Nemet<th style="width: 15%">Inline Context</td>
3595e0c5fcSAdam Nemet</tr>
3695e0c5fcSAdam Nemet</thead>
3795e0c5fcSAdam Nemet<tbody>
3895e0c5fcSAdam Nemet
3995e0c5fcSAdam Nemet<tr>
4095e0c5fcSAdam Nemet<td><a name="L1">1</a></td>
4195e0c5fcSAdam Nemet<td></td>
4295e0c5fcSAdam Nemet<td></td>
4395e0c5fcSAdam Nemet<td><div class="highlight"><pre>void bar();</pre></div></td>
4495e0c5fcSAdam Nemet</tr>
4595e0c5fcSAdam Nemet
4695e0c5fcSAdam Nemet<tr>
4795e0c5fcSAdam Nemet<td><a name="L2">2</a></td>
4895e0c5fcSAdam Nemet<td></td>
4995e0c5fcSAdam Nemet<td></td>
5095e0c5fcSAdam Nemet<td><div class="highlight"><pre>void foo() { bar(); }</pre></div></td>
5195e0c5fcSAdam Nemet</tr>
5295e0c5fcSAdam Nemet
5395e0c5fcSAdam Nemet<tr>
5495e0c5fcSAdam Nemet<td></td>
5595e0c5fcSAdam Nemet<td></td>
5695e0c5fcSAdam Nemet<td class="column-entry-red">inline</td>
5795e0c5fcSAdam Nemet<td><pre style="display:inline">             </pre><span class="column-entry-yellow"> bar will not be inlined into foo because its definition is unavailable&nbsp;</span></td>
5895e0c5fcSAdam Nemet<td class="column-entry-yellow">foo</td>
5995e0c5fcSAdam Nemet</tr>
6095e0c5fcSAdam Nemet
6195e0c5fcSAdam Nemet<tr>
6295e0c5fcSAdam Nemet<td><a name="L3">3</a></td>
6395e0c5fcSAdam Nemet<td></td>
6495e0c5fcSAdam Nemet<td></td>
6595e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
6695e0c5fcSAdam Nemet</tr>
6795e0c5fcSAdam Nemet
6895e0c5fcSAdam Nemet<tr>
6995e0c5fcSAdam Nemet<td><a name="L4">4</a></td>
7095e0c5fcSAdam Nemet<td></td>
7195e0c5fcSAdam Nemet<td></td>
7295e0c5fcSAdam Nemet<td><div class="highlight"><pre>#include "or.h"</pre></div></td>
7395e0c5fcSAdam Nemet</tr>
7495e0c5fcSAdam Nemet
7595e0c5fcSAdam Nemet<tr>
7695e0c5fcSAdam Nemet<td><a name="L5">5</a></td>
7795e0c5fcSAdam Nemet<td></td>
7895e0c5fcSAdam Nemet<td></td>
7995e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
8095e0c5fcSAdam Nemet</tr>
8195e0c5fcSAdam Nemet
8295e0c5fcSAdam Nemet<tr>
8395e0c5fcSAdam Nemet<td><a name="L6">6</a></td>
8495e0c5fcSAdam Nemet<td></td>
8595e0c5fcSAdam Nemet<td></td>
8695e0c5fcSAdam Nemet<td><div class="highlight"><pre>void Test(int *res, int *c, int *d, int *p, int n) {</pre></div></td>
8795e0c5fcSAdam Nemet</tr>
8895e0c5fcSAdam Nemet
8995e0c5fcSAdam Nemet<tr>
9095e0c5fcSAdam Nemet<td><a name="L7">7</a></td>
9195e0c5fcSAdam Nemet<td></td>
9295e0c5fcSAdam Nemet<td></td>
9395e0c5fcSAdam Nemet<td><div class="highlight"><pre>  int i;</pre></div></td>
9495e0c5fcSAdam Nemet</tr>
9595e0c5fcSAdam Nemet
9695e0c5fcSAdam Nemet<tr>
9795e0c5fcSAdam Nemet<td><a name="L8">8</a></td>
9895e0c5fcSAdam Nemet<td></td>
9995e0c5fcSAdam Nemet<td></td>
10095e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
10195e0c5fcSAdam Nemet</tr>
10295e0c5fcSAdam Nemet
10395e0c5fcSAdam Nemet<tr>
10495e0c5fcSAdam Nemet<td><a name="L9">9</a></td>
10595e0c5fcSAdam Nemet<td></td>
10695e0c5fcSAdam Nemet<td></td>
10795e0c5fcSAdam Nemet<td><div class="highlight"><pre>#pragma clang loop vectorize(assume_safety)</pre></div></td>
10895e0c5fcSAdam Nemet</tr>
10995e0c5fcSAdam Nemet
11095e0c5fcSAdam Nemet<tr>
11195e0c5fcSAdam Nemet<td><a name="L10">10</a></td>
11295e0c5fcSAdam Nemet<td></td>
11395e0c5fcSAdam Nemet<td></td>
11495e0c5fcSAdam Nemet<td><div class="highlight"><pre>  for (i = 0; i < 1600; i++) {</pre></div></td>
11595e0c5fcSAdam Nemet</tr>
11695e0c5fcSAdam Nemet
11795e0c5fcSAdam Nemet<tr>
11895e0c5fcSAdam Nemet<td></td>
11995e0c5fcSAdam Nemet<td></td>
12095e0c5fcSAdam Nemet<td class="column-entry-green">loop-vectorize</td>
12195e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> vectorized loop (vectorization width: 4, interleaved count: 2)&nbsp;</span></td>
12295e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
12395e0c5fcSAdam Nemet</tr>
12495e0c5fcSAdam Nemet
12595e0c5fcSAdam Nemet<tr>
126*fd7ee479SFlorian Hahn<td></td>
127*fd7ee479SFlorian Hahn<td></td>
128*fd7ee479SFlorian Hahn<td class="column-entry-green">multiline</td>
129*fd7ee479SFlorian Hahn<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&nbsp;</span>
130*fd7ee479SFlorian Hahn<div class="full-info" style="display:none;">
131*fd7ee479SFlorian Hahn  <div class="col-left"><pre style="display:inline">  </pre></div>
132*fd7ee479SFlorian Hahn  <div class="expanded col-left"><pre>multiple
133*fd7ee479SFlorian Hahn  lines
134*fd7ee479SFlorian Hahn</pre></div>
135*fd7ee479SFlorian Hahn</div></td>
136*fd7ee479SFlorian Hahn<td class="column-entry-yellow">Test</td>
137*fd7ee479SFlorian Hahn</tr>
138*fd7ee479SFlorian Hahn
139*fd7ee479SFlorian Hahn<tr>
14095e0c5fcSAdam Nemet<td><a name="L11">11</a></td>
14195e0c5fcSAdam Nemet<td></td>
14295e0c5fcSAdam Nemet<td></td>
14395e0c5fcSAdam Nemet<td><div class="highlight"><pre>    res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td>
14495e0c5fcSAdam Nemet</tr>
14595e0c5fcSAdam Nemet
14695e0c5fcSAdam Nemet<tr>
14795e0c5fcSAdam Nemet<td><a name="L12">12</a></td>
14895e0c5fcSAdam Nemet<td></td>
14995e0c5fcSAdam Nemet<td></td>
15095e0c5fcSAdam Nemet<td><div class="highlight"><pre>  }</pre></div></td>
15195e0c5fcSAdam Nemet</tr>
15295e0c5fcSAdam Nemet
15395e0c5fcSAdam Nemet<tr>
15495e0c5fcSAdam Nemet<td><a name="L13">13</a></td>
15595e0c5fcSAdam Nemet<td></td>
15695e0c5fcSAdam Nemet<td></td>
15795e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
15895e0c5fcSAdam Nemet</tr>
15995e0c5fcSAdam Nemet
16095e0c5fcSAdam Nemet<tr>
16195e0c5fcSAdam Nemet<td><a name="L14">14</a></td>
16295e0c5fcSAdam Nemet<td></td>
16395e0c5fcSAdam Nemet<td></td>
16495e0c5fcSAdam Nemet<td><div class="highlight"><pre>  for (i = 0; i < 16; i++) {</pre></div></td>
16595e0c5fcSAdam Nemet</tr>
16695e0c5fcSAdam Nemet
16795e0c5fcSAdam Nemet<tr>
16895e0c5fcSAdam Nemet<td></td>
16995e0c5fcSAdam Nemet<td></td>
17095e0c5fcSAdam Nemet<td class="column-entry-green">loop-unroll</td>
17195e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> completely unrolled loop with 16 iterations&nbsp;</span></td>
17295e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
17395e0c5fcSAdam Nemet</tr>
17495e0c5fcSAdam Nemet
17595e0c5fcSAdam Nemet<tr>
17695e0c5fcSAdam Nemet<td><a name="L15">15</a></td>
17795e0c5fcSAdam Nemet<td></td>
17895e0c5fcSAdam Nemet<td></td>
17995e0c5fcSAdam Nemet<td><div class="highlight"><pre>    res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td>
18095e0c5fcSAdam Nemet</tr>
18195e0c5fcSAdam Nemet
18295e0c5fcSAdam Nemet<tr>
18395e0c5fcSAdam Nemet<td><a name="L16">16</a></td>
18495e0c5fcSAdam Nemet<td></td>
18595e0c5fcSAdam Nemet<td></td>
18695e0c5fcSAdam Nemet<td><div class="highlight"><pre>  }</pre></div></td>
18795e0c5fcSAdam Nemet</tr>
18895e0c5fcSAdam Nemet
18995e0c5fcSAdam Nemet<tr>
19095e0c5fcSAdam Nemet<td><a name="L17">17</a></td>
19195e0c5fcSAdam Nemet<td></td>
19295e0c5fcSAdam Nemet<td></td>
19395e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
19495e0c5fcSAdam Nemet</tr>
19595e0c5fcSAdam Nemet
19695e0c5fcSAdam Nemet<tr>
19795e0c5fcSAdam Nemet<td><a name="L18">18</a></td>
19895e0c5fcSAdam Nemet<td></td>
19995e0c5fcSAdam Nemet<td></td>
20095e0c5fcSAdam Nemet<td><div class="highlight"><pre>  foo();</pre></div></td>
20195e0c5fcSAdam Nemet</tr>
20295e0c5fcSAdam Nemet
20395e0c5fcSAdam Nemet<tr>
20495e0c5fcSAdam Nemet<td></td>
20595e0c5fcSAdam Nemet<td></td>
20695e0c5fcSAdam Nemet<td class="column-entry-white">inline</td>
20795e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412)&nbsp;</span></td>
20895e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
20995e0c5fcSAdam Nemet</tr>
21095e0c5fcSAdam Nemet
21195e0c5fcSAdam Nemet<tr>
21295e0c5fcSAdam Nemet<td></td>
21395e0c5fcSAdam Nemet<td></td>
21495e0c5fcSAdam Nemet<td class="column-entry-green">inline</td>
21595e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo inlined into Test&nbsp;</span></td>
21695e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
21795e0c5fcSAdam Nemet</tr>
21895e0c5fcSAdam Nemet
21995e0c5fcSAdam Nemet<tr>
22095e0c5fcSAdam Nemet<td><a name="L19">19</a></td>
22195e0c5fcSAdam Nemet<td></td>
22295e0c5fcSAdam Nemet<td></td>
22395e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
22495e0c5fcSAdam Nemet</tr>
22595e0c5fcSAdam Nemet
22695e0c5fcSAdam Nemet<tr>
22795e0c5fcSAdam Nemet<td><a name="L20">20</a></td>
22895e0c5fcSAdam Nemet<td></td>
22995e0c5fcSAdam Nemet<td></td>
23095e0c5fcSAdam Nemet<td><div class="highlight"><pre>  foo(); bar(); foo();</pre></div></td>
23195e0c5fcSAdam Nemet</tr>
23295e0c5fcSAdam Nemet
23395e0c5fcSAdam Nemet<tr>
23495e0c5fcSAdam Nemet<td></td>
23595e0c5fcSAdam Nemet<td></td>
23695e0c5fcSAdam Nemet<td class="column-entry-red">inline</td>
23795e0c5fcSAdam Nemet<td><pre style="display:inline">         </pre><span class="column-entry-yellow"> bar will not be inlined into Test because its definition is unavailable&nbsp;</span></td>
23895e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
23995e0c5fcSAdam Nemet</tr>
24095e0c5fcSAdam Nemet
24195e0c5fcSAdam Nemet<tr>
24295e0c5fcSAdam Nemet<td></td>
24395e0c5fcSAdam Nemet<td></td>
24495e0c5fcSAdam Nemet<td class="column-entry-white">inline</td>
24595e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412)&nbsp;</span></td>
24695e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
24795e0c5fcSAdam Nemet</tr>
24895e0c5fcSAdam Nemet
24995e0c5fcSAdam Nemet<tr>
25095e0c5fcSAdam Nemet<td></td>
25195e0c5fcSAdam Nemet<td></td>
25295e0c5fcSAdam Nemet<td class="column-entry-green">inline</td>
25395e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo inlined into Test&nbsp;</span></td>
25495e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
25595e0c5fcSAdam Nemet</tr>
25695e0c5fcSAdam Nemet
25795e0c5fcSAdam Nemet<tr>
25895e0c5fcSAdam Nemet<td></td>
25995e0c5fcSAdam Nemet<td></td>
26095e0c5fcSAdam Nemet<td class="column-entry-white">inline</td>
26195e0c5fcSAdam Nemet<td><pre style="display:inline">                </pre><span class="column-entry-yellow"> foo can be inlined into Test with cost=30 (threshold=412)&nbsp;</span></td>
26295e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
26395e0c5fcSAdam Nemet</tr>
26495e0c5fcSAdam Nemet
26595e0c5fcSAdam Nemet<tr>
26695e0c5fcSAdam Nemet<td></td>
26795e0c5fcSAdam Nemet<td></td>
26895e0c5fcSAdam Nemet<td class="column-entry-green">inline</td>
26995e0c5fcSAdam Nemet<td><pre style="display:inline">                </pre><span class="column-entry-yellow"> foo inlined into Test&nbsp;</span></td>
27095e0c5fcSAdam Nemet<td class="column-entry-yellow">Test</td>
27195e0c5fcSAdam Nemet</tr>
27295e0c5fcSAdam Nemet
27395e0c5fcSAdam Nemet<tr>
27495e0c5fcSAdam Nemet<td><a name="L21">21</a></td>
27595e0c5fcSAdam Nemet<td></td>
27695e0c5fcSAdam Nemet<td></td>
27795e0c5fcSAdam Nemet<td><div class="highlight"><pre>}</pre></div></td>
27895e0c5fcSAdam Nemet</tr>
27995e0c5fcSAdam Nemet
28095e0c5fcSAdam Nemet<tr>
28195e0c5fcSAdam Nemet<td><a name="L22">22</a></td>
28295e0c5fcSAdam Nemet<td></td>
28395e0c5fcSAdam Nemet<td></td>
28495e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
28595e0c5fcSAdam Nemet</tr>
28695e0c5fcSAdam Nemet
28795e0c5fcSAdam Nemet</tbody>
28895e0c5fcSAdam Nemet</table>
28995e0c5fcSAdam Nemet</body>
29095e0c5fcSAdam Nemet</html>
291