diff options
author | Adam Nemet <anemet@apple.com> | 2016-11-11 01:08:02 +0000 |
---|---|---|
committer | Adam Nemet <anemet@apple.com> | 2016-11-11 01:08:02 +0000 |
commit | 01823ea2de56227f90f0471b478acd46fe496b9b (patch) | |
tree | 00124392fa472ec97da7e176deb8fa0138efc510 /llvm/utils/opt-viewer/opt-viewer.py | |
parent | 8efa09066160f1b0dd7a9000c7afaea7f357561d (diff) | |
download | bcm5719-llvm-01823ea2de56227f90f0471b478acd46fe496b9b.tar.gz bcm5719-llvm-01823ea2de56227f90f0471b478acd46fe496b9b.zip |
[opt-viewer] Add option to set source directory
llvm-svn: 286536
Diffstat (limited to 'llvm/utils/opt-viewer/opt-viewer.py')
-rwxr-xr-x | llvm/utils/opt-viewer/opt-viewer.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/llvm/utils/opt-viewer/opt-viewer.py b/llvm/utils/opt-viewer/opt-viewer.py index 2b60a642d07..5c23ba1d265 100755 --- a/llvm/utils/opt-viewer/opt-viewer.py +++ b/llvm/utils/opt-viewer/opt-viewer.py @@ -19,6 +19,7 @@ from pygments.formatters import HtmlFormatter parser = argparse.ArgumentParser(description=desc) parser.add_argument('yaml_files', nargs='+') parser.add_argument('output_dir') +parser.add_argument('-source-dir', '-s', default='', help='set source directory') args = parser.parse_args() p = subprocess.Popen(['c++filt', '-n'], stdin=subprocess.PIPE, stdout=subprocess.PIPE) @@ -115,8 +116,25 @@ class Missed(Remark): class SourceFileRenderer: def __init__(self, filename): - self.source_stream = open(filename) + existing_filename = None + if os.path.exists(filename): + existing_filename = filename + else: + fn = os.path.join(args.source_dir, filename) + if os.path.exists(fn): + existing_filename = fn + self.stream = open(os.path.join(args.output_dir, SourceFileRenderer.html_file_name(filename)), 'w') + if existing_filename: + self.source_stream = open(existing_filename) + else: + self.source_stream = None + print(''' +<html> +<h1>Unable to locate file {}</h1> +</html> + '''.format(filename), file=self.stream) + self.html_formatter = HtmlFormatter() self.cpp_lexer = CppLexer() @@ -140,6 +158,9 @@ class SourceFileRenderer: </tr>'''.format(**locals()), file=self.stream) def render(self, line_remarks): + if not self.source_stream: + return + print(''' <html> <head> |