blob: 6c2dbc2fd2a955063f23e94f94fcc05145221833 [file] [log] [blame]
#!/usr/bin/env python3
# Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
import utils
import optparse
import sys
import toolhelper
def ParseOptions(argv):
parser = optparse.OptionParser(usage='%prog [options] -- [D8 options]')
parser.add_option('-c',
'--commit-hash',
'--commit_hash',
help='Commit hash of D8 to use.',
default=None)
parser.add_option('--debug-agent',
'--debug_agent',
help='Enable Java debug agent and suspend compilation',
default=False,
action='store_true')
parser.add_option('--disable-assertions',
'--disable_assertions',
help='Disable assertions when running',
default=False,
action='store_true')
parser.add_option('--print-runtimeraw',
'--print_runtimeraw',
metavar='BENCHMARKNAME',
help='Print the line \'<BENCHMARKNAME>(RunTimeRaw):' +
' <elapsed> ms\' at the end where <elapsed> is' +
' the elapsed time in milliseconds.')
parser.add_option('--no-build',
'--no_build',
help='Do not build D8',
default=False,
action='store_true')
parser.add_option('--version', help='Version of D8 to use.', default=None)
parser.add_option('--tag', help='Tag of D8 to use.', default=None)
return parser.parse_args(argv)
def main(argv):
(options, args) = ParseOptions(sys.argv)
d8_args = args[1:]
time_consumer = lambda duration: print_duration(duration, options)
return toolhelper.run('d8',
d8_args,
build=not options.no_build,
debug_agent=options.debug_agent,
disable_assertions=options.disable_assertions,
jar=utils.find_r8_jar_from_options(options),
main='com.android.tools.r8.D8',
time_consumer=time_consumer)
def print_duration(duration, options):
benchmark_name = options.print_runtimeraw
if benchmark_name:
print('%s-Total(RunTimeRaw): %s ms' % (benchmark_name, duration))
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))