summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-11-09Merge "ART: Fix critical edge splitting under try/catch" David Brazdil
2015-11-09Merge "Revert "Revert "Use Jack lang dev version for compiling art tests""" Nicolas Geoffray
2015-11-09Merge "Fix build: lint error in elf_builder.h" David Srbecky
2015-11-09Fix build: lint error in elf_builder.h David Srbecky
Change-Id: I862bfe6c9a9f6ec3c16af2a720ce2ca75492e574
2015-11-09Merge "Rewrite ElfBuilder to make streaming directly to file easier." David Srbecky
2015-11-09ART: Fix critical edge splitting under try/catch David Brazdil
A critical edge would not be split if the predecessor ends with TryBoundary. This would eventually trip liveness analysis because a back edge block would have smaller liveness position than a nested loop. Another implication of this change is that an edge between a loop's pre-header ending with TryBoundary and the header will be split, guaranteeing that a pre-header always has just one successor. Bug: 25493695 Bug: 25454012 Change-Id: I5a13b8bb74509b48f5d628906f7158af007f99ae
2015-11-09Merge "Optimizing: Remove unused ArtMethod* input from HInvokeStaticOrDirect." Vladimir Marko
2015-11-09Merge "Remove unused variable." Nicolas Geoffray
2015-11-09Remove unused variable. Nicolas Geoffray
Change-Id: I29d80004eba897b72304ec83fe89ed1071a24024
2015-11-09Merge "Fix interaction between JIT and instrumentation." Nicolas Geoffray
2015-11-08Rewrite ElfBuilder to make streaming directly to file easier. David Srbecky
The previous design required knowing all the sections and their sizes before even the first byte of the file was written. The new design allows sections to be written one by one without any knowledge of later sections. Furthermore, as soon as section is started, its virtual memory address is known, which removes the need for the various patching passes. The new ElfBuilder essentially tries to be a thin wrapper around OutputStream which keeps track where the various sections start/end and then writes their ELF headers. Change-Id: I817e7f3b41882e4e4b9b442cfe56e4ef2e26babd
2015-11-07Merge "MIPS64: small improvements in code generation" Nicolas Geoffray
2015-11-07Merge "MIPS64: Improve integer division by constants" Nicolas Geoffray
2015-11-07Merge "ART: Fix return-object verification" Andreas Gampe
2015-11-06ART: Fix return-object verification Andreas Gampe
If the declared return type was unresolvable, we always threw a soft failure, only. However, if the register type is not a reference, this should always be a hard failure. Add a test case. Bug: 25494456 Change-Id: I6482a45ec36b58895816647da0ff3a731b31319f
2015-11-06Merge "Use _exit instead of exit after exec fails" Brian Carlstrom
2015-11-06Merge "Revert "Mark __jit_debug_register_code as a unique symbol"" Andreas Gampe
2015-11-06Revert "Mark __jit_debug_register_code as a unique symbol" Andreas Gampe
This reverts commit 5caf652d7bfb43bdd2f3addfe8021a5fb8e3f796. Something's going wrong on the Mac host side, even though this should be target only. Change-Id: I165f23ee25cb1c4b0732e1d1afcae75271abcb09
2015-11-06MIPS64: small improvements in code generation Alexey Frunze
Specifically: - More efficient load/store of constant 0 (and +0.0) - Improved swapping of floats/doubles in registers - Use kNoOutputOverlap wherever possible - More efficient 64-bit integer comparison with 0 - More efficient load of integer constants of the form (2**n)-1 Change-Id: Ic2914d8865aa6616b9a0b21b3cc173d4477eb8c7
2015-11-06MIPS64: Improve integer division by constants Alexey Frunze
This also removes some unused instructions and instructions not available on MIPS64R6. Change-Id: I44bfe12c60344312c88c45e97b6b07dcd5bdc630
2015-11-06Optimizing: Remove unused ArtMethod* input from HInvokeStaticOrDirect. Vladimir Marko
Change-Id: Iea99fa683440673ff517e246f35fade96600f229
2015-11-06Merge "ART: Fix simplification of catch blocks in the presence of dead code" David Brazdil
2015-11-06ART: Fix simplification of catch blocks in the presence of dead code David Brazdil
Simplification of catch blocks transforms the code so that catch blocks have only exceptional predecessors. However, it is invoked before trivially dead code is eliminated which breaks simple assumptions such as the fact that a catch block cannot start with move-exception if it has non-exceptional predecessors. This patch fixes the algorithm to work under these relaxed conditions. Bug: 25494450 Bug: 25492628 Change-Id: Idc8d010102a4b8b9a6cd918b98d6e11d1838db0c
2015-11-06Merge "Mark __jit_debug_register_code as a unique symbol" Tamas Berghammer
2015-11-06Mark __jit_debug_register_code as a unique symbol Tamas Berghammer
This symbol is used to notify the debugger about JIT library load/unload events. Because of ICF, several functions with the same body put to the same adress by the linker what causes the debugger to get notifictaion about JIT load/unload events in several case where it isn't really happened. This change disable ICF for the __jit_debug_register_code symbol to prevent this behavior with keeping the symbol unique in the object file. Change-Id: I392be25d8a07f47f8217bf693c8e5919d29cac7b
2015-11-06Merge "ART: Change behavior for rethrowing init failures (2)" Andreas Gampe
2015-11-06Revert "Revert "Use Jack lang dev version for compiling art tests"" Alex Light
This reverts commit a5a79b6607471371bb80ff8fee36dbf05c807ee5. Change-Id: Ie890882c1c344099fbf58abce022b2815e809e78
2015-11-06Merge "ART: Fix potential integer overflow in JNI." Vladimir Marko
2015-11-06ART: Fix potential integer overflow in JNI. Vladimir Marko
Change-Id: I06fe2035f911cfc8537e27961c2dc2c7e4d1e20d
2015-11-06Merge "MIPS32: java.lang.String.equals" Andreas Gampe
2015-11-06MIPS32: java.lang.String.equals Chris Larsen
Add intrinsic support for String.equals on MIPS32. Change-Id: I2d184aa4d5dae7cdd4a89c2c902535692c9e7393
2015-11-06Fix interaction between JIT and instrumentation. Nicolas Geoffray
- The JIT needs to go through the instrumentation to update entry points. - The instrumention needs to know if a method got JITted to know if needs to deoptimize. bug:25438583 Change-Id: I4b186a1da9f4a3fb329efd052a774d5502a902a1
2015-11-06Merge "Improve X86 handling of constants to Field/Array Set" Nicolas Geoffray
2015-11-06Improve X86 handling of constants to Field/Array Set Mark Mendell
AnTuTu 5.6 f.v.b() function on X86 showed several places where FP constants were created using the stack, one in an inner loop. Change ArraySet and *FieldSet to allow constants, and then generate integer constant moves, rather than forcing the constant to be materialized into a register. This will also help with register pressure. Change-Id: Ibebe2fed748a1bbeca47c36e9536b9b2357fc3cb Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
2015-11-06Merge "JDWP: fix returned tag for ClassType.NewInstance" Sebastien Hertz
2015-11-06Merge "ART: Fix ignoring duplicate fields when loading class." Vladimir Marko
2015-11-06Merge "MIPS64: Implement virtual intrinsic slow path" Nicolas Geoffray
2015-11-06Merge "Change test .dex.art to .art" Mathieu Chartier
2015-11-05Change test .dex.art to .art Mathieu Chartier
Fixes some file names that were too long and causing tests to fail. Change-Id: Id4929b2ba98e7c0bc7daa33ec3e783738f5e4719
2015-11-05MIPS64: Implement virtual intrinsic slow path Alexey Frunze
This fixes a crash in dex2oat while compiling boot.oat. Change-Id: I44fc92809902d7fc226c88b3e3f081b72cc19ce5
2015-11-06Merge "Revert "Revert "Add basic image writer support for app images""" Mathieu Chartier
2015-11-05Revert "Revert "Add basic image writer support for app images"" Mathieu Chartier
No changes, bug fixed in: https://android-review.googlesource.com/#/c/180886/ Bug: 22858531 This reverts commit 4b018565e57c3349a3c1b5ec8ac9dae261c5e00b. Change-Id: I86d9c2b55d535d803c6e1b3b8b4836bf6ff077e5
2015-11-05Merge "Fix elf writer to properly handle empty text sections" Mathieu Chartier
2015-11-05Fix elf writer to properly handle empty text sections Mathieu Chartier
Previously, empty text sections caused an underflow in the oat file size. Added regression test. Bug: 22858531 Change-Id: I9391a3666ab04e32472a9776d5217fe1743417a9
2015-11-05Merge "ahat: limit default number of results shown." Richard Uhler
2015-11-05Use _exit instead of exit after exec fails Tobias Lindskog
A call to exit() will run the atexit handlers before exiting, which is usually not desirable in a forked-off child process. Calling _exit() instead will not run the atexit handlers. Change-Id: Ide9a69c0468faafeaf32b0babd9fcf2b4f06f546
2015-11-05Merge "Minor cleanup of Monitor::VisitLocks" Sebastien Hertz
2015-11-05ART: Fix ignoring duplicate fields when loading class. Vladimir Marko
Bug: 25493974 Change-Id: I59e7ee6ee5b991b327553d022d7d212db415c9c3
2015-11-05Minor cleanup of Monitor::VisitLocks Sebastien Hertz
Uses the Instruction class to not bother with the decoding logic. Change-Id: Id1501b57129084014f05e41513319639a630361d
2015-11-05Merge "Finalized all components of range analysis needed for dynamic bce." Aart Bik