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 </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) </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 </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 </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) </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 </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 </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) </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 </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) </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 </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