OSDN Git Service
Mathieu Chartier [Tue, 22 Sep 2015 15:50:05 +0000 (08:50 -0700)]
Revert "Revert "Add one LinearAlloc per ClassLoader""
Issue was fixed by:
https://android-review.googlesource.com/#/c/171945/
Bug:
22720414
This reverts commit
7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0.
Vladimir Marko [Tue, 22 Sep 2015 14:23:04 +0000 (14:23 +0000)]
Merge "ART: Fix destruction order in Runtime."
Vladimir Marko [Tue, 22 Sep 2015 10:43:46 +0000 (11:43 +0100)]
ART: Fix destruction order in Runtime.
Destroy arena allocators as late as possible.
With https://android-review.googlesource.com/172057 , the
ArenaPool was indirectly used by ClassLinker's destructor
(via ~LinearAlloc) after it has already been destroyed.
These allocators were being destroyed way too early anyway,
they should be orderly destroyed when the unique_ptr<>
members of Runtime have their destructors executed. However,
due to the potential dependence on MemMap, we destroy them
just before the MemMap::ShutDown().
Change-Id: Ifc3e5a24a29536d5767c82353901e2d22b13d643
Nicolas Geoffray [Tue, 22 Sep 2015 09:53:20 +0000 (09:53 +0000)]
Merge "Further refinements to checkcast/instanceof."
Nicolas Geoffray [Tue, 22 Sep 2015 09:48:28 +0000 (09:48 +0000)]
Merge "Revert "Add one LinearAlloc per ClassLoader""
Nicolas Geoffray [Tue, 22 Sep 2015 09:48:02 +0000 (09:48 +0000)]
Revert "Add one LinearAlloc per ClassLoader"
Times out on 32bit target/host for 132-daemon-locks-shutdown test.
Bug:
22720414
This reverts commit
356412e2b7ba3fde164bc08a44fee0ddc19c54e1.
Change-Id: I5ab3a09e88a5ad8c306a27d2606ecbecc80b9326
Nicolas Geoffray [Mon, 21 Sep 2015 17:41:21 +0000 (18:41 +0100)]
Further refinements to checkcast/instanceof.
- Use setcc when possible.
- Do an exact check in the Object[] case before checking the
component type.
Change-Id: Ic11c60643af9b41fe4ef2beb59dfe7769bef388f
Mathieu Chartier [Mon, 21 Sep 2015 23:29:32 +0000 (23:29 +0000)]
Merge "Add one LinearAlloc per ClassLoader"
Andreas Gampe [Mon, 21 Sep 2015 23:07:57 +0000 (23:07 +0000)]
Merge "ART: Use JIT image for JIT run tests"
Andreas Gampe [Mon, 21 Sep 2015 22:14:38 +0000 (15:14 -0700)]
ART: Use JIT image for JIT run tests
Don't use interpreter image anymore. That was a stop-gap measure.
Change-Id: If4b43bc20026b1ed89e59690fe35771746e354e6
Andreas Gampe [Mon, 21 Sep 2015 20:07:50 +0000 (20:07 +0000)]
Merge "Revert "ART: Skip image visitor in OatWriter for VerifyAtRuntime""
Mathieu Chartier [Mon, 21 Sep 2015 16:07:37 +0000 (09:07 -0700)]
Add one LinearAlloc per ClassLoader
Also added freeing linear alloc and class table when the
corresponding class loader is no longer reachable.
Bug:
22720414
Change-Id: Icb32c3a4c865f240e147bc87ed080a6b1d8a5795
Andreas Gampe [Mon, 21 Sep 2015 18:46:52 +0000 (11:46 -0700)]
Revert "ART: Skip image visitor in OatWriter for VerifyAtRuntime"
This reverts commit
d5ce6a80d6795ada9f47600287706135481cbb4b.
This has an unexpected side effect of not correctly including
reference classes in the boot image. Needs more investigation.
Bug:
24103765
Bug:
24213543
Change-Id: I2a7649f07ec73c59a8cb543f12b6496ac74f7a11
Vladimir Marko [Mon, 21 Sep 2015 18:52:46 +0000 (18:52 +0000)]
Merge "Fix locking on string init map (again)."
David Brazdil [Mon, 21 Sep 2015 17:43:03 +0000 (17:43 +0000)]
Merge "MIPS64: No call if ArraySet does not need a type check"
David Brazdil [Mon, 21 Sep 2015 17:39:16 +0000 (18:39 +0100)]
MIPS64: No call if ArraySet does not need a type check
The MIPS64 back-end did not use the ArraySet::NeedsTypeCheck query to
decide whether to invoke runtime or not like the other back-ends do.
Change-Id: Ie4ef9ee3ca97947256cd59983a2c1c3e3af58c83
David Brazdil [Mon, 21 Sep 2015 17:34:58 +0000 (17:34 +0000)]
Merge "ART: Print short register names with MIPS64"
David Brazdil [Mon, 21 Sep 2015 17:20:26 +0000 (18:20 +0100)]
ART: Print short register names with MIPS64
MIPS64 back-end would print register names as "GpuRegister: X" or
"FpuRegister: X". Space separates Checker attributes and therefore
caused a test to fail. This patch changes it to print "aX" and "fX"
respectively.
Change-Id: Iffae989f25563ef074dd7ef0b09cdfe438119cee
David Brazdil [Mon, 21 Sep 2015 15:44:52 +0000 (15:44 +0000)]
Merge "ART: Fix bug in DeadPhiHandling"
David Brazdil [Thu, 17 Sep 2015 15:47:21 +0000 (16:47 +0100)]
ART: Fix bug in DeadPhiHandling
When reviving dead phis for --debuggable, the DeadPhiHandling algorithm
could produce two phis of the same type, which causes the SSAChecker
graph verifier to fail. This patch fixes the bug.
Note that the code is currently not exercised because compilation is
delegated to Quick for --debuggable.
Bug:
24129675
Change-Id: I26b6dcf3071b325cc7871b989a36c505279ae681
David Brazdil [Mon, 21 Sep 2015 14:30:38 +0000 (14:30 +0000)]
Merge "ART: Optimize catch phi creation to save memory."
Vladimir Marko [Mon, 21 Sep 2015 11:00:16 +0000 (12:00 +0100)]
Fix locking on string init map (again).
Follow-up to
https://android-review.googlesource.com/172036 ,
https://android-review.googlesource.com/171621 .
Don't overwrite existing values, only insert new ones.
(Also improve performance by using move semantics.)
This prevents the following race: Thread 1 looks for string
init map for a method but doesn't find it, so it starts to
construct a new map. Thread 2 is doing the same but it's
faster and actually inserts the new map and keeps a pointer
to it. After Thread 2 releases the lock, Thread 1 acquires
it and starts to Overwrite() the element that the Thread 2
is currently using, so Thread 2 ends up looking at a map
that's being actively modified.
Change-Id: I135571af644363ea7bb282969a1bc7287b34f9b2
Nicolas Geoffray [Mon, 21 Sep 2015 10:35:24 +0000 (10:35 +0000)]
Merge "Fix braino in new build targets."
Nicolas Geoffray [Mon, 21 Sep 2015 10:20:20 +0000 (11:20 +0100)]
Fix braino in new build targets.
adb should be added to target build, not host build.
Change-Id: I91308f20cee66603441c08ba3dd57c107bf6317c
Nicolas Geoffray [Mon, 21 Sep 2015 10:13:40 +0000 (10:13 +0000)]
Merge "Remove adb from host build in buildbot."
Nicolas Geoffray [Mon, 21 Sep 2015 10:11:40 +0000 (11:11 +0100)]
Remove adb from host build in buildbot.
HOST_PREFER_32_BIT is for ART use only.
Change-Id: I080de289d22ed9ad9ab6befbd0605ef4043e8b15
Jeff Hao [Fri, 18 Sep 2015 22:58:22 +0000 (22:58 +0000)]
Merge "Fix locking on string init map."
Jeff Hao [Fri, 18 Sep 2015 21:44:32 +0000 (14:44 -0700)]
Fix locking on string init map.
Related to: https://android-review.googlesource.com/#/c/171621
Change-Id: Ib6dcf9914f490f1d744c0abe1f520e5b307c7acd
Mathieu Chartier [Fri, 18 Sep 2015 19:13:26 +0000 (19:13 +0000)]
Merge "Handle OOME during threadstress finishing message"
Andreas Gampe [Fri, 18 Sep 2015 18:07:49 +0000 (18:07 +0000)]
Merge "ART: Decrease dex2oat watchdog timeout"
Mathieu Chartier [Fri, 18 Sep 2015 03:46:56 +0000 (20:46 -0700)]
Handle OOME during threadstress finishing message
If there is an OOME that occurs after the "Finishing workers" it
caused the test to fail.
Also guard worker thread creation by try catch for OOME.
Bug:
18577101
Change-Id: I69367be0aad3f60093c02c7f63ae3c20757fb89b
Andreas Gampe [Fri, 18 Sep 2015 17:55:28 +0000 (17:55 +0000)]
Merge "ART: Clean up less in dex2oat"
Andreas Gampe [Thu, 17 Sep 2015 21:03:21 +0000 (14:03 -0700)]
ART: Clean up less in dex2oat
In non-debug builds, clean up even less. We already did not shut
down the runtime. Also skipping the compiler driver and the
verification results removes all major points of destructor
performance.
Tested with a common large app on Nexus 9. Time between dex2oat timing
message and executable exit (log from immediately-after log echo)
[w/o swap, w/ swap].
Before: 2.409s / 48.774s
After: 0.132s / 0.188s
Bug:
24199200
Change-Id: I5d8c17f8e28796545cfbb3887c07c92905f9b48d
Alex Light [Fri, 18 Sep 2015 17:37:17 +0000 (17:37 +0000)]
Merge "Make run-{libcore,jdwp}-tests work with OUT_DIR set."
Nicolas Geoffray [Fri, 18 Sep 2015 14:20:39 +0000 (14:20 +0000)]
Merge "Revert "Revert "Optimize code generation of check-cast and instance-of."""
Nicolas Geoffray [Fri, 18 Sep 2015 13:40:46 +0000 (13:40 +0000)]
Revert "Revert "Optimize code generation of check-cast and instance-of.""
This reverts commit
7537437c6a2f89249a48e30effcc27d4e7c5a04f.
Change-Id: If759cb08646e47b62829bebc3c5b1e2f2969cf84
David Brazdil [Fri, 18 Sep 2015 13:58:57 +0000 (14:58 +0100)]
ART: Optimize catch phi creation to save memory.
Catch phis are eagerly created for all vregs and then removed as
throwing instructions with undefined locals are encountered. This can
be optimized since rougly one third of vregs is already undefined with
the first throwing instruction.
Change-Id: Ia4e66f19ea03f9a129b4b64d4193d262fff45224
Nicolas Geoffray [Fri, 18 Sep 2015 13:51:30 +0000 (13:51 +0000)]
Merge "Fix x64's cmpw."
Nicolas Geoffray [Fri, 18 Sep 2015 13:36:49 +0000 (14:36 +0100)]
Fix x64's cmpw.
Change-Id: If700f2994990864c8b34aa52eb7a767153a1f917
David Brazdil [Fri, 18 Sep 2015 13:16:03 +0000 (13:16 +0000)]
Merge "ART: Delete catch phis for undefined vregs."
David Brazdil [Fri, 18 Sep 2015 09:58:32 +0000 (10:58 +0100)]
ART: Delete catch phis for undefined vregs.
SSA builder assumed that (eagerly created) catch phis for undefined
vregs must be dead and will be deleted by dead phi elimination. This,
however, does not hold for --debuggable because the catch phis might
be revived for their environment uses. This patch modifies the builder
to delete the phis itself.
Bug:
24054676
Change-Id: Iaa5f2487ff1c38353b44cb89c709bbff1ecd73cc
Vladimir Marko [Fri, 18 Sep 2015 08:31:16 +0000 (08:31 +0000)]
Merge "ART: Fix two allocation/deallocation mismatches."
Sebastien Hertz [Fri, 18 Sep 2015 07:07:01 +0000 (07:07 +0000)]
Merge "Deoptimization support in optimizing compiler for setting local values"
Andreas Gampe [Mon, 14 Sep 2015 22:34:38 +0000 (15:34 -0700)]
ART: Decrease dex2oat watchdog timeout
Keep the dex2oat watchdog timeout lower than the package manager
timeout, so that dex2oat kills itself before the system server
watchdog kills the system because of the long installation.
Bug:
23629410
Change-Id: I5faa23a1715736a1c2ba3f302a6ee41130d3fbae
Jeff Hao [Fri, 18 Sep 2015 01:58:23 +0000 (01:58 +0000)]
Merge "Add lock around interpreter string init reg map."
Alex Light [Thu, 17 Sep 2015 23:59:09 +0000 (16:59 -0700)]
Make run-{libcore,jdwp}-tests work with OUT_DIR set.
Change the two scripts to use the value of the OUT_DIR environment
variable if it is set to find the build directory. If OUT_DIR is not
set just fall back to the default 'out/'.
Change-Id: I19824d792d5dcbed32846912fb36654894fcc0ac
Jeff Hao [Fri, 18 Sep 2015 00:29:01 +0000 (17:29 -0700)]
Add lock around interpreter string init reg map.
Fixes intermittent test failures. Note that locks can't be held
while the verifier is generating the map.
Change-Id: Ie38d6bf0d9c5e81d66b8c167fde0e75a0565cea5
Andreas Gampe [Fri, 18 Sep 2015 00:10:09 +0000 (00:10 +0000)]
Merge "Implement StringGetCharsNoCheck intrinsic for X86"
Andreas Gampe [Thu, 17 Sep 2015 23:26:15 +0000 (23:26 +0000)]
Merge "ART: Skip image visitor in OatWriter for VerifyAtRuntime"
Hiroshi Yamauchi [Thu, 17 Sep 2015 21:55:46 +0000 (21:55 +0000)]
Merge "Allow null self only in DecodeWeakGlobalDuringShutdown()."
Andreas Gampe [Thu, 17 Sep 2015 21:43:46 +0000 (21:43 +0000)]
Merge "ART: Refactor intrinsics slow-paths"
Andreas Gampe [Wed, 9 Sep 2015 20:15:38 +0000 (13:15 -0700)]
ART: Refactor intrinsics slow-paths
Refactor slow paths so that there is a default implementation for
common cases (only arm64 with vixl is special). Write a generic
intrinsic slow-path that can be reused for the specific architectures.
Move helper functions into CodeGenerator so that they are accessible.
Change-Id: Ibd788dce432601c6a9f7e6f13eab31f28dcb8550
Andreas Gampe [Thu, 17 Sep 2015 00:12:55 +0000 (17:12 -0700)]
ART: Skip image visitor in OatWriter for VerifyAtRuntime
There's no use running the visitor, and it will force-resolve all
methods. Avoid the overhead. Reduces boot image compile time in
verify-at-runtime mode from 1.25s to 1s (on the host, in -j4 mode).
Bug:
24103765
Change-Id: Icdc3be628fed0c9bda01cf5f24fe377f23c571a9
Evgenii Stepanov [Thu, 17 Sep 2015 20:57:34 +0000 (20:57 +0000)]
Merge "asan: update condition to work with multiple SANITIZE_TARGET values."
Ivan Krasin [Thu, 17 Sep 2015 20:40:19 +0000 (13:40 -0700)]
asan: update condition to work with multiple SANITIZE_TARGET values.
The goal is to enable SANITIZE_TARGET='address coverage', which
will be used by LLVMFuzzer.
Bug:
22850550
Bug:
22233158
Change-Id: I909c6268e5c3d2da0361f2a2216cac080afbee64
Vladimir Marko [Thu, 17 Sep 2015 19:22:02 +0000 (20:22 +0100)]
ART: Fix two allocation/deallocation mismatches.
Change-Id: I5088126cbd5b5e4b461a449eecd5b3574883f413
Hiroshi Yamauchi [Thu, 17 Sep 2015 04:11:44 +0000 (21:11 -0700)]
Allow null self only in DecodeWeakGlobalDuringShutdown().
To follow up CL 169855, allow a null current thread only in
DecodeWeakGlobalDuringShutdown() as a special case rather than
DecodeWeakGlobal(). This is to prevent a bug where null is accidentally
passed to DecodeWeakGlobal().
Bug:
23897251
Change-Id: I5e7bb78ec739b8bfcf77284ed321d507737ee33e
Nicolas Geoffray [Thu, 17 Sep 2015 17:12:37 +0000 (17:12 +0000)]
Merge "Revert "Optimize code generation of check-cast and instance-of.""
Nicolas Geoffray [Thu, 17 Sep 2015 17:12:19 +0000 (17:12 +0000)]
Revert "Optimize code generation of check-cast and instance-of."
Failures with libcore tests.
This reverts commit
64acf303eaa2f32c0b1d8cfcbf044a822c5eec08.
Change-Id: Ie6f323fcf5d86bae5c334c1352bb21f1bad60a88
Josh Gao [Thu, 17 Sep 2015 16:46:14 +0000 (16:46 +0000)]
Merge "Use arc4random_buf instead of getauxval(AT_RANDOM)."
Vladimir Marko [Thu, 17 Sep 2015 15:53:10 +0000 (15:53 +0000)]
Merge "Optimizing: Allow storing value objects in containers."
Vladimir Marko [Thu, 17 Sep 2015 15:32:33 +0000 (15:32 +0000)]
Merge "Optimizing: Do not use range-based loop when inserting elements."
Mingyao Yang [Mon, 6 Jul 2015 18:10:37 +0000 (11:10 -0700)]
Deoptimization support in optimizing compiler for setting local values
Due to compiler optimizations, we may not always be able to update
the value of a local variable in a compiled frame (like a variable
seen as constant by the compiler). To avoid that situation, we simply
deoptimize compiled frames updated by the debugger so they are
executed by the interpreter with the updated value.
When the debugger attempts to set a local variable (actually a DEX
register or a pair of registers) in a compiled frame, we allocate a
ShadowFrame associated to that frame (using its frame id) and set the
new value in that ShadowFrame. When we know we are about to continue
the execution of the compiled frame, we deoptimize the stack using
the preallocated ShadowFrame (instead of creating a new one). We
initialize it with the current value of all DEX registers except
the ones that have been set by the debugger. Therefore, the
ShadowFrame represent the runtime context modified by the debugger.
Bumps oat version to force recompilation.
Bug:
19944235
Change-Id: I0ebe6241264f7a3be0f14ee4516c1f7436e04da6
Vladimir Marko [Thu, 17 Sep 2015 14:47:05 +0000 (15:47 +0100)]
Optimizing: Do not use range-based loop when inserting elements.
When we iterate over the elements of a container and we may
insert new elements into that container, it's wrong to use
the range-based loop.
Bug:
24133462
Change-Id: Iee35fbcf88ed3bcd6155cbeba09bd256032a16be
Vladimir Marko [Thu, 17 Sep 2015 14:39:16 +0000 (15:39 +0100)]
Optimizing: Allow storing value objects in containers.
Change-Id: Ic9c6b62e36706e571fd71c18d24d8e76ae2d5c7b
Nicolas Geoffray [Thu, 17 Sep 2015 14:18:03 +0000 (14:18 +0000)]
Merge "Optimize code generation of check-cast and instance-of."
Calin Juravle [Thu, 17 Sep 2015 14:05:27 +0000 (14:05 +0000)]
Merge "Revert "Support unresolved fields in optimizing" breaks debuggable tests."
Calin Juravle [Thu, 17 Sep 2015 14:04:33 +0000 (14:04 +0000)]
Revert "Support unresolved fields in optimizing"
breaks debuggable tests.
This reverts commit
23a8e35481face09183a24b9d11e505597c75ebb.
Change-Id: I8e60b5c8f48525975f25d19e5e8066c1c94bd2e5
Nicolas Geoffray [Mon, 14 Sep 2015 21:20:29 +0000 (22:20 +0100)]
Optimize code generation of check-cast and instance-of.
On x86/x64/arm/arm64. Improve code size of selected apks from 0.3% to 1%,
and performance of DeltaBlue by 20%.
Change-Id: Ib5799f7a53443cd880a121dd7f21932ae9f5c7aa
Calin Juravle [Thu, 17 Sep 2015 12:29:09 +0000 (12:29 +0000)]
Merge "Support unresolved fields in optimizing"
Calin Juravle [Thu, 17 Sep 2015 12:29:02 +0000 (12:29 +0000)]
Merge "Support unresolved methods in Optimizing"
Calin Juravle [Thu, 17 Sep 2015 12:28:50 +0000 (12:28 +0000)]
Merge "BuildInvoke refactor: extract String.init in its own code path"
Calin Juravle [Tue, 8 Sep 2015 18:56:31 +0000 (19:56 +0100)]
Support unresolved fields in optimizing
Change-Id: I9941fa5fcb6ef0a7a253c7a0b479a44a0210aad4
Calin Juravle [Tue, 25 Aug 2015 14:42:32 +0000 (15:42 +0100)]
Support unresolved methods in Optimizing
Change-Id: If2da02b50d2fa668cd58f134a005f1752e7746b1
Calin Juravle [Tue, 25 Aug 2015 14:02:42 +0000 (15:02 +0100)]
BuildInvoke refactor: extract String.init in its own code path
This makes it clear that we special handle String init. Getting rid of
all `if (is_string_init)` improves readability into what we actually do
and expect for strings.
Change-Id: I9b4fba4c3ea89e0003c0704335cbe80e874d0e15
Josh Gao [Wed, 16 Sep 2015 23:27:00 +0000 (16:27 -0700)]
Use arc4random_buf instead of getauxval(AT_RANDOM).
Reclaim the AT_RANDOM bytes used by ART for bionic.
Bug: http://b/
23942752
Change-Id: Iceddce7f08fa887a7bb6828d75ef21426c413863
Andreas Gampe [Wed, 16 Sep 2015 20:51:55 +0000 (20:51 +0000)]
Merge "X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight"
Andreas Gampe [Wed, 16 Sep 2015 17:22:02 +0000 (17:22 +0000)]
Merge "ART: Skip compiler-driver compile loop for VerifyAtRuntime"
Andreas Gampe [Wed, 16 Sep 2015 00:55:06 +0000 (17:55 -0700)]
ART: Skip compiler-driver compile loop for VerifyAtRuntime
We don't compile (not even dex-to-dex) anyways, so skip iterating
over all methods. Shows a ~10% improvement of boot image compile
time on Nexus 9. Shows a ~40% improvement for a common large app
on the same device. Most of the remaining time is unzipping dex
files.
Bug:
24103765
Change-Id: I00931fd062a0a2297d1c7b90794302cb664571cc
Vladimir Marko [Wed, 16 Sep 2015 15:46:07 +0000 (15:46 +0000)]
Merge "Optimizing: Tag arena allocations in SsaBuilder."
Vladimir Marko [Tue, 15 Sep 2015 14:33:14 +0000 (15:33 +0100)]
Optimizing: Tag arena allocations in SsaBuilder.
Replace GrowableArray with ArenaVector in SsaBuilder and
tag allocations with a new arena allocation type.
Change-Id: I27312c51d7be9d2ad02a974cce93b365c65c5fc4
Andreas Gampe [Wed, 16 Sep 2015 15:30:56 +0000 (15:30 +0000)]
Merge "ART: Make dex2oat timing a bit more granular"
Calin Juravle [Wed, 16 Sep 2015 14:34:41 +0000 (14:34 +0000)]
Merge "Add option to append to the cfg dump."
Calin Juravle [Wed, 16 Sep 2015 14:33:16 +0000 (14:33 +0000)]
Merge "Add OptimizingCompilerStats to the CodeGenerator class."
Vladimir Marko [Wed, 16 Sep 2015 14:11:43 +0000 (14:11 +0000)]
Merge "Optimizing: Tag arena allocations in HGraph."
Mark Mendell [Mon, 17 Aug 2015 15:39:06 +0000 (11:39 -0400)]
Implement StringGetCharsNoCheck intrinsic for X86
Generate inline code for String.GetChars internal no checking form for
X86 and X86_64. Use REP MOVSW to copy the characters, rather than
memcpy as Quick does.
Change-Id: Ia67aff248461b394f97c48053f216880381945ff
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Mark Mendell [Wed, 16 Sep 2015 01:45:18 +0000 (21:45 -0400)]
X86/X86_64: Intrinsics - numberOfTrailingZeros, rotateLeft, rotateRight
Implement {Long,Integer}NumberOfTrailingZeros and
{Long,Integer}Rotate{Left,Right}.
X86 32 bit mode doesn't implement the LongRotate{Left,Right} intrinsics
at this time.
Change-Id: Ie25c1dca15ee2d17fbdf0c15c758bde431034d35
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Vladimir Marko [Tue, 15 Sep 2015 09:15:55 +0000 (10:15 +0100)]
Optimizing: Tag arena allocations in HGraph.
Replace GrowableArray with ArenaVector in HGraph and related
classes HEnvironment, HLoopInformation, HInvoke and HPhi,
and tag allocations with new arena allocation types.
Change-Id: I3d79897af405b9a1a5b98bfc372e70fe0b3bc40d
Nicolas Geoffray [Wed, 16 Sep 2015 12:00:06 +0000 (12:00 +0000)]
Merge "Use clang for building mips32r2_fp."
Nicolas Geoffray [Wed, 16 Sep 2015 11:58:57 +0000 (12:58 +0100)]
Use clang for building mips32r2_fp.
Otherwise, we get a linker error when building for
device/generic/art/mips32r2_fp.
Change-Id: Ie0bda1fdb807888d7afabd6f29c79ccc0d59ddbc
Andreas Gampe [Wed, 16 Sep 2015 04:21:39 +0000 (04:21 +0000)]
Merge "Additional MIPS64 instructions needed by intrinsics code."
Aart Bik [Wed, 16 Sep 2015 04:13:03 +0000 (04:13 +0000)]
Merge "Use induction variable range analysis in BCE (statically)."
Andreas Gampe [Wed, 16 Sep 2015 03:41:47 +0000 (03:41 +0000)]
Merge "X86: Use short forward jumps if possible"
Mathieu Chartier [Wed, 16 Sep 2015 03:35:08 +0000 (03:35 +0000)]
Merge "Clean up mod union table"
Andreas Gampe [Wed, 16 Sep 2015 03:04:54 +0000 (20:04 -0700)]
ART: Make dex2oat timing a bit more granular
Add scoped timing for runtime creation and dex file opening. Allows
comparing (JIT) compile time to specific overhead inherent to all
compilations.
Bug:
24103765
Change-Id: I1f83daa7015745bffa0cec3a3357b045c8493d6a
Andreas Gampe [Wed, 16 Sep 2015 02:58:04 +0000 (02:58 +0000)]
Merge "Support X86 intrinsic System.arraycopy char"
Andreas Gampe [Wed, 16 Sep 2015 02:56:18 +0000 (02:56 +0000)]
Merge "Add X86 bsf and rotate instructions"
Mark Mendell [Wed, 16 Sep 2015 01:45:01 +0000 (21:45 -0400)]
Add X86 bsf and rotate instructions
These are for use in new intrinsics. Bsf (Bit Scan Forward) is used in
{Long,Integer}NumberOfTrailingZeros and the rotates are used in
{Long,Integer}Rotate{Left,Right}.
Change-Id: Icb599d7e1eec4e4ea9e5b4f0b1654c7b8d4de678
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Aart Bik [Thu, 10 Sep 2015 19:50:58 +0000 (12:50 -0700)]
Use induction variable range analysis in BCE (statically).
Rationale: Finally! After lots of very large CLs, now a small CL
that uses the new induction variable analysis in BCE
(statically, using this dynamically with de-opt is TBD).
Despite its relative small size, be aware though,
since the CL introduces a new phase to the compiler.
Change-Id: If5555a173fd5d55d147c63138ef51fc296fa1414
Mathieu Chartier [Tue, 15 Sep 2015 21:07:10 +0000 (14:07 -0700)]
Clean up mod union table
Fixed some formatting and removed unused forward declarations.
Bug:
19534862
Change-Id: Icfd5143e5bb7be0570248fd0f4bbf97125a9a35b