| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Change-Id: I862bfe6c9a9f6ec3c16af2a720ce2ca75492e574
|
|
|
|
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
|
|
|
|
|
|
Change-Id: I29d80004eba897b72304ec83fe89ed1071a24024
|
|
|
|
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
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
This reverts commit 5caf652d7bfb43bdd2f3addfe8021a5fb8e3f796.
Something's going wrong on the Mac host side, even though this should be target only.
Change-Id: I165f23ee25cb1c4b0732e1d1afcae75271abcb09
|
|
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
|
|
This also removes some unused instructions and instructions not
available on MIPS64R6.
Change-Id: I44bfe12c60344312c88c45e97b6b07dcd5bdc630
|
|
Change-Id: Iea99fa683440673ff517e246f35fade96600f229
|
|
|
|
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
|
|
|
|
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
|
|
|
|
This reverts commit a5a79b6607471371bb80ff8fee36dbf05c807ee5.
Change-Id: Ie890882c1c344099fbf58abce022b2815e809e78
|
|
|
|
Change-Id: I06fe2035f911cfc8537e27961c2dc2c7e4d1e20d
|
|
|
|
Add intrinsic support for String.equals on MIPS32.
Change-Id: I2d184aa4d5dae7cdd4a89c2c902535692c9e7393
|
|
- 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
|
|
|
|
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>
|
|
|
|
|
|
|
|
|
|
Fixes some file names that were too long and causing tests to fail.
Change-Id: Id4929b2ba98e7c0bc7daa33ec3e783738f5e4719
|
|
This fixes a crash in dex2oat while compiling boot.oat.
Change-Id: I44fc92809902d7fc226c88b3e3f081b72cc19ce5
|
|
|
|
No changes, bug fixed in:
https://android-review.googlesource.com/#/c/180886/
Bug: 22858531
This reverts commit 4b018565e57c3349a3c1b5ec8ac9dae261c5e00b.
Change-Id: I86d9c2b55d535d803c6e1b3b8b4836bf6ff077e5
|
|
|
|
Previously, empty text sections caused an underflow in the oat file
size.
Added regression test.
Bug: 22858531
Change-Id: I9391a3666ab04e32472a9776d5217fe1743417a9
|
|
|
|
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
|
|
|
|
Bug: 25493974
Change-Id: I59e7ee6ee5b991b327553d022d7d212db415c9c3
|
|
Uses the Instruction class to not bother with the decoding logic.
Change-Id: Id1501b57129084014f05e41513319639a630361d
|
|
|