OSDN Git Service
Tamas Berghammer [Thu, 12 Nov 2015 11:06:38 +0000 (11:06 +0000)]
Merge "Revert "Mark __jit_debug_register_code as a unique symbol""
Tamas Berghammer [Thu, 12 Nov 2015 11:05:50 +0000 (11:05 +0000)]
Revert "Mark __jit_debug_register_code as a unique symbol"
This reverts commit
e7132a9a5d98103fa52a750287476b063fa88863.
We are still using ld on some targets instead of gold when compiling for ararch64. Revert until we figure out why.
Change-Id: If09fac8d72485dc8adbc81e44a2af84ed91dcd91
Sebastien Hertz [Thu, 12 Nov 2015 11:00:38 +0000 (11:00 +0000)]
Merge "JDWP: default implementation of Method.IsObsolete"
Roland Levillain [Thu, 12 Nov 2015 10:43:30 +0000 (10:43 +0000)]
Merge "MIPS64: fix calling conventions in LoadClass and field accesses"
Tamas Berghammer [Thu, 12 Nov 2015 10:40:23 +0000 (10:40 +0000)]
Merge "Mark __jit_debug_register_code as a unique symbol"
Vladimir Marko [Thu, 12 Nov 2015 10:16:29 +0000 (10:16 +0000)]
Merge "ART: Add comments to Scoped-/ArenaAllocator."
Mathieu Chartier [Thu, 12 Nov 2015 03:23:54 +0000 (03:23 +0000)]
Merge "Image space cleanup for app images"
Mathieu Chartier [Tue, 10 Nov 2015 22:13:23 +0000 (14:13 -0800)]
Image space cleanup for app images
Removed Heap::GetImageSpace, added Heap::GetBootImageSpace.
Generalized some logic in the class linker for image spaces.
Bug:
22858531
Change-Id: Ib3e12bb061a247e232d3dc93b0d6b35eb3a34d25
Hans Boehm [Thu, 12 Nov 2015 02:51:20 +0000 (02:51 +0000)]
Merge "Get class loader to remember interrupts"
Hans Boehm [Thu, 12 Nov 2015 00:13:57 +0000 (16:13 -0800)]
Get class loader to remember interrupts
Bug:
25606036
Monitor::Wait should not reset the interrupt flag unless it actually
throws the exception.
Change-Id: Id6a35c888160043831f30055f9bd39e7f0440439
Alexey Frunze [Wed, 11 Nov 2015 21:31:12 +0000 (13:31 -0800)]
MIPS64: fix calling conventions in LoadClass and field accesses
This fixes failures in test 529-checker-unresolved
Change-Id: I6170c22059e9711b2fcc965b00d6e34edd839539
Alex Light [Wed, 11 Nov 2015 23:36:15 +0000 (23:36 +0000)]
Merge "Make test 968's name shorter"
Alex Light [Wed, 11 Nov 2015 23:32:24 +0000 (15:32 -0800)]
Make test 968's name shorter
It was causing intermittent CI breaks due to the long name of the
generated oat file.
Change-Id: I71b4b3aa1a13df2696b276998cafe40006d54b66
Aart Bik [Wed, 11 Nov 2015 22:38:10 +0000 (22:38 +0000)]
Merge "Revert "lambda: unit test for lambda expressions at Java Language source level.""
Aart Bik [Wed, 11 Nov 2015 22:36:19 +0000 (22:36 +0000)]
Revert "lambda: unit test for lambda expressions at Java Language source level."
REASON: Buildbots are having jack issues
This reverts commit
152ee552652691ecaec2db420d468cb178647952.
Change-Id: I650fe1a94f1b97c14a689599703498506dd70b23
David Srbecky [Wed, 11 Nov 2015 21:36:22 +0000 (21:36 +0000)]
Merge "Move .debug_line before .debug_info."
David Srbecky [Wed, 11 Nov 2015 20:38:16 +0000 (20:38 +0000)]
Move .debug_line before .debug_info.
Swap the order since .debug_info depends on .debug_line, but
not vice versa. This is for disk streaming convenience.
Change-Id: Iabe18fea97aa5527aedfc55c9bdf66e5587568bc
Vladimir Marko [Wed, 11 Nov 2015 18:45:50 +0000 (18:45 +0000)]
ART: Add comments to Scoped-/ArenaAllocator.
Change-Id: Iba7350114fb998ac9ee1466ef12f4a5024a18e8e
Vladimir Marko [Wed, 11 Nov 2015 18:44:25 +0000 (18:44 +0000)]
Merge "ART: Fix arena allocation for valgrind."
Aart Bik [Wed, 11 Nov 2015 18:30:36 +0000 (18:30 +0000)]
Merge "lambda: unit test for lambda expressions at Java Language source level."
Aart Bik [Wed, 11 Nov 2015 00:49:45 +0000 (16:49 -0800)]
lambda: unit test for lambda expressions at Java Language source level.
Rationale: having a checkers-flavored unit test will enable testing
both if the correct HIR is generated using the checker
as well as the correctness of execution (interpreter for now,
but native code later).
Change-Id: I588e9955efaaf53e5c5e3398399e009041cd65f0
Alex Light [Wed, 11 Nov 2015 18:07:14 +0000 (18:07 +0000)]
Merge "Correct exception behavior for default methods"
Vladimir Marko [Tue, 10 Nov 2015 20:54:22 +0000 (20:54 +0000)]
ART: Fix arena allocation for valgrind.
Move the zero-initialization check after marking the newly
allocated chunk as defined and check only the allocated
space without the red zone. Also mark unallocated space as
inaccessible instead of just undefined.
Change-Id: I74fc65f5b53acb74cec4e5a0146f41dacf4a1470
Tamas Berghammer [Wed, 2 Sep 2015 10:24:33 +0000 (11:24 +0100)]
Mark __jit_debug_register_code as a unique symbol
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.
This is the recommit of
5caf652d7bfb43bdd2f3addfe8021a5fb8e3f796 after
fixing the compilation issue on sdk_phone_armv7-sdk (mac) target.
Change-Id: I027d2c7964098d47ed350ee6b7c74d82c88a5d1f
Calin Juravle [Wed, 11 Nov 2015 13:55:39 +0000 (13:55 +0000)]
Merge "Revert "Revert "Run type propagation after inliner only when needed."""
Calin Juravle [Mon, 26 Oct 2015 14:05:01 +0000 (14:05 +0000)]
Revert "Revert "Run type propagation after inliner only when needed.""
This reverts commit
271743601650308c7ac5c7a3ec35025d8130a298.
Change-Id: I173e27a0a4d7d54f90ca459eb48d280d1d40ab70
Roland Levillain [Wed, 11 Nov 2015 12:40:26 +0000 (12:40 +0000)]
Merge "Ignore failures of WeakHashMapTest#test_keySet in libcore tests."
Roland Levillain [Wed, 11 Nov 2015 12:16:52 +0000 (12:16 +0000)]
Ignore failures of WeakHashMapTest#test_keySet in libcore tests.
The outcome of this test depends on a weak reference being
collected before a timeout, which sometimes fails. This
test used to pass, but recent changes have made this
non-determinism more frequent. Until we rewrite this
properly (if ever), just ignore these failures.
Bug:
25437292
Change-Id: I1f041f6dfc1318026bce966575477486207f5351
Vladimir Marko [Wed, 11 Nov 2015 11:27:03 +0000 (11:27 +0000)]
Merge "Optimizing/ARM: Improve shifts of long values by a constant."
Vladimir Marko [Tue, 10 Nov 2015 19:31:26 +0000 (19:31 +0000)]
Optimizing/ARM: Improve shifts of long values by a constant.
Change-Id: Id66ef8cdb9e64306f2be547370b90cc100a3e086
Alex Light [Fri, 9 Oct 2015 22:59:48 +0000 (15:59 -0700)]
Correct exception behavior for default methods
Default methods are defined to throw an IncompatibleClassChangeError
(ICCE) when they are called and there is no "best" implementation.
Previously we would simply throw an ICCE during class loading as soon
as we noticed that this would happen if called. This makes us wait
until we actually attempt to execute the method. Furthermore, this
allows us to use other, non-conflicting, methods on the object as
normal.
Furthermore, this makes us correctly throw AbstractMethodErrors in
cases where all default implementations of a method are overridden by
abstract declarations.
Adds 3 tests for this new behavior.
Bug:
24618811
Change-Id: Id891958a81f9b3862b2ce5919636aabef7d3422e
Mathieu Chartier [Tue, 10 Nov 2015 22:09:40 +0000 (22:09 +0000)]
Merge "Don't use fixed addresses in mem map test"
Mathieu Chartier [Tue, 10 Nov 2015 18:32:52 +0000 (10:32 -0800)]
Don't use fixed addresses in mem map test
We obtain a valid address instead of assuming there won't be a map
there.
These checks used to be OK when we didn't start the runtime.
Change-Id: Ie636ed3773d2c0c62d87e57623ee4ce380c64db0
Andreas Gampe [Tue, 10 Nov 2015 21:55:08 +0000 (21:55 +0000)]
Merge "ART: Fix leak in Heap"
Andreas Gampe [Tue, 10 Nov 2015 21:34:17 +0000 (13:34 -0800)]
ART: Fix leak in Heap
Delete a mutex in the destructor.
Change-Id: I7fb8f3f9e7a30baf352f384f38520eb0dd4906eb
Vladimir Marko [Tue, 10 Nov 2015 20:04:08 +0000 (20:04 +0000)]
Merge "Optimizing: Clean up Equal/NotEqual constant folding for nulls."
Hiroshi Yamauchi [Tue, 10 Nov 2015 19:55:05 +0000 (19:55 +0000)]
Merge "Rosalloc fast path in assembly for x86_64."
Vladimir Marko [Tue, 10 Nov 2015 19:53:01 +0000 (19:53 +0000)]
Optimizing: Clean up Equal/NotEqual constant folding for nulls.
Change-Id: I17766395092ec61df61ef0b9ae4c37fd38164a3b
David Brazdil [Tue, 10 Nov 2015 19:04:28 +0000 (19:04 +0000)]
Merge "ART: Remove unnecessary helper method from GraphChecker"
David Brazdil [Tue, 10 Nov 2015 18:49:28 +0000 (18:49 +0000)]
ART: Remove unnecessary helper method from GraphChecker
Change-Id: I59f50a559da560033f4c9407d83b68fc5d64bd3c
Vladimir Marko [Tue, 10 Nov 2015 18:31:55 +0000 (18:31 +0000)]
Merge "Optimizing: Improve constant folding + DCE for inlining."
David Brazdil [Tue, 10 Nov 2015 18:30:18 +0000 (18:30 +0000)]
Merge "ART: Refactor iteration over normal/exceptional successors"
David Brazdil [Tue, 10 Nov 2015 11:07:31 +0000 (11:07 +0000)]
ART: Refactor iteration over normal/exceptional successors
Add helper methods on HBasicBlock which return ArrayRef with the
suitable sub-array of the `successors_` list.
Change-Id: I66c83bb56f2984d7550bf77c48110af4087515a8
Vladimir Marko [Tue, 10 Nov 2015 17:14:35 +0000 (17:14 +0000)]
Optimizing: Improve constant folding + DCE for inlining.
Run constant folding before DCE in inliner to eliminate more
code that can prevent inlining. Improve the constant folding
to evaluate Equals and NotEquals for null inputs.
Change-Id: I876ffb903ef39484370b6c8793f0f8467a977362
David Brazdil [Tue, 10 Nov 2015 13:10:08 +0000 (13:10 +0000)]
Merge "ART: Improve comment about inlining into try/catch"
David Brazdil [Tue, 10 Nov 2015 13:04:30 +0000 (13:04 +0000)]
ART: Improve comment about inlining into try/catch
Change-Id: I66a4fd3206847c8d5bb57b1678d9d3dc94331294
David Brazdil [Tue, 10 Nov 2015 13:01:50 +0000 (13:01 +0000)]
Merge "ART: Fix critical edge checks in GraphChecker"
David Brazdil [Tue, 10 Nov 2015 13:01:28 +0000 (13:01 +0000)]
Merge "Revert "Revert "ART: Update DCE to work with try/catch"""
David Brazdil [Tue, 10 Nov 2015 10:12:41 +0000 (10:12 +0000)]
ART: Fix critical edge checks in GraphChecker
Previous CL I5a13b8bb74509b48f5d628906f7158af007f99ae fixed logic for
splitting critical edges. The same logic is used in GraphChecker when
testing critical edges weren't introduced by a pass. This patch updates
it too.
Bug:
25493695
Bug:
25454012
Change-Id: I56226c82324ee55ae2fbe7262608dd2868d930f1
David Brazdil [Tue, 10 Nov 2015 09:46:41 +0000 (09:46 +0000)]
Merge "ART: Add clarifying comment"
David Brazdil [Tue, 10 Nov 2015 09:43:28 +0000 (09:43 +0000)]
ART: Add clarifying comment
Change-Id: I189ec4cae0aa1a5245a79e86d1ec0592e38eac4a
David Brazdil [Mon, 2 Nov 2015 20:24:55 +0000 (20:24 +0000)]
Revert "Revert "ART: Update DCE to work with try/catch""
The previous CL failed because it did not update inputs of catch phis.
Since phi input indices cannot be easily mapped back to throwing
instructions, this new implementation at least removes catch phi uses
of values defined in the removed blocks to preserve graph consistency.
This reverts commit
fb552d7061746f7a90fdd5002696e255e2e15c35.
Change-Id: I63d95915d1ef50e71d3bcf0cd10aaded554035b4
Mathieu Chartier [Tue, 10 Nov 2015 03:02:58 +0000 (03:02 +0000)]
Merge "Delete flaky DCHECK"
Mathieu Chartier [Tue, 10 Nov 2015 03:01:00 +0000 (19:01 -0800)]
Delete flaky DCHECK
Fixes mips build
Change-Id: I738b41f09f3c926f21640e358cf0bd5557167b0e
Mathieu Chartier [Tue, 10 Nov 2015 02:51:37 +0000 (02:51 +0000)]
Merge "Fix mac build"
Mathieu Chartier [Tue, 10 Nov 2015 02:50:49 +0000 (18:50 -0800)]
Fix mac build
Change-Id: I22bf169f15483e54b97d77ff0887cd1fde428af9
Hiroshi Yamauchi [Thu, 29 Oct 2015 22:34:54 +0000 (15:34 -0700)]
Rosalloc fast path in assembly for x86_64.
Measurements (host, ms)
BinaryTrees: 324 -> 360 (+11%)
BinaryTrees with 64 MB alloc stack + 1 GB heap:
299 -> 275 (-8%)
MemAllocTest: 414 -> 368 (-11%)
Interestingly, BinaryTrees gets slower with default settings due to more
blocking (gc-for-alloc) collections. It seems because allocations are
faster, the allocation stack size and the heap size become the
bottleneck (note both an allocation stack overflow as well as heap
exhaustion cause gc-for-alloc collections). With a larger allocation
stack and heap where no blocking collections are observed, BinaryTrees
gets faster.
Bug:
9986565
Change-Id: I642b9fecd0a583cc133998c2f3932de815c4a757
Mathieu Chartier [Tue, 10 Nov 2015 02:07:04 +0000 (02:07 +0000)]
Merge "Add low_4gb support to MapFile and MapFileAtAddress"
Alex Light [Tue, 10 Nov 2015 01:36:31 +0000 (01:36 +0000)]
Merge "Some cleanup for tests 960-965 build scripts."
Mathieu Chartier [Mon, 9 Nov 2015 23:16:56 +0000 (15:16 -0800)]
Add low_4gb support to MapFile and MapFileAtAddress
Motivation is to use this for loading app images in low 4GB at a
non fixed address.
Added test.
Bug:
22858531
Change-Id: I0f79a4a7bfbfbdfc112e41b25c8682b1fb932ab7
Alex Light [Mon, 9 Nov 2015 22:26:35 +0000 (14:26 -0800)]
Some cleanup for tests 960-965 build scripts.
Make all 96* build scripts consistent and update 965 to build and run
with jack.
Change-Id: If27ee9c92880c75307a18b054ba926670877073a
Andreas Gampe [Mon, 9 Nov 2015 21:25:47 +0000 (21:25 +0000)]
Merge "ART: Rerun the verifier for compile-time failures"
Alex Light [Mon, 9 Nov 2015 19:30:10 +0000 (19:30 +0000)]
Merge "Class Linker: Implement default interface verification ordering."
Alex Light [Wed, 7 Oct 2015 23:08:36 +0000 (16:08 -0700)]
Class Linker: Implement default interface verification ordering.
We ensure that default interface verification failure is propagated to
the implementing class so that the compiler is able to properly handle
verification failures. Furthermore we ensure that default interfaces
are verified at the same time their implementing classes are.
This does not add additional support for default methods to the verifier.
This adds a basic test of this functionality.
Previously assumptions made about the order of verification in our
code could cause a check failure during compilation. Our old code
assumed that all code that would be run during a classes
initialization had been verified before any of it was run. The default
interfaces broke this assumption. Now we will simply verify default
interfaces with any classes that implement them.
Bug:
24618811
Change-Id: Ia11a50a28889dbd7ca22ffa730ef443e39f3cb5b
Andreas Gampe [Fri, 6 Nov 2015 04:39:56 +0000 (20:39 -0800)]
ART: Rerun the verifier for compile-time failures
To aid app failure diagnosis, by default re-run the verifier at
runtime to compute a better VerifyError message.
Rewrite the verifier driver code to pass the last actual low-level
verifier message.
Bug:
25432718
Change-Id: Ib8e6dd1ce8121045c0d38f54969100094c3dde6e
Mathieu Chartier [Mon, 9 Nov 2015 18:07:01 +0000 (18:07 +0000)]
Merge "Add more image writer comments and clean up"
Mathieu Chartier [Fri, 6 Nov 2015 00:33:15 +0000 (16:33 -0800)]
Add more image writer comments and clean up
Bug:
22858531
Change-Id: Ia3663856a7d9f67d9d9af329a54707ae2dc55a48
Nicolas Geoffray [Mon, 9 Nov 2015 14:25:19 +0000 (14:25 +0000)]
Merge "Revert "Revert "Revert "Use Jack lang dev version for compiling art tests""""
Nicolas Geoffray [Mon, 9 Nov 2015 14:00:28 +0000 (14:00 +0000)]
Revert "Revert "Revert "Use Jack lang dev version for compiling art tests"""
Breaks 962 and 963 run-tests.
This reverts commit
a6017d8fa6acfa35f6fad8169162f0e5bd034bc4.
Change-Id: I185e803640309f0055e6a3d767da201527b523e2
Vladimir Marko [Mon, 9 Nov 2015 13:53:13 +0000 (13:53 +0000)]
Merge "Optimizing: Rewrite search for common dominators."
Vladimir Marko [Fri, 6 Nov 2015 11:02:08 +0000 (11:02 +0000)]
Optimizing: Rewrite search for common dominators.
Provide a utility class that can be used to quickly search
for common dominators of two or more blocks. Change the
algorithm to avoid memory allocations.
Change-Id: Id72c975fc42377cb7622902f87c4262ea7b3cc38
Vladimir Marko [Mon, 9 Nov 2015 13:32:35 +0000 (13:32 +0000)]
Merge "Fix mip64 build: hide current method input only if it exists."
Vladimir Marko [Mon, 9 Nov 2015 12:54:16 +0000 (12:54 +0000)]
Fix mip64 build: hide current method input only if it exists.
Change-Id: I7d3cb34843d421babfb1f93469e770c05ee8d5a9
David Brazdil [Mon, 9 Nov 2015 12:47:19 +0000 (12:47 +0000)]
Merge "ART: Fix critical edge splitting under try/catch"
Nicolas Geoffray [Mon, 9 Nov 2015 12:44:51 +0000 (12:44 +0000)]
Merge "Revert "Revert "Use Jack lang dev version for compiling art tests"""
David Srbecky [Mon, 9 Nov 2015 11:58:43 +0000 (11:58 +0000)]
Merge "Fix build: lint error in elf_builder.h"
David Srbecky [Mon, 9 Nov 2015 11:56:52 +0000 (11:56 +0000)]
Fix build: lint error in elf_builder.h
Change-Id: I862bfe6c9a9f6ec3c16af2a720ce2ca75492e574
David Srbecky [Mon, 9 Nov 2015 11:30:31 +0000 (11:30 +0000)]
Merge "Rewrite ElfBuilder to make streaming directly to file easier."
Sebastien Hertz [Mon, 9 Nov 2015 11:18:06 +0000 (12:18 +0100)]
JDWP: default implementation of Method.IsObsolete
To please some IDEs sending this command, adds a default
implementation that a method is never obsolete.
Bug:
25552174
Bug: https://code.google.com/p/android/issues/detail?id=192784
Change-Id: I328522e6313f2ef5474897cad15a95edd33cd15c
David Brazdil [Fri, 6 Nov 2015 01:36:20 +0000 (01:36 +0000)]
ART: Fix critical edge splitting under try/catch
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
Vladimir Marko [Mon, 9 Nov 2015 10:14:35 +0000 (10:14 +0000)]
Merge "Optimizing: Remove unused ArtMethod* input from HInvokeStaticOrDirect."
Nicolas Geoffray [Mon, 9 Nov 2015 09:19:05 +0000 (09:19 +0000)]
Merge "Remove unused variable."
Nicolas Geoffray [Mon, 9 Nov 2015 09:15:15 +0000 (09:15 +0000)]
Remove unused variable.
Change-Id: I29d80004eba897b72304ec83fe89ed1071a24024
Nicolas Geoffray [Mon, 9 Nov 2015 08:57:28 +0000 (08:57 +0000)]
Merge "Fix interaction between JIT and instrumentation."
David Srbecky [Mon, 26 Oct 2015 10:57:09 +0000 (10:57 +0000)]
Rewrite ElfBuilder to make streaming directly to file easier.
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
Nicolas Geoffray [Sat, 7 Nov 2015 14:15:46 +0000 (14:15 +0000)]
Merge "MIPS64: small improvements in code generation"
Nicolas Geoffray [Sat, 7 Nov 2015 14:13:58 +0000 (14:13 +0000)]
Merge "MIPS64: Improve integer division by constants"
Andreas Gampe [Sat, 7 Nov 2015 01:07:27 +0000 (01:07 +0000)]
Merge "ART: Fix return-object verification"
Andreas Gampe [Sat, 7 Nov 2015 00:24:49 +0000 (16:24 -0800)]
ART: Fix return-object verification
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
Brian Carlstrom [Fri, 6 Nov 2015 23:16:22 +0000 (23:16 +0000)]
Merge "Use _exit instead of exit after exec fails"
Andreas Gampe [Fri, 6 Nov 2015 21:28:39 +0000 (21:28 +0000)]
Merge "Revert "Mark __jit_debug_register_code as a unique symbol""
Andreas Gampe [Fri, 6 Nov 2015 21:27:49 +0000 (21:27 +0000)]
Revert "Mark __jit_debug_register_code as a unique symbol"
This reverts commit
5caf652d7bfb43bdd2f3addfe8021a5fb8e3f796.
Something's going wrong on the Mac host side, even though this should be target only.
Change-Id: I165f23ee25cb1c4b0732e1d1afcae75271abcb09
Alexey Frunze [Thu, 24 Sep 2015 21:41:59 +0000 (14:41 -0700)]
MIPS64: small improvements in code generation
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
Alexey Frunze [Wed, 23 Sep 2015 22:12:39 +0000 (15:12 -0700)]
MIPS64: Improve integer division by constants
This also removes some unused instructions and instructions not
available on MIPS64R6.
Change-Id: I44bfe12c60344312c88c45e97b6b07dcd5bdc630
Vladimir Marko [Fri, 6 Nov 2015 12:57:55 +0000 (12:57 +0000)]
Optimizing: Remove unused ArtMethod* input from HInvokeStaticOrDirect.
Change-Id: Iea99fa683440673ff517e246f35fade96600f229
David Brazdil [Fri, 6 Nov 2015 19:36:29 +0000 (19:36 +0000)]
Merge "ART: Fix simplification of catch blocks in the presence of dead code"
David Brazdil [Thu, 5 Nov 2015 21:25:24 +0000 (21:25 +0000)]
ART: Fix simplification of catch blocks in the presence of dead code
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
Tamas Berghammer [Fri, 6 Nov 2015 18:53:52 +0000 (18:53 +0000)]
Merge "Mark __jit_debug_register_code as a unique symbol"
Tamas Berghammer [Wed, 2 Sep 2015 10:24:33 +0000 (11:24 +0100)]
Mark __jit_debug_register_code as a unique symbol
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
Andreas Gampe [Fri, 6 Nov 2015 18:42:04 +0000 (18:42 +0000)]
Merge "ART: Change behavior for rethrowing init failures (2)"