summaryrefslogtreecommitdiffstats
path: root/llvm/utils/opt-viewer/opt-viewer.py
diff options
context:
space:
mode:
authorAdam Nemet <anemet@apple.com>2016-11-11 01:08:02 +0000
committerAdam Nemet <anemet@apple.com>2016-11-11 01:08:02 +0000
commit01823ea2de56227f90f0471b478acd46fe496b9b (patch)
tree00124392fa472ec97da7e176deb8fa0138efc510 /llvm/utils/opt-viewer/opt-viewer.py
parent8efa09066160f1b0dd7a9000c7afaea7f357561d (diff)
downloadbcm5719-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-xllvm/utils/opt-viewer/opt-viewer.py23
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>
OpenPOWER on IntegriCloud