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
|