OSDN Git Service
Nicolas Geoffray [Mon, 24 Nov 2014 17:44:15 +0000 (17:44 +0000)]
Revert "Fix the computation of linear ordering."
Build is broken.
This reverts commit
3054a90063d379ab8c9e5a42a7daf0d644b48b07.
Change-Id: I259bc2bd6a58e30391b8176f3db5fdb5c07e4d6d
Nicolas Geoffray [Fri, 21 Nov 2014 13:33:51 +0000 (13:33 +0000)]
Fix the computation of linear ordering.
The register allocator makes assumptions on the order, and
we ended up not computing the right one. The algorithm worked
fine when the loop header is the block branching to the exit,
but in the presence of breaks or do/while, it was incorrect.
Change-Id: Iad0a89872cd3f7b7a8b2bdf560f0d03493f93ba5
Andreas Gampe [Fri, 21 Nov 2014 04:24:16 +0000 (04:24 +0000)]
Merge "ART: Fix uninitialized value in arm32 assembler test"
Andreas Gampe [Fri, 21 Nov 2014 04:22:31 +0000 (20:22 -0800)]
ART: Fix uninitialized value in arm32 assembler test
The first_ field was meant to be initialized for each generation
invocation.
Change-Id: If4d36d84afe24d8ddc6bb9d25b85c764285e166a
Andreas Gampe [Fri, 21 Nov 2014 01:06:41 +0000 (01:06 +0000)]
Merge "ART: Fix arm32 assembler test."
Andreas Gampe [Fri, 21 Nov 2014 01:01:10 +0000 (17:01 -0800)]
ART: Fix arm32 assembler test.
Drop the requested architecture from armv7ve to armv7-a, but tune
for cortex-a15. That allows sdiv and udiv, but has the advantage
that it works on gcc 4.8.
Change-Id: I92cca55ce01334119d8a402103ec295c66d34ca6
Christopher Ferris [Fri, 21 Nov 2014 00:07:42 +0000 (00:07 +0000)]
Merge "Restrict FDO to only apply to target build."
Dehao Chen [Thu, 13 Nov 2014 22:13:58 +0000 (14:13 -0800)]
Restrict FDO to only apply to target build.
Change-Id: I0ef4199b34c123a17eaf2c2f18bc8a1496e03cf8
Igor Murashkin [Thu, 20 Nov 2014 22:53:58 +0000 (22:53 +0000)]
Merge "dex2oat: Pack likely-dirty objects together when generating the boot image"
Igor Murashkin [Fri, 14 Nov 2014 23:01:59 +0000 (15:01 -0800)]
dex2oat: Pack likely-dirty objects together when generating the boot image
This introduces a new algorithm into image writer which "bins" objects
by how likely they are to be dirtied at runtime. Objects in the same bin
are placed contiguously in memory (i.e. into the same page). We try to
tune the bin selection based on how clean or how dirty the object will
likely be at runtime.
As-is, this saves about 150KB per-process (private-dirty pages) and 700KB in
zygote (shared-dirty).
There is still about 800KB of objects that are clean but located in
dirty pages, so with more analysis we can tune the bin selection and get
even more memory savings.
(cherry picked from commit
3f735bd4f9d09a0f9b2b01321e4c6917879dcae6)
Bug:
17611661
Change-Id: Ia1455e4c56ffd0a36ae2a723d35b7e06502980f7
Hiroshi Yamauchi [Thu, 20 Nov 2014 22:35:20 +0000 (22:35 +0000)]
Merge "Tune rosalloc buffer sizes."
Andreas Gampe [Thu, 20 Nov 2014 22:33:45 +0000 (22:33 +0000)]
Merge "ART: Assembler_arm_test"
Andreas Gampe [Tue, 18 Nov 2014 21:46:46 +0000 (13:46 -0800)]
ART: Assembler_arm_test
Add some generic test infrastructure, and update the arm32 test.
Supports many of the GPR instructions.
Change-Id: I8a270ec377f3266d6ab486e636abb50c56b87823
Hiroshi Yamauchi [Thu, 20 Nov 2014 22:16:06 +0000 (14:16 -0800)]
Tune rosalloc buffer sizes.
We now use one-page buffers for size brackets 4-7, instead of two-page
buffers, and the first 8 size brackets for thread-local allocations,
instead of 11.
No slowdown observed with MemAllocTest, EvaluateAndApplyChanges, and
BinaryTrees.
(cherrypick commit
c4cd95fa37b7138a0fa26d07c235aa409542aecd)
Bug:
18377775
Change-Id: I311f3adf9cab660d258833b17df7e6d905f73c72
Andreas Gampe [Thu, 20 Nov 2014 21:35:36 +0000 (21:35 +0000)]
Merge "ART: Split image and non-image case in dex2oat"
Ian Rogers [Thu, 20 Nov 2014 18:41:38 +0000 (18:41 +0000)]
Merge "Re-enable DumpNativeStack."
Ian Rogers [Thu, 20 Nov 2014 18:29:00 +0000 (10:29 -0800)]
Re-enable DumpNativeStack.
Bug:
15446488
Change-Id: Icdd0b90c8abe2a361a488fc1742c6896605ddc41
Ian Rogers [Thu, 20 Nov 2014 18:22:08 +0000 (18:22 +0000)]
Merge "Revert "Revert "Revert "Unfortunately, the test still hits too many run failures.""""
Ian Rogers [Thu, 20 Nov 2014 18:21:52 +0000 (18:21 +0000)]
Revert "Revert "Revert "Unfortunately, the test still hits too many run failures."""
This reverts commit
3cfb0d3421f9e5de782d20d61b011187c7edba1c.
Change-Id: Ifc4c48c45115d5593b0d064574019017c37c1fe7
Andreas Gampe [Wed, 19 Nov 2014 20:57:42 +0000 (12:57 -0800)]
ART: Split image and non-image case in dex2oat
Explicitly split out the cases (even if there is redundancy). Have
explicit flush and close operations.
Change-Id: I5ffa4c84b4f4a1f42244d4cb7af2b5cf36739c87
Narayan Kamath [Thu, 20 Nov 2014 10:47:22 +0000 (10:47 +0000)]
Merge "Prune image cache if the boot marker is still in place."
Sebastien Hertz [Thu, 20 Nov 2014 10:20:15 +0000 (10:20 +0000)]
Merge "JDWP: only deoptimize when it is required"
Nicolas Geoffray [Thu, 20 Nov 2014 09:35:39 +0000 (09:35 +0000)]
Merge "Update arm64/optimizing expectations."
Nicolas Geoffray [Thu, 20 Nov 2014 09:34:51 +0000 (09:34 +0000)]
Update arm64/optimizing expectations.
Change-Id: Ibd8292aa3ec2fb14ad8a4dadbccba23154e1b2d7
Ian Rogers [Thu, 20 Nov 2014 04:51:49 +0000 (04:51 +0000)]
Merge "Avoid JNI call with pending OOME."
Ian Rogers [Wed, 19 Nov 2014 22:05:21 +0000 (14:05 -0800)]
Avoid JNI call with pending OOME.
If EnsureResolved fails with an exception then FindClassInPathClassLoader may
fall-through to a call to NewStringUTF with a pending exception.
Bug:
15446488
Change-Id: I007f7bee7c50aa588d0b1c776da67a38314dc897
Mathieu Chartier [Wed, 19 Nov 2014 21:52:30 +0000 (21:52 +0000)]
Merge "Fix zygote space and non moving space map names"
Mathieu Chartier [Wed, 19 Nov 2014 18:51:42 +0000 (10:51 -0800)]
Fix zygote space and non moving space map names
Space names:
"non moving space" -> "zygote space"
"alloc space" -> "non moving space"
Bug:
18447855
Change-Id: Ia937b6d046ccf7f66bf1f6bbb9f17a5e0d00c016
(cherry picked from commit
c5d085c955244be1743c33227384e5b62076b8bd)
Mathieu Chartier [Wed, 19 Nov 2014 21:40:58 +0000 (21:40 +0000)]
Merge "Fix transitive equality error in set."
Mathieu Chartier [Tue, 18 Nov 2014 22:13:58 +0000 (14:13 -0800)]
Fix transitive equality error in set.
SubstringComparator used to be broken since it didn't have transitive
equality (ex. ab a ac). Now we use normal string comparison with
set.lower_bound saves an additional 12 bytes.
Also up frame size to 2700 to fix build.
Change-Id: Ie8d41faef37591e7feed1f5d2ad6258430b8ffb6
(cherry picked from commit
4b8b4693ee19efbd2d8692ca0b47b71f3b7da663)
Ian Rogers [Wed, 19 Nov 2014 21:09:12 +0000 (21:09 +0000)]
Merge "Improvements to the ARM64 disassembler."
Ian Rogers [Wed, 19 Nov 2014 20:28:36 +0000 (20:28 +0000)]
Merge "Fix the last users of TARGET_CPU_SMP."
Elliott Hughes [Mon, 17 Nov 2014 20:02:05 +0000 (12:02 -0800)]
Fix the last users of TARGET_CPU_SMP.
Everyone else assumes SMP.
Change-Id: I7ff7faef46fbec6c67d6e446812d599e473cba39
Ian Rogers [Wed, 19 Nov 2014 19:11:19 +0000 (19:11 +0000)]
Merge "AArch64: Addressing Cortex-A53 erratum 835769."
Bill Buzbee [Wed, 19 Nov 2014 19:03:48 +0000 (19:03 +0000)]
Merge "ART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case"
Nicolas Geoffray [Wed, 19 Nov 2014 18:13:22 +0000 (18:13 +0000)]
Merge "Fix safepoint bug when computing live registers."
Nicolas Geoffray [Wed, 19 Nov 2014 15:17:56 +0000 (15:17 +0000)]
Fix safepoint bug when computing live registers.
Change-Id: I8f28dd287c0e04223c49dea6a323058c1b210913
Ian Rogers [Wed, 19 Nov 2014 18:09:32 +0000 (18:09 +0000)]
Merge "Fix a memory leak in jni_internal_test."
Ian Rogers [Wed, 19 Nov 2014 18:06:46 +0000 (10:06 -0800)]
Fix a memory leak in jni_internal_test.
Caught by valgrind.
Change-Id: I8b3cc0ce946bd457c380655d3e1237b029ed4cc3
Narayan Kamath [Fri, 7 Nov 2014 17:46:28 +0000 (17:46 +0000)]
Prune image cache if the boot marker is still in place.
We place a marker in each isa cache dir and have the framework
delete it for us.
This seems like a convenient place to do it given all the other
dalvik-cache related code that hooks in here, and also because
this is the first point where we try to access the cache.
TODO: Add a timeout to the (higher level) zygote code to correctly
kill the surviving zygote if one of them never comes up.
bug:
18280671
(cherry picked from commit
c38276177aeeda4326a54f1121790c154df04300)
(partial cherry-pick of
9433ec60b325b708b9fa87e699ab4a6565741494)
Change-Id: I5dbea21b4bf9ca4106a13225946d3f35f8060a43
Nicolas Geoffray [Wed, 19 Nov 2014 14:41:15 +0000 (14:41 +0000)]
Merge "Use HOptimization abstraction for running optimizations."
Nicolas Geoffray [Wed, 19 Nov 2014 14:35:26 +0000 (14:35 +0000)]
Merge "Remove file added after bad cherry pick."
Nicolas Geoffray [Tue, 18 Nov 2014 16:53:35 +0000 (16:53 +0000)]
Use HOptimization abstraction for running optimizations.
Move existing optimizations to it.
Change-Id: I3b43f9997faf4ed8875162e3a3abdf99375478dd
Nicolas Geoffray [Wed, 19 Nov 2014 14:27:56 +0000 (14:27 +0000)]
Remove file added after bad cherry pick.
Cherr-pick being: https://android-review.googlesource.com/#/c/115165.
Change-Id: If86ce4472fd1260477817cc380cd52755924094f
buzbee [Wed, 19 Nov 2014 14:11:19 +0000 (14:11 +0000)]
Merge "Quick compiler: fix x86 special identity"
Pavel Vyssotski [Tue, 18 Nov 2014 05:51:24 +0000 (11:51 +0600)]
ART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case
OpRegRegReg in case of r_dest == r_src2 does not expect kOpMul as valid operation.
This provokes abort compiling instruction like "mul-int v0, v1, v0" if both
operands are arriving in registers.
The fix is to expect kOpMul as comutative operation.
Change-Id: I259e49edea4b8b08ca4ed1c61033bbc2b2229078
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
Sebastien Hertz [Mon, 17 Nov 2014 18:00:37 +0000 (19:00 +0100)]
JDWP: only deoptimize when it is required
We don't need to deoptimize anything when we forced the use of the
interpreter (-Xint). In this case, no compiled code is executed
(except native methods which are not concerned by deoptimization).
Therefore we even don't need to enable/disable deoptimization support
in instrumentation.
We also don't need to deoptimize a method that hasn't been compiled.
Since it will run with interpreter, there is no point deoptimizing
it. However this method may be inlined in a compiled caller method
so we still need to deoptimize everything in this case.
This CL updates breakpoint support by storing the required kind of
deoptimization for a particular method. There are 3 cases:
- kNothing: the method does not require deoptimization.
- kSelectiveDeoptimization: the method needs to be deoptimized.
- kFullDeoptimization: we must deoptimize everythinig.
When uninstalling a breakpoint, we need to do the reverse operation.
Also fixes the SanityCheckExistingBreakpoints function to control
breakpoints related to the given method only and adds extra verbose
logs when choosing the appropriate deoptimization kind.
Bug:
18407046
Change-Id: I5212c1fd2f72e06c79e7871db15696824d37dc0b
buzbee [Wed, 19 Nov 2014 13:26:05 +0000 (05:26 -0800)]
Quick compiler: fix x86 special identity
The Quick compiler recognizes and specially handles a set of
small methods - including those that simply return one of their
arguments. For x86, special identity was broken if the returned
argument was a double that was passed half in register and half
in memory.
internal b/
17325447
Change-Id: I3a766977cdc0b4216d8ad65a9870c3250b32471e
Nicolas Geoffray [Wed, 19 Nov 2014 09:08:54 +0000 (09:08 +0000)]
Merge "Consistently use k{InstructionSet}WordSize."
Nicolas Geoffray [Wed, 19 Nov 2014 09:07:47 +0000 (09:07 +0000)]
Merge "Use cross-compilation helper."
Nicolas Geoffray [Wed, 19 Nov 2014 08:47:18 +0000 (08:47 +0000)]
Consistently use k{InstructionSet}WordSize.
These constants were defined prior to k{InstructionSet}PointerSize. So
use them consistently in optimizing as a first step. We can discuss
whether we should remove them in a second step.
Change-Id: If129de1a3bb8b65f8d9c816a8ad466815fb202e6
Nicolas Geoffray [Wed, 19 Nov 2014 08:35:17 +0000 (08:35 +0000)]
Use cross-compilation helper.
The default method uses the current pointer size. We should
use the pointer size given to the compiler.
Change-Id: I4d6bacad6c17ac715455cabfc89cc651368d07a5
Andreas Gampe [Wed, 19 Nov 2014 01:28:48 +0000 (01:28 +0000)]
Merge "ART: Track Flush & Close in FdFile"
Andreas Gampe [Thu, 6 Nov 2014 09:00:46 +0000 (01:00 -0800)]
ART: Track Flush & Close in FdFile
Implement a check that aborts when a file hasn't been explicitly
flushed and closed when it is destructed.
Add WARN_UNUSED to FdFile methods.
Update dex2oat, patchoat, scoped_flock and some gtests to pass with
this.
(cherry picked from commit
9433ec60b325b708b9fa87e699ab4a6565741494)
Change-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4
Mathieu Chartier [Tue, 18 Nov 2014 23:39:24 +0000 (23:39 +0000)]
Merge "Fix no relocate host tests"
Mathieu Chartier [Tue, 18 Nov 2014 23:34:09 +0000 (15:34 -0800)]
Fix no relocate host tests
Change-Id: I905bf0327685d2119a2a5d157795e0e3f16286a7
Andreas Gampe [Tue, 18 Nov 2014 21:49:52 +0000 (21:49 +0000)]
Merge "ART: Build fix"
Andreas Gampe [Tue, 18 Nov 2014 21:48:34 +0000 (13:48 -0800)]
ART: Build fix
Change-Id: I0c4d1c2981bdfb95e12c8c624826349281ada0cf
Mathieu Chartier [Tue, 18 Nov 2014 21:05:53 +0000 (21:05 +0000)]
Merge "Change 64 bit ArtMethod fields to be pointer sized"
Mathieu Chartier [Mon, 10 Nov 2014 19:08:06 +0000 (11:08 -0800)]
Change 64 bit ArtMethod fields to be pointer sized
Changed the 64 bit entrypoint and gc map fields in ArtMethod to be
pointer sized. This saves a large amount of memory on 32 bit systems.
Reduces ArtMethod size by 16 bytes on 32 bit.
Total number of ArtMethod on low memory mako: 169957
Image size: 49203 methods -> 787248 image size reduction.
Zygote space size: 1070 methods -> 17120 size reduction.
App methods: ~120k -> 2 MB savings.
Savings per app on low memory mako: 125K+ per app
(less active apps -> more image methods per app).
Savings depend on how often the shared methods are on dirty pages vs
shared.
TODO in another CL, delete gc map field from ArtMethod since we
should be able to get it from the Oat method header.
Bug:
17643507
Change-Id: Ie9508f05907a9f693882d4d32a564460bf273ee8
(cherry picked from commit
e832e64a7e82d7f72aedbd7d798fb929d458ee8f)
Vladimir Marko [Tue, 18 Nov 2014 18:14:07 +0000 (18:14 +0000)]
Merge "Do not try to sharpen super calls to abstract methods."
Vladimir Marko [Tue, 18 Nov 2014 14:47:31 +0000 (14:47 +0000)]
Do not try to sharpen super calls to abstract methods.
Bug:
18380491
(cherry picked from commit
474123dccc5aa9a0dfe566d332174877fd5b7040)
Change-Id: I6637aaa562115f6b07d8637f0cc6658f1a6739bb
Nicolas Geoffray [Tue, 18 Nov 2014 15:56:18 +0000 (15:56 +0000)]
Merge "Fix typo."
Nicolas Geoffray [Tue, 18 Nov 2014 15:55:32 +0000 (15:55 +0000)]
Fix typo.
Change-Id: Iac3b6b2206bfacf5133775b706893fc80dcad5ec
Nicolas Geoffray [Tue, 18 Nov 2014 15:37:50 +0000 (15:37 +0000)]
Merge "Opt compiler: Add support for more IRs on arm64."
Alexandre Rames [Tue, 18 Nov 2014 10:55:16 +0000 (10:55 +0000)]
Opt compiler: Add support for more IRs on arm64.
Change-Id: I4b6425135d1af74912a206411288081d2516f8bf
Matteo Franchin [Mon, 27 Oct 2014 13:29:30 +0000 (13:29 +0000)]
AArch64: Addressing Cortex-A53 erratum 835769.
Some early revisions of the Cortex-A53 have an erratum (835769) whereby
it is possible for a 64-bit multiply-accumulate instruction in AArch64
state to generate an incorrect result. The conditions which a portion
of code must satisfy in order for the issue to be observed are somewhat
complex, but all cases end with a memory (load, store, or prefetch)
instruction followed immediately by the multiply-accumulate operation.
This commit makes sure to insert a nop instruction before a 64-bit msub
instruction, whenever the latter is preceded by a memory instruction.
This behaviour should make it impossible for the Arm64 backend to
generate a sequence of instructions which matches the erratum
conditions.
Change-Id: I0022eccd41180183c20231dab6e2671d001a204c
Nicolas Geoffray [Tue, 18 Nov 2014 10:15:18 +0000 (10:15 +0000)]
Merge "Fix a bug in the type propagation phase of optimizing."
Roland Levillain [Tue, 18 Nov 2014 09:59:13 +0000 (09:59 +0000)]
Merge "Add support for int-to-float & int-to-double in optimizing."
Hiroshi Yamauchi [Tue, 18 Nov 2014 02:22:09 +0000 (02:22 +0000)]
Merge "Enable the hspace compaction on OOM by default."
Hiroshi Yamauchi [Tue, 18 Nov 2014 02:05:44 +0000 (18:05 -0800)]
Enable the hspace compaction on OOM by default.
(cherrypick commit
d3f228062a1d71ce6ace2f31ecf369ae247633c2)
Bug:
18377775
Change-Id: I4a0998c7f35b6418004e92bc07926abc9b74962a
Ian Rogers [Tue, 18 Nov 2014 01:40:22 +0000 (01:40 +0000)]
Merge "Add denver64 as a known ARM64 variant."
Ian Rogers [Tue, 18 Nov 2014 00:43:15 +0000 (16:43 -0800)]
Add denver64 as a known ARM64 variant.
Other bits of instruction_set_features_test clean up.
Bug:
18385422
Change-Id: Ic48cfa0564b41ea140805a700de7c1e51addf49d
Mathieu Chartier [Mon, 17 Nov 2014 23:37:34 +0000 (23:37 +0000)]
Merge "Change IsZygote test to !IsCompiler"
Mathieu Chartier [Mon, 17 Nov 2014 22:52:44 +0000 (14:52 -0800)]
Change IsZygote test to !IsCompiler
Enables test coverage through run test 118.
Change-Id: I21ce32e83629eb507b8440cebdd721d29171a984
Mathieu Chartier [Mon, 17 Nov 2014 22:44:16 +0000 (22:44 +0000)]
Merge "Combine image string char arrays into single array"
Mathieu Chartier [Sat, 15 Nov 2014 03:34:18 +0000 (19:34 -0800)]
Combine image string char arrays into single array
Having one giant char array shared between all the strings saves memory
since it avoids the 12 bytes of array overhead per image string. Also
added substring finding based on prefixes, strings are added into the
array in reverse sorted length.
Image size goes from
11767808 ->
11100160.
Bug:
17643507
Change-Id: I2a7f177b40d0458d5c50640643d8f16b0030bdce
(cherry picked from commit
23c1d0ca7ab63f4adad88631bddefb769d0dcc2c)
Mathieu Chartier [Mon, 17 Nov 2014 21:55:28 +0000 (21:55 +0000)]
Merge "Don't call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless"
Mathieu Chartier [Mon, 17 Nov 2014 20:36:24 +0000 (12:36 -0800)]
Don't call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless
If we fail to create the image we use imageless running, this was
breaking AddImageStringsToTable since we didn't check for this
case. Added a check which avoids calling AddImageStringsToTable and
MoveImageClassesToClassTable if we don't have an image.
Bug:
18412472
(cherry picked from commit
ab1953f35880f94752e1fcde3f6b3f0d3532125b)
Change-Id: Ida18e1fcd04d752d55923e65c3122c0ac0bde728
Bill Buzbee [Mon, 17 Nov 2014 21:15:57 +0000 (21:15 +0000)]
Merge "ART: copy dalvikInsn back on throw instruction processing"
Vladimir Marko [Mon, 17 Nov 2014 20:50:41 +0000 (20:50 +0000)]
Merge "Add stress test for field offset assignment sorting."
Vladimir Marko [Mon, 17 Nov 2014 20:22:16 +0000 (20:22 +0000)]
Add stress test for field offset assignment sorting.
Bug:
18211592
Change-Id: If6303a9d2b16b7242a90ffc11f5e87b5b4003267
Mathieu Chartier [Mon, 17 Nov 2014 19:28:27 +0000 (19:28 +0000)]
Merge "Change 512 to kLocalsMax."
Nicolas Geoffray [Mon, 17 Nov 2014 17:50:33 +0000 (17:50 +0000)]
Fix a bug in the type propagation phase of optimizing.
The compiler was placing phis (and their floating point equivalent),
in a way that it did not expect.
Change-Id: I974be1ee4aae5d27d68c6bba171db0ed25377b70
Mathieu Chartier [Mon, 17 Nov 2014 18:24:04 +0000 (10:24 -0800)]
Change 512 to kLocalsMax.
Clean up after cherry pick.
Change-Id: I39308ed1497a94b2a47bba8806e494d066d5f6fc
Vladimir Marko [Mon, 17 Nov 2014 18:24:08 +0000 (18:24 +0000)]
Merge "Fix ordering of fields with the same name."
Mathieu Chartier [Mon, 17 Nov 2014 18:23:51 +0000 (18:23 +0000)]
Merge "Fix reference leaks in ToReflectedMethod and ToReflectedField"
Mathieu Chartier [Sat, 15 Nov 2014 21:07:39 +0000 (13:07 -0800)]
Fix reference leaks in ToReflectedMethod and ToReflectedField
Used ScopedLocalRef to fix, added regression tests.
Bug:
18396311
(cherry picked from commit
8c41753e5eda8322b4d992fe88855058f4c0c2e1)
Change-Id: I0ddfc20ac2384c90ff18586242c1f1d9a6d6eb6d
Nicolas Geoffray [Mon, 17 Nov 2014 18:16:20 +0000 (18:16 +0000)]
Merge "Don't fall back to Quick in optimizing."
Nicolas Geoffray [Mon, 17 Nov 2014 12:55:12 +0000 (12:55 +0000)]
Don't fall back to Quick in optimizing.
The compiler can now have a life of its own.
Change-Id: I804638c574d1a37299fa8427a3fd10d627d2844e
Vladimir Marko [Mon, 17 Nov 2014 15:13:34 +0000 (15:13 +0000)]
Fix ordering of fields with the same name.
While the Java language doesn't allow multiple fields with
the same name in a single class (excluding fields from super
classes), the bytecode specification permits it and tools
such as proguard actually generate them. Define the order of
these fields by their dex file index and relax the check of
field ordering to permit identical names.
Bug:
18211592
Change-Id: I1dee9b2b669a6ea180a2d3a41030efb2aed53950
Roland Levillain [Mon, 17 Nov 2014 14:32:17 +0000 (14:32 +0000)]
Add support for int-to-float & int-to-double in optimizing.
- Add support for the int-to-float and int-to-double Dex
instructions in the optimizing compiler.
- Generate x86, x86-64 and ARM (but not ARM64) code for
byte to float, short to float, int to float, char to
float, byte to double, short to double, int to double and
char to double HTypeConversion nodes.
- Add related tests to test/422-type-conversion.
Change-Id: I963f9d0184a5d3721af2d8f593f133d5af7aa6a3
Sebastien Hertz [Mon, 17 Nov 2014 16:25:20 +0000 (16:25 +0000)]
Merge "Fix art_quick_instrumentation_entry stub for x86/x86_64"
Sebastien Hertz [Mon, 17 Nov 2014 11:46:27 +0000 (12:46 +0100)]
Fix art_quick_instrumentation_entry stub for x86/x86_64
Fixes bad stack offset for x86 where we read the return pc from an
incorrect location.
Fixes bad register for x86_64. The return pc is the 4th argument of
the called C function. It must be passed in rcx instead of r8 (which
is used for 5th argument).
Bug:
18170596
Change-Id: Idb521d2f6da415448fa61acf8b7d21076822830f
Sebastien Hertz [Mon, 17 Nov 2014 16:08:01 +0000 (16:08 +0000)]
Merge "Fix DCHECK in artInstrumentationMethodEntryFromCode"
Sebastien Hertz [Mon, 17 Nov 2014 15:10:44 +0000 (16:10 +0100)]
Fix DCHECK in artInstrumentationMethodEntryFromCode
We do use the quick to interpreter bridge for deoptimized method. So
move the DCHECK only in the else case.
Bug:
18170596
Change-Id: Ife83fd71da7490196ada694a4227b43a9ecbf577
Nicolas Geoffray [Mon, 17 Nov 2014 13:53:37 +0000 (13:53 +0000)]
Merge "Revert "Revert "Unfortunately, the test still hits too many run failures."""
Nicolas Geoffray [Mon, 17 Nov 2014 13:52:16 +0000 (13:52 +0000)]
Revert "Revert "Unfortunately, the test still hits too many run failures.""
This reverts commit
f8069a217312e486d034cb850e41639580b7385f.
Change-Id: I6359908ef1a2a7927b52d1fd993ef1b5873aa172
Calin Juravle [Mon, 17 Nov 2014 11:55:59 +0000 (11:55 +0000)]
Merge "[optimizing compiler] Add REM_INT, REM_LONG"
Calin Juravle [Fri, 14 Nov 2014 15:54:36 +0000 (15:54 +0000)]
[optimizing compiler] Add REM_INT, REM_LONG
- for arm, x86, x86_64
- minor cleanup/fix in div tests
Change-Id: I240874010206a5a9b3aaffbc81a885b94c248f93