Files
clang-p2996/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html
Florian Hahn fd7ee47940 [opt-viewer] Add javascript to expand/hide full message for multiline remarks.
This patch adds support for displaying remarks with multiple
lines. For such remarks, it creates a hidden div
containing the message's lines except the first one in a <pre>
tag. It also prepends a link (with '+' as text) to the regular remark
line. This link can be used to show/hide the div containing the
full remark.

In combination with D57159, this allows for better displaying of
multiline remarks in the html pages generated by opt-viewer.

The Javascript is very simple and should be supported by any recent
major browser.

Reviewers: hfinkel, anemet, thegameg, serge-sans-paille

Reviewed By: anemet

Differential Revision: https://reviews.llvm.org/D57167

llvm-svn: 352223
2019-01-25 17:48:31 +00:00

234 lines
5.4 KiB
HTML

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