Remove r8lib_size_compare.py
Bug: 160420801
Change-Id: I9bd4109cf383c00dba86f19b67baeb46bd5622d8
diff --git a/tools/r8lib_size_compare.py b/tools/r8lib_size_compare.py
deleted file mode 100755
index 568f254..0000000
--- a/tools/r8lib_size_compare.py
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2018, 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.
-
-'''
-Build r8lib.jar with both R8 and ProGuard and print a size comparison.
-
-By default, inlining is disabled in both R8 and ProGuard to make
-method-by-method comparison much easier. Pass --inlining to enable inlining.
-
-By default, only shows methods where R8's DEX output is 5 or more instructions
-larger than ProGuard+D8's output. Pass --threshold 0 to display all methods.
-'''
-
-import argparse
-import build_r8lib
-import os
-import subprocess
-import toolhelper
-import utils
-
-
-parser = argparse.ArgumentParser(description=__doc__.strip(),
- formatter_class=argparse.RawTextHelpFormatter)
-parser.add_argument('-t', '--tmpdir',
- help='Store auxiliary files in given directory')
-parser.add_argument('-i', '--inlining', action='store_true',
- help='Enable inlining')
-parser.add_argument('--threshold')
-
-R8_RELOCATIONS = [
- ('com.google.common', 'com.android.tools.r8.com.google.common'),
- ('com.google.gson', 'com.android.tools.r8.com.google.gson'),
- ('com.google.thirdparty', 'com.android.tools.r8.com.google.thirdparty'),
- ('joptsimple', 'com.android.tools.r8.joptsimple'),
- ('org.apache.commons', 'com.android.tools.r8.org.apache.commons'),
- ('org.objectweb.asm', 'com.android.tools.r8.org.objectweb.asm'),
- ('it.unimi.dsi.fastutil', 'com.android.tools.r8.it.unimi.dsi.fastutil'),
-]
-
-
-def is_output_newer(input, output):
- if not os.path.exists(output):
- return False
- return os.stat(input).st_mtime < os.stat(output).st_mtime
-
-
-def check_call(args, **kwargs):
- utils.PrintCmd(args)
- return subprocess.check_call(args, **kwargs)
-
-
-def main(tmpdir=None, inlining=True,
- run_jarsizecompare=True, threshold=None):
- if tmpdir is None:
- with utils.TempDir() as tmpdir:
- return main(tmpdir, inlining)
-
- inline_suffix = '-inline' if inlining else '-noinline'
-
- pg_config = utils.R8LIB_KEEP_RULES
- r8lib_jar = os.path.join(utils.LIBS, 'r8lib%s.jar' % inline_suffix)
- r8lib_map = os.path.join(utils.LIBS, 'r8lib%s-map.txt' % inline_suffix)
- r8lib_args = None
- if not inlining:
- r8lib_args = ['-Dcom.android.tools.r8.disableinlining=1']
- pg_config = os.path.join(tmpdir, 'keep-noinline.txt')
- with open(pg_config, 'w') as new_config:
- with open(utils.R8LIB_KEEP_RULES) as old_config:
- new_config.write(old_config.read().rstrip('\n') +
- '\n-optimizations !method/inlining/*\n')
-
- if not is_output_newer(utils.R8_JAR, r8lib_jar):
- r8lib_memory = os.path.join(tmpdir, 'r8lib%s-memory.txt' % inline_suffix)
- # TODO(b/160420801): The signature of build_r8lib has changed.
- build_r8lib.build_r8lib(
- output_path=r8lib_jar,
- output_map=r8lib_map,
- extra_args=r8lib_args,
- track_memory_file=r8lib_memory)
-
- pg_output = os.path.join(tmpdir, 'r8lib-pg%s.jar' % inline_suffix)
- pg_memory = os.path.join(tmpdir, 'r8lib-pg%s-memory.txt' % inline_suffix)
- pg_map = os.path.join(tmpdir, 'r8lib-pg%s-map.txt' % inline_suffix)
- # TODO(b/160420801): This must use proguard.* utils once working again.
- pg_args = ['tools/track_memory.sh', pg_memory,
- 'third_party/proguard/proguard6.0.2/bin/proguard.sh',
- '@' + pg_config,
- '-lib', utils.RT_JAR,
- '-injar', utils.R8_JAR,
- '-printmapping', pg_map,
- '-outjar', pg_output]
- for library_name, relocated_package in R8_RELOCATIONS:
- pg_args.extend(['-dontwarn', relocated_package + '.**',
- '-dontnote', relocated_package + '.**'])
- check_call(pg_args)
- if threshold is None:
- threshold = 5
- toolhelper.run('jarsizecompare',
- ['--threshold', str(threshold),
- '--lib', utils.RT_JAR,
- '--input', 'input', utils.R8_JAR,
- '--input', 'r8', r8lib_jar, r8lib_map,
- '--input', 'pg', pg_output, pg_map])
-
-
-if __name__ == '__main__':
- main(**vars(parser.parse_args()))