ffaa91d39baf82006afe74ad6e59cfd498334017 |
|
05-Apr-2016 |
Aart Bik <ajcbik@google.com> |
Workaround invokesuper underspecified behavior. The verifier allows invokesuper on a class unrelated to the referring class. However, the runtime uses the vtable of the super class of the referring class to lookup the ArtMethod. Since the receiver has no relation to the referring class, this lead to either jumping to a wrong method, or "luckily" throw a NoSuchMethodError if the vtable index is out of bounds of the super class of the referring class. This changes the runtime behavior to always throw NoSuchMethodError when hitting such invokesuper. Also, we make the verifier consistent with the runtime by treating such calls unresolved. bug=27627004 (cherry picked from commit f663e341c550d1aa6f8f587d0ae0dbf7d254ff55) Change-Id: Ibec5a1e3a3320c474e1e0e5634a9ef62ea734cdf
|
21aa4d405cbe3d4612e3f50ebb7610cc0b3503a2 |
|
25-Apr-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Make sure the referring class is in the dex cache. The method CanAccessResolvedMethod expects the referring class in the dex file is already in the dex cache, which is true during AOT, but not necessarilly during JIT. bug:28295348 (cherry picked from commit 393fdb8b4822d80bbbd6347b088e28c03a72289e) Change-Id: I9665d377070278639eb4b5a6eeced85d656e6cb6
|
06a2b0157ac0d57636ace812c0f8bfee404a3316 |
|
22-Apr-2016 |
David Brazdil <dbrazdil@google.com> |
ART: Naive NullCheck elimination in InstructionBuilder Save a little bit of memory by not generating trivially redundant HNullCheck instructions. This patch builds on the fact that the InstructionBuilder now directly generates SSA form and looks at the input of the NullCheck. For obvious cases, such as NewInstance/Array or `this`, the NullCheck generation is completely avoided. Bug: 28173563 Change-Id: I1fdf3b096c7a939f7b8586c02a2a6b44dfa43443 (cherry picked from commit c120bbe26fe116d3c9d8322f44bb9e330e07f745)
|
116e6e2f36e82156d54f2505909be0a6b2b7247d |
|
13-Apr-2016 |
Vladimir Marko <vmarko@google.com> |
Use dex cache from compilation unit in HInstructionBuilder. Avoid calling costly ClassLinker::FindDexCache() from HInstructionBuilder, the dex cache is already available in the compilation unit. Compiling Nexus 5 boot image on host under perf(1) shows that the time spent in FindDexCache() is reduced from about 2% to well under 0.2%, 90% of the remaining hits coming from ReferenceTypePropagation which doesn't have access to the compilation unit. Bug: 28173563 (cherry picked from commit 3cd50df11b3076b801954018236c366fd9b97948) Change-Id: Ife0dba2dd8f49bd52f86ddadf06ee787bad03d66
|
c4ae916def97b9e1ef6df35c8fabb3921a0e380c |
|
07-Apr-2016 |
Mathieu Chartier <mathieuc@google.com> |
Store precice set of which constructors require barriers Fixes bugs where things in the boot image might not have been calculated even though resolved_clases was true. This only occured for app and test compiles though. Fixes test 476-checker-ctor-memory-barrier which was failing due to inlining something in the boot class path and getting a unexpected barrier since the barrier defaults to enabled. No measurable increase in RAM usage. Bug: 28005874 Change-Id: I4a417819aa129c95f4a83c38df1a66eb77824ea9
|
dee58d6bb6d567fcd0c4f39d8d690c3acaf0e432 |
|
07-Apr-2016 |
David Brazdil <dbrazdil@google.com> |
Revert "Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals"" This patch merges the instruction-building phases from HGraphBuilder and SsaBuilder into a single HInstructionBuilder class. As a result, it is not necessary to generate HLocal, HLoadLocal and HStoreLocal instructions any more, as the builder produces SSA form directly. Saves 5-15% of arena-allocated memory (see bug for more data): GMS 20.46MB => 19.26MB (-5.86%) Maps 24.12MB => 21.47MB (-10.98%) YouTube 28.60MB => 26.01MB (-9.05%) This CL fixed an issue with parsing quickened instructions. Bug: 27894376 Bug: 27998571 Bug: 27995065 Change-Id: I20dbe1bf2d0fe296377478db98cb86cba695e694
|
60328910cad396589474f8513391ba733d19390b |
|
04-Apr-2016 |
David Brazdil <dbrazdil@google.com> |
Revert "Refactor HGraphBuilder and SsaBuilder to remove HLocals" Bug: 27995065 This reverts commit e3ff7b293be2a6791fe9d135d660c0cffe4bd73f. Change-Id: I5363c7ce18f47fd422c15eed5423a345a57249d8
|
e3ff7b293be2a6791fe9d135d660c0cffe4bd73f |
|
02-Mar-2016 |
David Brazdil <dbrazdil@google.com> |
Refactor HGraphBuilder and SsaBuilder to remove HLocals This patch merges the instruction-building phases from HGraphBuilder and SsaBuilder into a single HInstructionBuilder class. As a result, it is not necessary to generate HLocal, HLoadLocal and HStoreLocal instructions any more, as the builder produces SSA form directly. Saves 5-15% of arena-allocated memory (see bug for more data): GMS 20.46MB => 19.26MB (-5.86%) Maps 24.12MB => 21.47MB (-10.98%) YouTube 28.60MB => 26.01MB (-9.05%) Bug: 27894376 Change-Id: Iefe28d40600c169c5d306fd2c77034ae19476d90
|