
<html>
<title>or.h</title>
<meta charset="utf-8" />
<head>
<link rel='stylesheet' type='text/css' href='style.css'>
<script type="text/javascript">
/* Simple helper to show/hide the expanded message of a remark. */
function toggleExpandedMessage(e) {
  var FullTextElems = e.parentElement.parentElement.getElementsByClassName("full-info");
  if (!FullTextElems || FullTextElems.length < 1) {
      return false;
  }
  var FullText = FullTextElems[0];
  if (FullText.style.display == 'none') {
    e.innerHTML = '-';
    FullText.style.display = 'block';
  } else {
    e.innerHTML = '+';
    FullText.style.display = 'none';
  }
}
</script>
</head>
<body>
<div class="centered">
<table class="source">
<thead>
<tr>
<th style="width: 2%">Line</td>
<th style="width: 3%">Hotness</td>
<th style="width: 10%">Optimization</td>
<th style="width: 70%">Source</td>
<th style="width: 15%">Inline Context</td>
</tr>
</thead>
<tbody>

<tr>
<td><a name="L1">1</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>void TestH(int *res, int *c, int *d, int *p, int n) {</pre></div></td>
</tr>

<tr>
<td><a name="L2">2</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>  int i;</pre></div></td>
</tr>

<tr>
<td><a name="L3">3</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre></pre></div></td>
</tr>

<tr>
<td><a name="L4">4</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>#pragma clang loop vectorize(assume_safety)</pre></div></td>
</tr>

<tr>
<td><a name="L5">5</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>  for (i = 0; i < 1600; i++) {</pre></div></td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-green">loop-vectorize</td>
<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> vectorized loop (vectorization width: 4, interleaved count: 2)&nbsp;</span></td>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td><a name="L6">6</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>    res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td>
</tr>

<tr>
<td><a name="L7">7</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>  }</pre></div></td>
</tr>

<tr>
<td><a name="L8">8</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre></pre></div></td>
</tr>

<tr>
<td><a name="L9">9</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>  for (i = 0; i < 16; i++) {</pre></div></td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-green">loop-unroll</td>
<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> completely unrolled loop with 16 iterations&nbsp;</span></td>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td><a name="L10">10</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>    res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];</pre></div></td>
</tr>

<tr>
<td><a name="L11">11</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>  }</pre></div></td>
</tr>

<tr>
<td><a name="L12">12</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre></pre></div></td>
</tr>

<tr>
<td><a name="L13">13</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>  foo();</pre></div></td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-white">inline</td>
<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>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-green">inline</td>
<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo inlined into TestH&nbsp;</span></td>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td><a name="L14">14</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre></pre></div></td>
</tr>

<tr>
<td><a name="L15">15</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>  foo(); bar(); foo();</pre></div></td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-red">inline</td>
<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>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-white">inline</td>
<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>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-green">inline</td>
<td><pre style="display:inline">  </pre><span class="column-entry-yellow"> foo inlined into TestH&nbsp;</span></td>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-white">inline</td>
<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>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td></td>
<td></td>
<td class="column-entry-green">inline</td>
<td><pre style="display:inline">                </pre><span class="column-entry-yellow"> foo inlined into TestH&nbsp;</span></td>
<td class="column-entry-yellow">TestH</td>
</tr>

<tr>
<td><a name="L16">16</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre>}</pre></div></td>
</tr>

<tr>
<td><a name="L17">17</a></td>
<td></td>
<td></td>
<td><div class="highlight"><pre></pre></div></td>
</tr>

</tbody>
</table>
</body>
</html>
