diff options
| -rw-r--r-- | llvm/test/tools/opt-viewer/Inputs/basic/or.yaml | 11 | ||||
| -rw-r--r-- | llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html | 31 | ||||
| -rw-r--r-- | llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html | 17 | ||||
| -rw-r--r-- | llvm/test/tools/opt-viewer/Outputs/basic/index.html | 63 | ||||
| -rw-r--r-- | llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html | 17 | ||||
| -rw-r--r-- | llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html | 17 | ||||
| -rwxr-xr-x | llvm/tools/opt-viewer/opt-viewer.py | 33 | ||||
| -rw-r--r-- | llvm/tools/opt-viewer/style.css | 10 |
8 files changed, 170 insertions, 29 deletions
diff --git a/llvm/test/tools/opt-viewer/Inputs/basic/or.yaml b/llvm/test/tools/opt-viewer/Inputs/basic/or.yaml index 11c5528b43f..80de83455a5 100644 --- a/llvm/test/tools/opt-viewer/Inputs/basic/or.yaml +++ b/llvm/test/tools/opt-viewer/Inputs/basic/or.yaml @@ -225,3 +225,14 @@ Args: - InterleaveCount: '2' - String: ')' ... +--- !Passed +Pass: multiline +Name: ShowMultiLine +DebugLoc: { File: basic/or.c, Line: 10, Column: 3 } +Function: Test +Args: + - String: | + This is a remark with + multiple + lines +... diff --git a/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html b/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html index 225ebabdbde..2b0baf942b5 100644 --- a/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html +++ b/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html @@ -4,6 +4,23 @@ <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"> @@ -106,6 +123,20 @@ </tr> <tr> +<td></td> +<td></td> +<td class="column-entry-green">multiline</td> +<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> +<div class="full-info" style="display:none;"> + <div class="col-left"><pre style="display:inline"> </pre></div> + <div class="expanded col-left"><pre>multiple + lines +</pre></div> +</div></td> +<td class="column-entry-yellow">Test</td> +</tr> + +<tr> <td><a name="L11">11</a></td> <td></td> <td></td> diff --git a/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html b/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html index 7cbda8a66c7..b6cc2f37fab 100644 --- a/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html +++ b/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html @@ -4,6 +4,23 @@ <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"> diff --git a/llvm/test/tools/opt-viewer/Outputs/basic/index.html b/llvm/test/tools/opt-viewer/Outputs/basic/index.html index 3424a9a1f0e..9bdacd26415 100644 --- a/llvm/test/tools/opt-viewer/Outputs/basic/index.html +++ b/llvm/test/tools/opt-viewer/Outputs/basic/index.html @@ -29,121 +29,128 @@ </tr> <tr> -<td class="column-entry-0"><a href="basic_or.c.html#L14">basic/or.c:14:3</a></td> +<td class="column-entry-0"><a href="basic_or.c.html#L10">basic/or.c:10:3</a></td> <td class="column-entry-0"></td> <td class="column-entry-0">Test</td> -<td class="column-entry-green">loop-unroll</td> +<td class="column-entry-green">multiline</td> </tr> <tr> -<td class="column-entry-1"><a href="basic_or.c.html#L18">basic/or.c:18:3</a></td> +<td class="column-entry-1"><a href="basic_or.c.html#L14">basic/or.c:14:3</a></td> <td class="column-entry-1"></td> <td class="column-entry-1">Test</td> -<td class="column-entry-white">inline</td> +<td class="column-entry-green">loop-unroll</td> </tr> <tr> <td class="column-entry-0"><a href="basic_or.c.html#L18">basic/or.c:18:3</a></td> <td class="column-entry-0"></td> <td class="column-entry-0">Test</td> -<td class="column-entry-green">inline</td> +<td class="column-entry-white">inline</td> </tr> <tr> -<td class="column-entry-1"><a href="basic_or.c.html#L20">basic/or.c:20:3</a></td> +<td class="column-entry-1"><a href="basic_or.c.html#L18">basic/or.c:18:3</a></td> <td class="column-entry-1"></td> <td class="column-entry-1">Test</td> -<td class="column-entry-white">inline</td> +<td class="column-entry-green">inline</td> </tr> <tr> <td class="column-entry-0"><a href="basic_or.c.html#L20">basic/or.c:20:3</a></td> <td class="column-entry-0"></td> <td class="column-entry-0">Test</td> -<td class="column-entry-green">inline</td> +<td class="column-entry-white">inline</td> </tr> <tr> -<td class="column-entry-1"><a href="basic_or.c.html#L20">basic/or.c:20:10</a></td> +<td class="column-entry-1"><a href="basic_or.c.html#L20">basic/or.c:20:3</a></td> <td class="column-entry-1"></td> <td class="column-entry-1">Test</td> -<td class="column-entry-red">inline</td> +<td class="column-entry-green">inline</td> </tr> <tr> -<td class="column-entry-0"><a href="basic_or.c.html#L20">basic/or.c:20:17</a></td> +<td class="column-entry-0"><a href="basic_or.c.html#L20">basic/or.c:20:10</a></td> <td class="column-entry-0"></td> <td class="column-entry-0">Test</td> -<td class="column-entry-white">inline</td> +<td class="column-entry-red">inline</td> </tr> <tr> <td class="column-entry-1"><a href="basic_or.c.html#L20">basic/or.c:20:17</a></td> <td class="column-entry-1"></td> <td class="column-entry-1">Test</td> -<td class="column-entry-green">inline</td> +<td class="column-entry-white">inline</td> </tr> <tr> -<td class="column-entry-0"><a href="basic_or.h.html#L5">basic/or.h:5:3</a></td> +<td class="column-entry-0"><a href="basic_or.c.html#L20">basic/or.c:20:17</a></td> <td class="column-entry-0"></td> -<td class="column-entry-0">TestH</td> -<td class="column-entry-green">loop-vectorize</td> +<td class="column-entry-0">Test</td> +<td class="column-entry-green">inline</td> </tr> <tr> -<td class="column-entry-1"><a href="basic_or.h.html#L9">basic/or.h:9:3</a></td> +<td class="column-entry-1"><a href="basic_or.h.html#L5">basic/or.h:5:3</a></td> <td class="column-entry-1"></td> <td class="column-entry-1">TestH</td> -<td class="column-entry-green">loop-unroll</td> +<td class="column-entry-green">loop-vectorize</td> </tr> <tr> -<td class="column-entry-0"><a href="basic_or.h.html#L13">basic/or.h:13:3</a></td> +<td class="column-entry-0"><a href="basic_or.h.html#L9">basic/or.h:9:3</a></td> <td class="column-entry-0"></td> <td class="column-entry-0">TestH</td> -<td class="column-entry-white">inline</td> +<td class="column-entry-green">loop-unroll</td> </tr> <tr> <td class="column-entry-1"><a href="basic_or.h.html#L13">basic/or.h:13:3</a></td> <td class="column-entry-1"></td> <td class="column-entry-1">TestH</td> -<td class="column-entry-green">inline</td> +<td class="column-entry-white">inline</td> </tr> <tr> -<td class="column-entry-0"><a href="basic_or.h.html#L15">basic/or.h:15:3</a></td> +<td class="column-entry-0"><a href="basic_or.h.html#L13">basic/or.h:13:3</a></td> <td class="column-entry-0"></td> <td class="column-entry-0">TestH</td> -<td class="column-entry-white">inline</td> +<td class="column-entry-green">inline</td> </tr> <tr> <td class="column-entry-1"><a href="basic_or.h.html#L15">basic/or.h:15:3</a></td> <td class="column-entry-1"></td> <td class="column-entry-1">TestH</td> -<td class="column-entry-green">inline</td> +<td class="column-entry-white">inline</td> </tr> <tr> -<td class="column-entry-0"><a href="basic_or.h.html#L15">basic/or.h:15:10</a></td> +<td class="column-entry-0"><a href="basic_or.h.html#L15">basic/or.h:15:3</a></td> <td class="column-entry-0"></td> <td class="column-entry-0">TestH</td> -<td class="column-entry-red">inline</td> +<td class="column-entry-green">inline</td> </tr> <tr> -<td class="column-entry-1"><a href="basic_or.h.html#L15">basic/or.h:15:17</a></td> +<td class="column-entry-1"><a href="basic_or.h.html#L15">basic/or.h:15:10</a></td> <td class="column-entry-1"></td> <td class="column-entry-1">TestH</td> -<td class="column-entry-white">inline</td> +<td class="column-entry-red">inline</td> </tr> <tr> <td class="column-entry-0"><a href="basic_or.h.html#L15">basic/or.h:15:17</a></td> <td class="column-entry-0"></td> <td class="column-entry-0">TestH</td> +<td class="column-entry-white">inline</td> +</tr> + +<tr> +<td class="column-entry-1"><a href="basic_or.h.html#L15">basic/or.h:15:17</a></td> +<td class="column-entry-1"></td> +<td class="column-entry-1">TestH</td> <td class="column-entry-green">inline</td> </tr> diff --git a/llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html b/llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html index 813db9f9820..f67352079ed 100644 --- a/llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html +++ b/llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html @@ -4,6 +4,23 @@ <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"> diff --git a/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html b/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html index 67514d556c3..744c5b7579e 100644 --- a/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html +++ b/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html @@ -4,6 +4,23 @@ <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"> diff --git a/llvm/tools/opt-viewer/opt-viewer.py b/llvm/tools/opt-viewer/opt-viewer.py index f6582506311..8aec321b959 100755 --- a/llvm/tools/opt-viewer/opt-viewer.py +++ b/llvm/tools/opt-viewer/opt-viewer.py @@ -120,12 +120,26 @@ class SourceFileRenderer: indent = line[:max(r.Column, 1) - 1] indent = re.sub('\S', ' ', indent) + # Create expanded message and link if we have a multiline message. + lines = r.message.split('\n') + if len(lines) > 1: + expand_link = '<a style="text-decoration: none;" href="" onclick="toggleExpandedMessage(this); return false;">+</a>' + message = lines[0] + expand_message = u''' +<div class="full-info" style="display:none;"> + <div class="col-left"><pre style="display:inline">{}</pre></div> + <div class="expanded col-left"><pre>{}</pre></div> +</div>'''.format(indent, '\n'.join(lines[1:])) + else: + expand_link = '' + expand_message = '' + message = r.message print(u''' <tr> <td></td> <td>{r.RelativeHotness}</td> <td class=\"column-entry-{r.color}\">{r.PassWithDiffPrefix}</td> -<td><pre style="display:inline">{indent}</pre><span class=\"column-entry-yellow\"> {r.message} </span></td> +<td><pre style="display:inline">{indent}</pre><span class=\"column-entry-yellow\">{expand_link} {message} </span>{expand_message}</td> <td class=\"column-entry-yellow\">{inlining_context}</td> </tr>'''.format(**locals()), file=self.stream) @@ -139,6 +153,23 @@ class SourceFileRenderer: <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"> diff --git a/llvm/tools/opt-viewer/style.css b/llvm/tools/opt-viewer/style.css index 0d3347c1578..550c7e1cdff 100644 --- a/llvm/tools/opt-viewer/style.css +++ b/llvm/tools/opt-viewer/style.css @@ -139,6 +139,16 @@ td:first-child { td:last-child { border-right: none; } +.expanded { + background-color: #f2f2f2; + padding-top: 5px; + padding-left: 5px; +} +.col-left { + float: left; + margin-bottom: -99999px; + padding-bottom: 99999px; +} /* Generated with pygmentize -S colorful -f html >> style.css */ |

