History log of /external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5444bfd16c283f13eee719e3f9589500b1089c31 18-Jul-2017 Stephan Herhut <herhut@google.com> Support to keep nesting structure of class names.

The minifier now produces names with $ separators for nested classes
to keep the nesting structure in the names. This is needed for
signature annotations, as they rely on the nesting structure to
encode type paramemeters to the outer and inner class.

R=yroussel@google.com

Bug:
Change-Id: I270608bc4124fc4b7a4d5aebfb2ea618a72115ce
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
c409ed6151a2c5b930154b26d9d0c5881513d8f9 12-Jul-2017 Stephan Herhut <herhut@google.com> Fix keep rule debugging support.

When debugging keep rules, we used to keep all classes and methods. This
blows up the dex to a size that no longer runs on devices. With this change
we only keep default constructors, to handle the use of newInstance without
corresponding keep rule.

R=ager@google.com

Bug:
Change-Id: I3bca90c14ede030d03b4b0ae9e4c84dcdbbb41a8
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
0581415584cc9bcd8a6119ecca430821201d803e 05-Jul-2017 Søren Gjesse <sgjesse@google.com> Don't consider library methods for single invoke targets

Methods from the library can have implementations which are not visible -
even if the library is included in the compilation. This could lead to
a single implementation of a library interface method in the application
to be considered a single target for optimization purposes.

Keep the special handling of selected library methods from
java.lang.StringBuilder and java.lang.StringBuffer.

This saves 28 KB on GMS Core v9.

Change-Id: I788186f10513bfe3644515a2a649a1d45bc1a721
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
1729211ff21344aa31317ad5520b68e633e45c9f 04-Jul-2017 Lars Bak <bak@google.com> Avoid excessiv allocation of DexString in Factory.
Improved speed of D8 with 8.3%

1cb8c0cc5fb5998c2f90c07c02a14e37affcc7ea

Bug:
Change-Id: Ib2045145e7eeea393fa41127a24a5270f039ce2f
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
f2fb4661f1907134015831f013adf941a36ae647 27-Jun-2017 Søren Gjesse <sgjesse@google.com> Remove code originating from asserts

This removes all code produced by javac for supporting "assert" through the
following rewritings:

* <class name>.class.desiredAssertionStatus() is rewritten to false
* Static field get of $assertionsDisabled is rewritten to true
* Allow const-class instructions to be dead code
* Fully remove trivial (empty) <clinit> methods

The optimization is under a flag, which is on by default. This flag is
currently not available through the API (or through the CLI).

This saves 475 KB on YouTube 12.22.

Change-Id: I8980279ee5ceb75f82e148be51ab58e4ed8a6054
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
e3ca97d3f6e75fd8b2b332fb4ba1923719208db7 07-Jun-2017 Søren Gjesse <sgjesse@google.com> Add option to inject argument logging into generated code

This can be helpful when debugging R8, and is not intended for usage through
the public API.

Change-Id: Ie52130558ee7c3fe270d07083ca93ae292409931
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
2ecfe14809f915219856ef7387f04f2721fdccfc 01-Jun-2017 Stephan Herhut <herhut@google.com> Replace the use of switchmaps with direct use of ordinal.

Bug:
Change-Id: Iee5cd16ba848617a7eaac3d55283621c54b36ff1
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
f820a57655a3b5712825de91bf9d95b9d88e84bf 31-May-2017 Yohann Roussel <yroussel@google.com> Add support for tracing main dex classes in R8

In addition to the given main dex list, allow to handle tracing rules
for calculating the list of classes required to be kept in the main dex
regarding legacy MultiDex constraints. Main dex list and constraints
tracing are not excliusive, when both are provided their class lists are
just merged. Runtime annotations with enum values are taken into account
precisely (if classpath is complete) and Annotations without enum are
not forced into the main dex so as classes annotated by them.

In this first step support is only added to R8.
In R8, When tree shaking and legacy main dex tracing are enabled together,
the assumption is made that tree shaking is keeping every classes with
code involved in secondary dex files installation. This allows to let tree
shaking reuse the tracing made for the main dex list instead of restarting
from scratch.

This change also introduces CompilationResult as an internal result allowing
easier inspection by tests. CompilationResult is not returned by public
R8/D8 methods.

Sources of new multidex tests are modified versions of some Jack tests.

Bug: 37772111
Change-Id: I7b741ace5a990a66cd4b991197de409c795e7d95
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
f9e4b57d2bdff0604dc6974a8779ecb406d1aa35 30-May-2017 Denis Vnukov <vnukov@google.com> Desugaring of try-with-resources.

Adds desugaring of try-with-resources for pre-19 min-sdk
version, it essentially boils down to removing all calls to
Throwable::addSuppressed(...) and replacing all calls to
Throwable::getSuppressed() with empty array of Throwable.

The desugaring requires library and class path since it needs
to inspect/check exception class hierarchy. Disabling it by
default until we measure performance impact.

Bug:37744723

BUG=

Change-Id: If2781ec68cab3a2b38127ee20fffb94ceac3157a
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
39cdb4cb692e28fb956bef615546f4899861f901 24-May-2017 Alan Leung <acleung@google.com> Use a pool for DexDebugEvents.

Lowers heap requirement from 460MB to 430MB in GMSCore.

For 480MB heap with this change:

real 0m54.886s
user 2m0.952s
sys 0m2.480s

Without this change:

real 1m18.465s
user 3m11.344s
sys 0m2.868s

BUG=

Change-Id: I442d4c52bfa092bdea42cb66c1edbb7346ae1566
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
ad417a547c741b1b9758a8e7941c628d96f208a9 23-May-2017 Alan Leung <acleung@google.com> Revert "Use a pool for DexDebugEvents."

This reverts commit 5ac4de3d63faaf09806e9bd93dc038bc0f2d7541.

Change-Id: Icce64cd5c7252abd606f4e7d1a39acbce1e6affc
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
5ac4de3d63faaf09806e9bd93dc038bc0f2d7541 23-May-2017 Alan Leung <acleung@google.com> Use a pool for DexDebugEvents.

Lowers heap requirement from 460MB to 430MB in GMSCore.

For 480MB heap with this change:

real 0m54.886s
user 2m0.952s
sys 0m2.480s

Without this change:

real 1m18.465s
user 3m11.344s
sys 0m2.868s

BUG=

Change-Id: Ie9565cbd2447cce31680a8dd3e88e2bd2e02723b
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java
418d1ca139ea11316113beafbb3b3dd3fd5587ab 22-May-2017 Mads Ager <ager@google.com> Initial push.
/external/r8/src/main/java/com/android/tools/r8/graph/DexItemFactory.java