195e0c5fcSAdam Nemet
295e0c5fcSAdam Nemet<html>
3f7778892SAdam Nemet<title>or.h</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 TestH(int *res, int *c, int *d, int *p, int n) {</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>  int i;</pre></div></td>
5195e0c5fcSAdam Nemet</tr>
5295e0c5fcSAdam Nemet
5395e0c5fcSAdam Nemet<tr>
5495e0c5fcSAdam Nemet<td><a name="L3">3</a></td>
5595e0c5fcSAdam Nemet<td></td>
5695e0c5fcSAdam Nemet<td></td>
5795e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
5895e0c5fcSAdam Nemet</tr>
5995e0c5fcSAdam Nemet
6095e0c5fcSAdam Nemet<tr>
6195e0c5fcSAdam Nemet<td><a name="L4">4</a></td>
6295e0c5fcSAdam Nemet<td></td>
6395e0c5fcSAdam Nemet<td></td>
6495e0c5fcSAdam Nemet<td><div class="highlight"><pre>#pragma clang loop vectorize(assume_safety)</pre></div></td>
6595e0c5fcSAdam Nemet</tr>
6695e0c5fcSAdam Nemet
6795e0c5fcSAdam Nemet<tr>
6895e0c5fcSAdam Nemet<td><a name="L5">5</a></td>
6995e0c5fcSAdam Nemet<td></td>
7095e0c5fcSAdam Nemet<td></td>
7195e0c5fcSAdam Nemet<td><div class="highlight"><pre>  for (i = 0; i < 1600; i++) {</pre></div></td>
7295e0c5fcSAdam Nemet</tr>
7395e0c5fcSAdam Nemet
7495e0c5fcSAdam Nemet<tr>
7595e0c5fcSAdam Nemet<td></td>
7695e0c5fcSAdam Nemet<td></td>
7795e0c5fcSAdam Nemet<td class="column-entry-green">loop-vectorize</td>
7895e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> vectorized loop (vectorization width: 4, interleaved count: 2)&nbsp;</span></td>
7995e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</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>    res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</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>  }</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>  for (i = 0; i < 16; i++) {</pre></div></td>
10895e0c5fcSAdam Nemet</tr>
10995e0c5fcSAdam Nemet
11095e0c5fcSAdam Nemet<tr>
11195e0c5fcSAdam Nemet<td></td>
11295e0c5fcSAdam Nemet<td></td>
11395e0c5fcSAdam Nemet<td class="column-entry-green">loop-unroll</td>
11495e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> completely unrolled loop with 16 iterations&nbsp;</span></td>
11595e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</td>
11695e0c5fcSAdam Nemet</tr>
11795e0c5fcSAdam Nemet
11895e0c5fcSAdam Nemet<tr>
11995e0c5fcSAdam Nemet<td><a name="L10">10</a></td>
12095e0c5fcSAdam Nemet<td></td>
12195e0c5fcSAdam Nemet<td></td>
12295e0c5fcSAdam Nemet<td><div class="highlight"><pre>    res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td>
12395e0c5fcSAdam Nemet</tr>
12495e0c5fcSAdam Nemet
12595e0c5fcSAdam Nemet<tr>
12695e0c5fcSAdam Nemet<td><a name="L11">11</a></td>
12795e0c5fcSAdam Nemet<td></td>
12895e0c5fcSAdam Nemet<td></td>
12995e0c5fcSAdam Nemet<td><div class="highlight"><pre>  }</pre></div></td>
13095e0c5fcSAdam Nemet</tr>
13195e0c5fcSAdam Nemet
13295e0c5fcSAdam Nemet<tr>
13395e0c5fcSAdam Nemet<td><a name="L12">12</a></td>
13495e0c5fcSAdam Nemet<td></td>
13595e0c5fcSAdam Nemet<td></td>
13695e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
13795e0c5fcSAdam Nemet</tr>
13895e0c5fcSAdam Nemet
13995e0c5fcSAdam Nemet<tr>
14095e0c5fcSAdam Nemet<td><a name="L13">13</a></td>
14195e0c5fcSAdam Nemet<td></td>
14295e0c5fcSAdam Nemet<td></td>
14395e0c5fcSAdam Nemet<td><div class="highlight"><pre>  foo();</pre></div></td>
14495e0c5fcSAdam Nemet</tr>
14595e0c5fcSAdam Nemet
14695e0c5fcSAdam Nemet<tr>
14795e0c5fcSAdam Nemet<td></td>
14895e0c5fcSAdam Nemet<td></td>
14995e0c5fcSAdam Nemet<td class="column-entry-white">inline</td>
15095e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412)&nbsp;</span></td>
15195e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</td>
15295e0c5fcSAdam Nemet</tr>
15395e0c5fcSAdam Nemet
15495e0c5fcSAdam Nemet<tr>
15595e0c5fcSAdam Nemet<td></td>
15695e0c5fcSAdam Nemet<td></td>
15795e0c5fcSAdam Nemet<td class="column-entry-green">inline</td>
15895e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo inlined into TestH&nbsp;</span></td>
15995e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</td>
16095e0c5fcSAdam Nemet</tr>
16195e0c5fcSAdam Nemet
16295e0c5fcSAdam Nemet<tr>
16395e0c5fcSAdam Nemet<td><a name="L14">14</a></td>
16495e0c5fcSAdam Nemet<td></td>
16595e0c5fcSAdam Nemet<td></td>
16695e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
16795e0c5fcSAdam Nemet</tr>
16895e0c5fcSAdam Nemet
16995e0c5fcSAdam Nemet<tr>
17095e0c5fcSAdam Nemet<td><a name="L15">15</a></td>
17195e0c5fcSAdam Nemet<td></td>
17295e0c5fcSAdam Nemet<td></td>
17395e0c5fcSAdam Nemet<td><div class="highlight"><pre>  foo(); bar(); foo();</pre></div></td>
17495e0c5fcSAdam Nemet</tr>
17595e0c5fcSAdam Nemet
17695e0c5fcSAdam Nemet<tr>
17795e0c5fcSAdam Nemet<td></td>
17895e0c5fcSAdam Nemet<td></td>
17995e0c5fcSAdam Nemet<td class="column-entry-red">inline</td>
18095e0c5fcSAdam Nemet<td><pre style="display:inline">         </pre><span class="column-entry-yellow"> bar will not be inlined into TestH because its definition is unavailable&nbsp;</span></td>
18195e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</td>
18295e0c5fcSAdam Nemet</tr>
18395e0c5fcSAdam Nemet
18495e0c5fcSAdam Nemet<tr>
18595e0c5fcSAdam Nemet<td></td>
18695e0c5fcSAdam Nemet<td></td>
18795e0c5fcSAdam Nemet<td class="column-entry-white">inline</td>
18895e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412)&nbsp;</span></td>
18995e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</td>
19095e0c5fcSAdam Nemet</tr>
19195e0c5fcSAdam Nemet
19295e0c5fcSAdam Nemet<tr>
19395e0c5fcSAdam Nemet<td></td>
19495e0c5fcSAdam Nemet<td></td>
19595e0c5fcSAdam Nemet<td class="column-entry-green">inline</td>
19695e0c5fcSAdam Nemet<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo inlined into TestH&nbsp;</span></td>
19795e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</td>
19895e0c5fcSAdam Nemet</tr>
19995e0c5fcSAdam Nemet
20095e0c5fcSAdam Nemet<tr>
20195e0c5fcSAdam Nemet<td></td>
20295e0c5fcSAdam Nemet<td></td>
20395e0c5fcSAdam Nemet<td class="column-entry-white">inline</td>
20495e0c5fcSAdam Nemet<td><pre style="display:inline">                </pre><span class="column-entry-yellow"> foo can be inlined into TestH with cost=30 (threshold=412)&nbsp;</span></td>
20595e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</td>
20695e0c5fcSAdam Nemet</tr>
20795e0c5fcSAdam Nemet
20895e0c5fcSAdam Nemet<tr>
20995e0c5fcSAdam Nemet<td></td>
21095e0c5fcSAdam Nemet<td></td>
21195e0c5fcSAdam Nemet<td class="column-entry-green">inline</td>
21295e0c5fcSAdam Nemet<td><pre style="display:inline">                </pre><span class="column-entry-yellow"> foo inlined into TestH&nbsp;</span></td>
21395e0c5fcSAdam Nemet<td class="column-entry-yellow">TestH</td>
21495e0c5fcSAdam Nemet</tr>
21595e0c5fcSAdam Nemet
21695e0c5fcSAdam Nemet<tr>
21795e0c5fcSAdam Nemet<td><a name="L16">16</a></td>
21895e0c5fcSAdam Nemet<td></td>
21995e0c5fcSAdam Nemet<td></td>
22095e0c5fcSAdam Nemet<td><div class="highlight"><pre>}</pre></div></td>
22195e0c5fcSAdam Nemet</tr>
22295e0c5fcSAdam Nemet
22395e0c5fcSAdam Nemet<tr>
22495e0c5fcSAdam Nemet<td><a name="L17">17</a></td>
22595e0c5fcSAdam Nemet<td></td>
22695e0c5fcSAdam Nemet<td></td>
22795e0c5fcSAdam Nemet<td><div class="highlight"><pre></pre></div></td>
22895e0c5fcSAdam Nemet</tr>
22995e0c5fcSAdam Nemet
23095e0c5fcSAdam Nemet</tbody>
23195e0c5fcSAdam Nemet</table>
23295e0c5fcSAdam Nemet</body>
23395e0c5fcSAdam Nemet</html>
234