diff options
author | Zachary Turner <zturner@google.com> | 2018-01-05 22:05:13 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2018-01-05 22:05:13 +0000 |
commit | 7f5fb676c0284353a1b8d7b0c89bed4f31386c3b (patch) | |
tree | 342dc8a30e23a61bc134d224e77f417d15d6b368 /llvm/tools/opt-viewer/opt-viewer.py | |
parent | 4ed8ef6f8ea323fad8f3ea7650941acf2c5e72d4 (diff) | |
download | bcm5719-llvm-7f5fb676c0284353a1b8d7b0c89bed4f31386c3b.tar.gz bcm5719-llvm-7f5fb676c0284353a1b8d7b0c89bed4f31386c3b.zip |
Fix some opt-viewer test issues and disable on Windows.
Differential Revision: https://reviews.llvm.org/D41784
llvm-svn: 321905
Diffstat (limited to 'llvm/tools/opt-viewer/opt-viewer.py')
-rwxr-xr-x | llvm/tools/opt-viewer/opt-viewer.py | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/llvm/tools/opt-viewer/opt-viewer.py b/llvm/tools/opt-viewer/opt-viewer.py index 27b36064ced..823859132e4 100755 --- a/llvm/tools/opt-viewer/opt-viewer.py +++ b/llvm/tools/opt-viewer/opt-viewer.py @@ -43,7 +43,7 @@ def suppress(remark): return False class SourceFileRenderer: - def __init__(self, source_dir, output_dir, filename): + def __init__(self, source_dir, output_dir, filename, no_highlight): existing_filename = None if os.path.exists(filename): existing_filename = filename @@ -52,6 +52,7 @@ class SourceFileRenderer: if os.path.exists(fn): existing_filename = fn + self.no_highlight = no_highlight self.stream = codecs.open(os.path.join(output_dir, optrecord.html_file_name(filename)), 'w', encoding='utf-8') if existing_filename: self.source_stream = open(existing_filename) @@ -69,7 +70,7 @@ class SourceFileRenderer: def render_source_lines(self, stream, line_remarks): file_text = stream.read() - if args.no_highlight: + if self.no_highlight: html_highlighted = file_text.decode('utf-8') else: html_highlighted = highlight( @@ -157,9 +158,10 @@ class SourceFileRenderer: class IndexRenderer: - def __init__(self, output_dir, should_display_hotness): + def __init__(self, output_dir, should_display_hotness, max_hottest_remarks_on_index): self.stream = codecs.open(os.path.join(output_dir, 'index.html'), 'w', encoding='utf-8') self.should_display_hotness = should_display_hotness + self.max_hottest_remarks_on_index = max_hottest_remarks_on_index def render_entry(self, r, odd): escaped_name = cgi.escape(r.DemangledFunctionName) @@ -189,8 +191,8 @@ class IndexRenderer: </tr>''', file=self.stream) max_entries = None - if should_display_hotness: - max_entries = args.max_hottest_remarks_on_index + if self.should_display_hotness: + max_entries = self.max_hottest_remarks_on_index for i, remark in enumerate(all_remarks[:max_entries]): if not suppress(remark): @@ -201,11 +203,11 @@ class IndexRenderer: </html>''', file=self.stream) -def _render_file(source_dir, output_dir, ctx, entry): +def _render_file(source_dir, output_dir, ctx, no_highlight, entry): global context context = ctx filename, remarks = entry - SourceFileRenderer(source_dir, output_dir, filename).render(remarks) + SourceFileRenderer(source_dir, output_dir, filename, no_highlight).render(remarks) def map_remarks(all_remarks): @@ -227,7 +229,9 @@ def generate_report(all_remarks, file_remarks, source_dir, output_dir, + no_highlight, should_display_hotness, + max_hottest_remarks_on_index, num_jobs, should_print_progress): try: @@ -238,7 +242,7 @@ def generate_report(all_remarks, else: raise - _render_file_bound = functools.partial(_render_file, source_dir, output_dir, context) + _render_file_bound = functools.partial(_render_file, source_dir, output_dir, context, no_highlight) if should_print_progress: print('Rendering HTML files...') optpmap.pmap(_render_file_bound, @@ -250,13 +254,13 @@ def generate_report(all_remarks, sorted_remarks = sorted(optrecord.itervalues(all_remarks), key=lambda r: (r.Hotness, r.File, r.Line, r.Column, r.PassWithDiffPrefix, r.yaml_tag, r.Function), reverse=True) else: sorted_remarks = sorted(optrecord.itervalues(all_remarks), key=lambda r: (r.File, r.Line, r.Column, r.PassWithDiffPrefix, r.yaml_tag, r.Function)) - IndexRenderer(args.output_dir, should_display_hotness).render(sorted_remarks) + IndexRenderer(output_dir, should_display_hotness, max_hottest_remarks_on_index).render(sorted_remarks) shutil.copy(os.path.join(os.path.dirname(os.path.realpath(__file__)), "style.css"), output_dir) -if __name__ == '__main__': +def main(): parser = argparse.ArgumentParser(description=desc) parser.add_argument( 'yaml_dirs_or_files', @@ -273,7 +277,7 @@ if __name__ == '__main__': parser.add_argument( '--jobs', '-j', - default=cpu_count(), + default=None, type=int, help='Max job count (defaults to %(default)s, the current CPU count)') parser.add_argument( @@ -301,6 +305,10 @@ if __name__ == '__main__': parser.add_argument( '--demangler', help='Set the demangler to be used (defaults to %s)' % optrecord.Remark.default_demangler) + + # Do not make this a global variable. Values needed to be propagated through + # to individual classes and functions to be portable with multiprocessing across + # Windows and non-Windows. args = parser.parse_args() print_progress = not args.no_progress_indicator @@ -321,6 +329,11 @@ if __name__ == '__main__': file_remarks, args.source_dir, args.output_dir, + args.no_highlight, should_display_hotness, + args.max_hottest_remarks_on_index, args.jobs, print_progress) + +if __name__ == '__main__': + main() |