Include isolated splits in dump
Change-Id: I82a64d86731abffc6831b612d7352bc30cb8d0e1
diff --git a/tools/compiledump.py b/tools/compiledump.py
index cc12d2a..5c926b3 100755
--- a/tools/compiledump.py
+++ b/tools/compiledump.py
@@ -102,14 +102,13 @@
'Enable additional test assertions when running the compiler (default disabled)',
default=False,
action='store_true')
- parser.add_argument(
- '--java-opts',
- '--java-opts',
- '-J',
- metavar='<JVM argument(s)>',
- default=[],
- action='append',
- help='Additional options to pass to JVM invocation')
+ parser.add_argument('--java-opts',
+ '--java-opts',
+ '-J',
+ metavar='<JVM argument(s)>',
+ default=[],
+ action='append',
+ help='Additional options to pass to JVM invocation')
parser.add_argument('--classfile',
help='Run with classfile output',
default=False,
@@ -158,15 +157,14 @@
parser.add_argument(
'--ignore-features',
help="Don't split into features when features are present."
- ' Instead include feature code in main app output.'
- ' This is always the case when compiler is d8.',
+ ' Instead include feature code in main app output.'
+ ' This is always the case when compiler is d8.',
default=False,
action='store_true')
- parser.add_argument(
- '--no-build',
- help="Don't build when using --version main",
- default=False,
- action='store_true')
+ parser.add_argument('--no-build',
+ help="Don't build when using --version main",
+ default=False,
+ action='store_true')
return parser
@@ -319,6 +317,14 @@
return compiler
+def determine_isolated_splits(build_properties, feature_jars):
+ if feature_jars and 'isolated-splits' in build_properties:
+ isolated_splits = build_properties.get('isolated-splits')
+ assert isolated_splits == 'true' or isolated_splits == 'false'
+ return isolated_splits == 'true'
+ return None
+
+
def determine_trace_references_commands(build_properties, output):
trace_ref_consumer = build_properties.get('trace_references_consumer')
if trace_ref_consumer == 'com.android.tools.r8.tracereferences.TraceReferencesCheckConsumer':
@@ -432,9 +438,8 @@
nolib = args.nolib
if version == 'main':
if not args.no_build:
- gradle.RunGradle(
- [utils.GRADLE_TASK_R8] if nolib else [utils.GRADLE_TASK_R8LIB]
- )
+ gradle.RunGradle(
+ [utils.GRADLE_TASK_R8] if nolib else [utils.GRADLE_TASK_R8LIB])
return utils.R8_JAR if nolib else utils.R8LIB_JAR
if version == 'source':
return '%s:%s' % (utils.BUILD_JAVA_MAIN_DIR, utils.ALL_DEPS_JAR)
@@ -576,6 +581,9 @@
cmd.append('-ea')
if args.enable_test_assertions:
cmd.append('-Dcom.android.tools.r8.enableTestAssertions=1')
+ feature_jars = dump.feature_jars()
+ if determine_isolated_splits(build_properties, feature_jars):
+ cmd.append('-Dcom.android.tools.r8.isolatedSplits=1')
if args.print_times:
cmd.append('-Dcom.android.tools.r8.printtimes=1')
if args.r8_flags:
@@ -609,7 +617,7 @@
cmd.extend(['--output', out])
else:
cmd.extend(['--source', program_jar])
- for feature_jar in dump.feature_jars():
+ for feature_jar in feature_jars:
if not args.ignore_features and compiler != 'd8':
cmd.extend([
'--feature-jar', feature_jar,