OSDN Git Service

android-x86/art.git
8 years agoMerge "Enable store elimination for singleton objects."
Mingyao Yang [Wed, 28 Oct 2015 21:01:33 +0000 (21:01 +0000)]
Merge "Enable store elimination for singleton objects."

8 years agoMerge "Rosalloc fast path in assembly for arm64."
Hiroshi Yamauchi [Wed, 28 Oct 2015 19:21:55 +0000 (19:21 +0000)]
Merge "Rosalloc fast path in assembly for arm64."

8 years agoMerge "Fix up run-test."
Alex Light [Wed, 28 Oct 2015 18:30:42 +0000 (18:30 +0000)]
Merge "Fix up run-test."

8 years agoFix up run-test.
Alex Light [Wed, 28 Oct 2015 16:40:10 +0000 (09:40 -0700)]
Fix up run-test.

Made its help message actually list all of its options. Made
run-all-tests take more of the run-test options.

Change-Id: I213995eeea9052392f722897021e74c2a89d41f8

8 years agoMerge "Tune heuristics a bit."
Nicolas Geoffray [Wed, 28 Oct 2015 18:22:43 +0000 (18:22 +0000)]
Merge "Tune heuristics a bit."

8 years agoMerge "Adjust jit code cache on ThreadStress to avoid timeouts."
Nicolas Geoffray [Wed, 28 Oct 2015 17:59:35 +0000 (17:59 +0000)]
Merge "Adjust jit code cache on ThreadStress to avoid timeouts."

8 years agoTune heuristics a bit.
Nicolas Geoffray [Wed, 28 Oct 2015 17:39:47 +0000 (17:39 +0000)]
Tune heuristics a bit.

First version. Seems to be more in line with what we're seeing.

Change-Id: I5117352c13cb2e95d16f0c9b05b1faf37c05d710

8 years agoAdjust jit code cache on ThreadStress to avoid timeouts.
Nicolas Geoffray [Wed, 28 Oct 2015 17:41:37 +0000 (17:41 +0000)]
Adjust jit code cache on ThreadStress to avoid timeouts.

Change-Id: I00da947ba45be66bb24825af4fbe95b6fbe8fbc4

8 years agoMerge "We still need to provide an image."
Nicolas Geoffray [Wed, 28 Oct 2015 17:03:34 +0000 (17:03 +0000)]
Merge "We still need to provide an image."

8 years agoWe still need to provide an image.
Nicolas Geoffray [Wed, 28 Oct 2015 17:01:04 +0000 (17:01 +0000)]
We still need to provide an image.

Otherwise, dalvikvm does not have enough resources to
create it at runtime.

Change-Id: Ifb064e5c1e7b4f452c9562cd856231e8776950c7

8 years agoMerge "Fix test failure due to wrong runtime arguments."
Alex Light [Wed, 28 Oct 2015 16:58:14 +0000 (16:58 +0000)]
Merge "Fix test failure due to wrong runtime arguments."

8 years agoMerge "A native method may be running and have the resolution stub."
Nicolas Geoffray [Wed, 28 Oct 2015 16:36:27 +0000 (16:36 +0000)]
Merge "A native method may be running and have the resolution stub."

8 years agoA native method may be running and have the resolution stub.
Nicolas Geoffray [Wed, 28 Oct 2015 16:16:16 +0000 (16:16 +0000)]
A native method may be running and have the resolution stub.

Fixes 119-noimage-patchoat in interpreter mode.

Change-Id: Ie8af557f7de21963441520b9d9caea8223378acc

8 years agoFix test failure due to wrong runtime arguments.
Alex Light [Wed, 28 Oct 2015 16:13:20 +0000 (09:13 -0700)]
Fix test failure due to wrong runtime arguments.

Change-Id: Idf8888aaef1d01123e1097c8108cb23fb1fdb945

8 years agoMerge "Add support for collection ProfilingInfo objects."
Nicolas Geoffray [Wed, 28 Oct 2015 15:08:59 +0000 (15:08 +0000)]
Merge "Add support for collection ProfilingInfo objects."

8 years agoAdd support for collection ProfilingInfo objects.
Nicolas Geoffray [Wed, 28 Oct 2015 12:50:11 +0000 (12:50 +0000)]
Add support for collection ProfilingInfo objects.

Change-Id: I8bb6069530253a7372acdf2b5aee71e1de644822

8 years agoMerge "Do not assume the dex cache is already populated."
Nicolas Geoffray [Wed, 28 Oct 2015 13:40:41 +0000 (13:40 +0000)]
Merge "Do not assume the dex cache is already populated."

8 years agoMerge "Fix script after image changes."
Nicolas Geoffray [Wed, 28 Oct 2015 13:07:27 +0000 (13:07 +0000)]
Merge "Fix script after image changes."

8 years agoFix script after image changes.
Nicolas Geoffray [Wed, 28 Oct 2015 13:06:21 +0000 (13:06 +0000)]
Fix script after image changes.

Change-Id: I617265e1500e47551708ca3975240ed7d14b1dd5

8 years agoMerge "Remove obsolete comment and option."
Nicolas Geoffray [Wed, 28 Oct 2015 12:58:48 +0000 (12:58 +0000)]
Merge "Remove obsolete comment and option."

8 years agoMerge "MIPS32: added support for unresolved classes"
Nicolas Geoffray [Wed, 28 Oct 2015 12:49:35 +0000 (12:49 +0000)]
Merge "MIPS32: added support for unresolved classes"

8 years agoDo not assume the dex cache is already populated.
Nicolas Geoffray [Wed, 28 Oct 2015 12:06:25 +0000 (12:06 +0000)]
Do not assume the dex cache is already populated.

In JIT mode, it isn't.

Change-Id: I665cab8142db64996b6ae3d7d7c1e68deba8dfb9

8 years agoMIPS32: added support for unresolved classes
Pavle Batuta [Wed, 28 Oct 2015 12:10:42 +0000 (13:10 +0100)]
MIPS32: added support for unresolved classes

Refer to change: https://android-review.googlesource.com/#/c/173570

This will fix the following test fails:

024-illegal-access
536-checker-needs-access-check

Change-Id: I07ecb0ab90700f0ca7da28601c6e3755ba1658c0

8 years agoRemove obsolete comment and option.
Nicolas Geoffray [Wed, 28 Oct 2015 12:11:27 +0000 (12:11 +0000)]
Remove obsolete comment and option.

Boot image from optimizing handles debuggable now.
As a side effect reduces the adb command line vogar needs to do.

Change-Id: Ib516163dee19d05de22be5a3228f51c8700411cf

8 years agoMerge "Revert "Remove DCHECK that does not work for gtests.""
Vladimir Marko [Wed, 28 Oct 2015 10:31:13 +0000 (10:31 +0000)]
Merge "Revert "Remove DCHECK that does not work for gtests.""

8 years agoEnable store elimination for singleton objects.
Mingyao Yang [Tue, 27 Oct 2015 23:38:33 +0000 (16:38 -0700)]
Enable store elimination for singleton objects.

Enable store elimination for singleton objects. However for finalizable object,
don't eliminate stores. Also added a testcase.

Change-Id: Icf991e7ded5b490f55f580ef928ece5c45e89902

8 years agoMerge "Use HashMap for DexFileVerifier"
Mathieu Chartier [Tue, 27 Oct 2015 21:10:08 +0000 (21:10 +0000)]
Merge "Use HashMap for DexFileVerifier"

8 years agoMerge "Make the mark stack expandable for the CC collector."
Hiroshi Yamauchi [Tue, 27 Oct 2015 19:24:04 +0000 (19:24 +0000)]
Merge "Make the mark stack expandable for the CC collector."

8 years agoRevert "Remove DCHECK that does not work for gtests."
Vladimir Marko [Tue, 27 Oct 2015 18:51:20 +0000 (18:51 +0000)]
Revert "Remove DCHECK that does not work for gtests."

And fix the code alignment in gtests.

This reverts commit 7d32dbc02beac2cb0217d52b61f2b3ef9974ffa6.

Change-Id: I68813c36d1493f2746ceb129b30a649350d6bc13

8 years agoMerge "Remove DCHECK that does not work for gtests."
Nicolas Geoffray [Tue, 27 Oct 2015 18:22:58 +0000 (18:22 +0000)]
Merge "Remove DCHECK that does not work for gtests."

8 years agoRemove DCHECK that does not work for gtests.
Nicolas Geoffray [Tue, 27 Oct 2015 18:18:39 +0000 (18:18 +0000)]
Remove DCHECK that does not work for gtests.

Change-Id: I12e11fd2faffa2e53771a0dd988447f9d72b554b

8 years agoMerge "Added format 25x to dexdump(2)."
Aart Bik [Tue, 27 Oct 2015 16:36:49 +0000 (16:36 +0000)]
Merge "Added format 25x to dexdump(2)."

8 years agoAdded format 25x to dexdump(2).
Aart Bik [Tue, 27 Oct 2015 00:24:09 +0000 (17:24 -0700)]
Added format 25x to dexdump(2).

Rationale: Igor introduced a new format for invoke-lambda which
           was not recognized by dexdump(2) yet.

Sample output:

Change-Id: I2d9cd4b740452bb8380de2234819bcd4ad49345a
0002ac:                  |[0002ac] Hello.doit:()V
0002bc: f600 0200        |0000: create-lambda v0, LHello;.-void_doit__LambdaImpl0:(J)V // method@0002
0002c0: f300 0000        |0002: invoke-lambda v0, {}
0002c4: f600 0300        |0004: create-lambda v0, LHello;.-void_doit__LambdaImpl1:(JI)V // method@0003
0002c8: 1212             |0006: const/4 v2, #int 1 // #1
0002ca: f310 2000        |0007: invoke-lambda v0, {v2}
0002ce: 0e00             |0009: return-void

8 years agoMerge "Reduce memory used by CompiledMethods."
Vladimir Marko [Tue, 27 Oct 2015 16:08:44 +0000 (16:08 +0000)]
Merge "Reduce memory used by CompiledMethods."

8 years agoMerge "Support garbage collection of JITted code."
Nicolas Geoffray [Tue, 27 Oct 2015 16:00:58 +0000 (16:00 +0000)]
Merge "Support garbage collection of JITted code."

8 years agoReduce memory used by CompiledMethods.
Vladimir Marko [Fri, 11 Sep 2015 10:59:18 +0000 (11:59 +0100)]
Reduce memory used by CompiledMethods.

Use LengthPrefixedArray<>s instead of SwapVector<>s to store
CompiledMethod data and get rid of the unnecessary members
of CompiledMethod to reduce dex2oat memory usage. Refactor
the deduplication from CompilerDriver to a new class.

Use HashSet<> instead of std::set<> for the DedupeSet<> to
further decrease the memory usage and improve performance.

This reduces the dex2oat memory usage when compiling boot
image on Nexus 5 (with Optimizing, -j1) by ~6.75MiB (5%).
This also reduces the compile time by ~2.2% (~1.6% dex2oat
time; with Optimizing, without -j).

Change-Id: I974f1f5e58350de2bf487a2bca3907fa05fb80ea

8 years agoMerge "Remove stalled DCHECK."
Nicolas Geoffray [Tue, 27 Oct 2015 15:03:38 +0000 (15:03 +0000)]
Merge "Remove stalled DCHECK."

8 years agoMerge "Optimizing: Determine invoke-static/-direct dispatch early."
Vladimir Marko [Tue, 27 Oct 2015 15:02:06 +0000 (15:02 +0000)]
Merge "Optimizing: Determine invoke-static/-direct dispatch early."

8 years agoRemove stalled DCHECK.
Nicolas Geoffray [Tue, 27 Oct 2015 14:54:21 +0000 (14:54 +0000)]
Remove stalled DCHECK.

Change-Id: I446f3f6b6da6a3f2c883f794b2e6ffb379a89c95

8 years agoMerge "MIPS32: Move code from RA to T9 in longjump"
Nicolas Geoffray [Tue, 27 Oct 2015 14:42:22 +0000 (14:42 +0000)]
Merge "MIPS32: Move code from RA to T9 in longjump"

8 years agoMIPS32: Move code from RA to T9 in longjump
Goran Jakovljevic [Tue, 27 Oct 2015 11:29:07 +0000 (12:29 +0100)]
MIPS32: Move code from RA to T9 in longjump

Do not use the return address. It should not be clobbered as we
may need it, e.g., for single-frame deopt.

This fixes following tests:
* 449-checker-bce
* 534-checker-bce-deoptimization
* 535-deopt-and-inlining

Change-Id: Ic94a2897c7336da094a8937ab1bc4a02a680de53

8 years agoMerge "Move jdwp and libcore testing to jit."
Nicolas Geoffray [Tue, 27 Oct 2015 11:45:38 +0000 (11:45 +0000)]
Merge "Move jdwp and libcore testing to jit."

8 years agoMerge "MIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp()."
Calin Juravle [Tue, 27 Oct 2015 10:30:08 +0000 (10:30 +0000)]
Merge "MIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp()."

8 years agoMerge "Revert "Mark 2 libcore tests as failing.""
Neil Fuller [Tue, 27 Oct 2015 09:32:32 +0000 (09:32 +0000)]
Merge "Revert "Mark 2 libcore tests as failing.""

8 years agoMIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp().
Alexey Frunze [Mon, 26 Oct 2015 23:11:39 +0000 (16:11 -0700)]
MIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp().

Change-Id: I8584c150cae27353b57f3dccc78a68d6cd6fc2c1

8 years agoUse HashMap for DexFileVerifier
Mathieu Chartier [Mon, 26 Oct 2015 21:52:42 +0000 (14:52 -0700)]
Use HashMap for DexFileVerifier

Before:
2.51%  std::map<unsigned int, unsigned short>::insert(...
0.72%  malloc

After:
0.73%  art::HashSet<std::__1::pair<unsigned int, unsigned short>::Insert(...
0.57%  malloc

The allocation from HashSet is only 0.71% of the remaining 0.57% malloc time.
0.71% art::DexFileVerifier::CheckIntraSectionIterate(unsigned long, unsigned int, unsigned short)

Bug: 10921004

Change-Id: I85c60bf27fb2d9976b944fc15d8401904432dc22

8 years agoRosalloc fast path in assembly for arm64.
Hiroshi Yamauchi [Thu, 22 Oct 2015 19:08:12 +0000 (12:08 -0700)]
Rosalloc fast path in assembly for arm64.

Measurements (N9, ms)
    BinaryTrees:  1120 ->  554 (-51%)
    MemAllocTest: 1449 -> 1164 (-20%)

Bug: 9986565
Change-Id: I6984c638e7ce2abd2384244debff0dcbac601b69

8 years agoMerge "MIPS64: Clean-up intrinsics code"
Andreas Gampe [Mon, 26 Oct 2015 21:23:47 +0000 (21:23 +0000)]
Merge "MIPS64: Clean-up intrinsics code"

8 years agoMerge "Cleanup some of the run-test system"
Alex Light [Mon, 26 Oct 2015 21:15:34 +0000 (21:15 +0000)]
Merge "Cleanup some of the run-test system"

8 years agoMerge "Make dchecked_vector C++11 compatible."
Dan Albert [Mon, 26 Oct 2015 19:13:32 +0000 (19:13 +0000)]
Merge "Make dchecked_vector C++11 compatible."

8 years agoSupport garbage collection of JITted code.
Nicolas Geoffray [Fri, 23 Oct 2015 13:59:54 +0000 (14:59 +0100)]
Support garbage collection of JITted code.

Change-Id: I9afc544460ae4fb31149644b6196ac7f5182c784

8 years agoMerge "Add HashSet::Reserve"
Mathieu Chartier [Mon, 26 Oct 2015 18:53:09 +0000 (18:53 +0000)]
Merge "Add HashSet::Reserve"

8 years agoMake dchecked_vector C++11 compatible.
Dan Albert [Mon, 26 Oct 2015 18:39:41 +0000 (11:39 -0700)]
Make dchecked_vector C++11 compatible.

Since GCC's C++14 ABI is incorrect, we need to drop GCC users back to
C++11. Since ART does not unconditionally use clang, it cannot
unconditionally use C++14 either.

This constructor for std::vector was added in C++14, so we need to
implement it ourselves.

Bug: http://b/25022512
Change-Id: Ib31a312c8c91fe6eccf24d59ef58f2fa8e634e1c

8 years agoMerge "Trim arena maps during heap trim"
Mathieu Chartier [Mon, 26 Oct 2015 18:47:41 +0000 (18:47 +0000)]
Merge "Trim arena maps during heap trim"

8 years agoAdd HashSet::Reserve
Mathieu Chartier [Mon, 26 Oct 2015 18:20:18 +0000 (11:20 -0700)]
Add HashSet::Reserve

Reserves enough room to insert n elements without expanding.
Motivation is to use this for cases where we know how many elements
will be inserted.

Change-Id: I3c51fc7f4601903411fc90b0f1bf270fe9a30919

8 years agoMove jdwp and libcore testing to jit.
Nicolas Geoffray [Mon, 26 Oct 2015 18:40:41 +0000 (18:40 +0000)]
Move jdwp and libcore testing to jit.

Change-Id: I4bfd2894ed4cd4a4a5825eae41388b915d97adea

8 years agoCleanup some of the run-test system
Alex Light [Mon, 26 Oct 2015 17:11:58 +0000 (10:11 -0700)]
Cleanup some of the run-test system

Make run-test cleaner when using experimental default methods and
lambdas. Adds a --experimental <type> flag that adds the required
experimental compiler and runtime flags.

Change-Id: Ia9327b44e14597a400bf279fc946a43619f1355c

8 years agoTrim arena maps during heap trim
Mathieu Chartier [Mon, 26 Oct 2015 17:21:14 +0000 (10:21 -0700)]
Trim arena maps during heap trim

Reduces RAM with verify-at-runtime.

Before:
9985 kB: .LinearAlloc

After:
6594 kB: .LinearAlloc

Change-Id: I4d0a0359cc3b55c924790f749eaeaa5cf55ad7df

8 years agoMerge "Use arenas for the verifier"
Mathieu Chartier [Mon, 26 Oct 2015 17:04:29 +0000 (17:04 +0000)]
Merge "Use arenas for the verifier"

8 years agoUse arenas for the verifier
Mathieu Chartier [Fri, 16 Oct 2015 00:47:48 +0000 (17:47 -0700)]
Use arenas for the verifier

Improvements are from using arenas for verifier. The things that
were moved into arenas are register lines, reg types, and reg type
descriptors.

Also some minor cleanup. Fixed double space formatting error in
string piece.

========================================
Before:
=======================================
compile GmsCore 50x on host -j1:
real  3m5.510s
user  2m48.139s
sys 0m11.753s

50 random APKs:
real  1m18.157s
user  1m8.167s
sys 0m8.071s

RAM (GmsCore):
(threads: 1) arena alloc=0B java alloc=27MB native alloc=64MB free=792KB
(threads: 4) arena alloc=0B java alloc=27MB native alloc=64MB free=397KB
Perf:

=============================
After:
=============================
compile GmsCore 50x on host -j1:
real  2m31.455s
user  2m14.784s
sys 0m10.888s

50 random APKs:
Speed up from arena allocating:
real  1m12.094s
user  1m2.325s
sys 0m7.872s

Speed up from areans + CreateFindClassDefIndex + unordered_map for DexFileVerifier.
real  1m8.654s
user  0m58.955s
sys 0m7.777s

RAM (GmsCore):
(threads: 1) arena alloc=1049KB java alloc=27MB native alloc=65MB free=538KB
(threads: 4) arena alloc=4MB java alloc=27MB native alloc=69MB free=650KB

Perf on host key results:
_int_malloc: 3.60% -> 1.39%
malloc: 1.48% -> 0.65%
_int_free: 1.59% -> 0.61%
RegTypeCache::FromClass: 1.47% -> 0.86%
malloc_consolidate: 0.89% -> 0.63%

Real speed up is ~22% on GmsCore, ~14% on the set of 60 APKs.

Bug: 10921004

Change-Id: If13d4ab4284a176f93a26a412549b6b1149dfb16

8 years agoMerge "ART: Support trivially-destructible arrays in ArenaUniquePtr"
Andreas Gampe [Mon, 26 Oct 2015 15:25:40 +0000 (15:25 +0000)]
Merge "ART: Support trivially-destructible arrays in ArenaUniquePtr"

8 years agoMerge "MIPS32: Fix loading address in GenerateStaticOrDirectCall"
Nicolas Geoffray [Mon, 26 Oct 2015 14:18:51 +0000 (14:18 +0000)]
Merge "MIPS32: Fix loading address in GenerateStaticOrDirectCall"

8 years agoMerge "MIPS32: Remove tests from list of broken tests"
Nicolas Geoffray [Mon, 26 Oct 2015 13:36:48 +0000 (13:36 +0000)]
Merge "MIPS32: Remove tests from list of broken tests"

8 years agoMIPS32: Fix loading address in GenerateStaticOrDirectCall
Goran Jakovljevic [Mon, 26 Oct 2015 13:28:52 +0000 (14:28 +0100)]
MIPS32: Fix loading address in GenerateStaticOrDirectCall

Load word instead of doubleword.

Change-Id: I496278c87577ee23c8dd4c4be7b64214efcdd1f6

8 years agoMIPS32: Remove tests from list of broken tests
Goran Jakovljevic [Mon, 26 Oct 2015 13:18:31 +0000 (14:18 +0100)]
MIPS32: Remove tests from list of broken tests

These tests are passing after the optimizing compiler is enabled.

Change-Id: Ib203c48532f2557bfec9325456f3b19d460ba047

8 years agoMerge "Revert "Run type propagation after inliner only when needed.""
Calin Juravle [Mon, 26 Oct 2015 12:39:04 +0000 (12:39 +0000)]
Merge "Revert "Run type propagation after inliner only when needed.""

8 years agoRevert "Run type propagation after inliner only when needed."
Calin Juravle [Mon, 26 Oct 2015 12:38:43 +0000 (12:38 +0000)]
Revert "Run type propagation after inliner only when needed."

This reverts commit 4e5dd521063beae1706410419f19c7e224db50fe.

Change-Id: I0de261d14dd3f71abe05f9bc71744820cf23b937

8 years agoMerge "Run type propagation after inliner only when needed."
Calin Juravle [Mon, 26 Oct 2015 12:06:24 +0000 (12:06 +0000)]
Merge "Run type propagation after inliner only when needed."

8 years agoRevert "Mark 2 libcore tests as failing."
Neil Fuller [Mon, 26 Oct 2015 09:46:53 +0000 (09:46 +0000)]
Revert "Mark 2 libcore tests as failing."

This reverts commit d9486f963302512dc1cfd9fb0898a864dee51902.

Change-Id: I3afd4aff0667392da0c912c160fd5a39a1f8819d

8 years agoMerge "Fix dependencies when not building with Jack."
Nicolas Geoffray [Mon, 26 Oct 2015 08:57:38 +0000 (08:57 +0000)]
Merge "Fix dependencies when not building with Jack."

8 years agoMake the mark stack expandable for the CC collector.
Hiroshi Yamauchi [Sat, 24 Oct 2015 02:59:58 +0000 (19:59 -0700)]
Make the mark stack expandable for the CC collector.

Bug: 12687968
Change-Id: I5d05df5524f54c6adb964901e5a963eb042cb2e1

8 years agoMerge "Disable store elimination on singleton object."
Mingyao Yang [Sat, 24 Oct 2015 00:44:17 +0000 (00:44 +0000)]
Merge "Disable store elimination on singleton object."

8 years agoDisable store elimination on singleton object.
Mingyao Yang [Sat, 24 Oct 2015 00:08:42 +0000 (17:08 -0700)]
Disable store elimination on singleton object.

Stores into singleton objects that are finalizable need to be kept.
Disable those store eliminations before we have the finalizable info available.

Change-Id: I281e0c442588ec291b1002fdc9b59a144c15dc8e

8 years agoART: Support trivially-destructible arrays in ArenaUniquePtr
Andreas Gampe [Sat, 24 Oct 2015 00:31:36 +0000 (17:31 -0700)]
ART: Support trivially-destructible arrays in ArenaUniquePtr

For trivially-destructible types of arrays, we do not have to call
the destructor on all elements. This is minimal support to tag
ownership of some arena-allocated arrays.

Change-Id: I45ec7ed6bab3842c9447d954e359cb8cf047aee6

8 years agoMerge "Add ArenaUniquePtr"
Mathieu Chartier [Fri, 23 Oct 2015 20:28:06 +0000 (20:28 +0000)]
Merge "Add ArenaUniquePtr"

8 years agoAdd ArenaUniquePtr
Mathieu Chartier [Fri, 16 Oct 2015 00:47:48 +0000 (17:47 -0700)]
Add ArenaUniquePtr

Motivation is to use it for adding arenas in the verifier.
Also added arena tags to prevent double free errors.

Bug: 10921004
Change-Id: I545f3374eceb9a6a35e738cb899d1493098fb760

8 years agoMerge "enum operator<<() script fails with do { } while cond;"
Andreas Gampe [Fri, 23 Oct 2015 18:40:24 +0000 (18:40 +0000)]
Merge "enum operator<<() script fails with do { } while cond;"

8 years agoMerge "Move ArenaBitVector into the runtime"
Mathieu Chartier [Fri, 23 Oct 2015 18:30:26 +0000 (18:30 +0000)]
Merge "Move ArenaBitVector into the runtime"

8 years agoMove ArenaBitVector into the runtime
Mathieu Chartier [Fri, 16 Oct 2015 00:47:48 +0000 (17:47 -0700)]
Move ArenaBitVector into the runtime

Motivation is using arenas in the verifier.

Bug: 10921004
Change-Id: I3c7ed369194b2309a47b12a621e897e0f2f65fcf

8 years agoMerge "ART: Speed up thread stack tracing for ANRs"
Andreas Gampe [Fri, 23 Oct 2015 18:20:20 +0000 (18:20 +0000)]
Merge "ART: Speed up thread stack tracing for ANRs"

8 years agoART: Speed up thread stack tracing for ANRs
Christopher Ferris [Mon, 27 Jan 2014 05:36:13 +0000 (21:36 -0800)]
ART: Speed up thread stack tracing for ANRs

Share a BacktraceMap for all threads being dumped, which speeds up
ANR dumping. Results from Nexus 9 (average of five):

Before: 0.587s
After:  0.206s

Change-Id: Ia70e0dbd39049318c02de561e7b95258d4849467

8 years agoMerge "Revert "Revert "load store elimination."""
Mingyao Yang [Fri, 23 Oct 2015 17:45:57 +0000 (17:45 +0000)]
Merge "Revert "Revert "load store elimination."""

8 years agoFix dependencies when not building with Jack.
Nicolas Geoffray [Fri, 23 Oct 2015 16:27:59 +0000 (17:27 +0100)]
Fix dependencies when not building with Jack.

Change-Id: I6528a835974c4915872974265f2d135f754169b5

8 years agoRun type propagation after inliner only when needed.
Calin Juravle [Mon, 19 Oct 2015 15:19:23 +0000 (16:19 +0100)]
Run type propagation after inliner only when needed.

Currently we run a type propagation pass unconditionally after the
inliner. This change looks at the returned value (if any) and runs a
minimal type propagation only if its type has changed.

Change-Id: I0dd72bd481219081e8a978d2632426afc980d73a

8 years agoMerge "Disable two tests that require IPv6."
Nicolas Geoffray [Fri, 23 Oct 2015 15:15:40 +0000 (15:15 +0000)]
Merge "Disable two tests that require IPv6."

8 years agoDisable two tests that require IPv6.
Nicolas Geoffray [Fri, 23 Oct 2015 15:06:49 +0000 (16:06 +0100)]
Disable two tests that require IPv6.

bug:25178637
Change-Id: I4615cb4d2f2d9cbb050d02cb77b36215c24fd43b

8 years agoMerge "ARM64: Instruction simplification for array accesses."
Roland Levillain [Fri, 23 Oct 2015 15:00:57 +0000 (15:00 +0000)]
Merge "ARM64: Instruction simplification for array accesses."

8 years agoOptimizing: Determine invoke-static/-direct dispatch early.
Vladimir Marko [Thu, 15 Oct 2015 17:02:30 +0000 (18:02 +0100)]
Optimizing: Determine invoke-static/-direct dispatch early.

Determine the dispatch type of invoke-static/-direct in a
special pass right after the type inference. This allows the
inliner to pass the "needs dex cache" check and inline more.
It also allows the code generator to avoid requesting a
register location for the ArtMethod* for kDexCachePcRelative
and direct methods.

The supported dispatch check handles also situations that
the CompilerDriver currently doesn't allow. The cleanup of
the CompilerDriver and required changes to Quick will come
in a separate change.

Change-Id: I3f8e903a119949e95871d8ab0a995f4731a13a07

8 years agoMerge "Disable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning."
Roland Levillain [Fri, 23 Oct 2015 13:09:43 +0000 (13:09 +0000)]
Merge "Disable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning."

8 years agoDisable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning.
Roland Levillain [Fri, 23 Oct 2015 12:25:35 +0000 (13:25 +0100)]
Disable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning.

The current heap poisoning instrumentation of this intrinsic
does not always work properly when heap poisoning in
enabled, hence this quick fix to let the build & test
infrastructure turn green again.

Bug: 12687968
Change-Id: I546a392a61e429cd13209261f806d0aed8d1cd86

8 years agoMerge "Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic."
Roland Levillain [Fri, 23 Oct 2015 10:09:28 +0000 (10:09 +0000)]
Merge "Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic."

8 years agoMerge "MIPS64: Add tests for rotation, and shift instructions"
Andreas Gampe [Fri, 23 Oct 2015 04:29:26 +0000 (04:29 +0000)]
Merge "MIPS64: Add tests for rotation, and shift instructions"

8 years agoRevert "Revert "load store elimination.""
Mingyao Yang [Thu, 22 Oct 2015 22:40:58 +0000 (15:40 -0700)]
Revert "Revert "load store elimination.""

This reverts commit 8030c4100d2586fac39ed4007c61ee91d4ea4f25.

Change-Id: I79558d85484be5f5d04e4a44bea7201fece440f0

8 years agoMerge "Release ahat version 0.2."
Richard Uhler [Thu, 22 Oct 2015 19:07:58 +0000 (19:07 +0000)]
Merge "Release ahat version 0.2."

8 years agoMerge "MIPS: Initial version of optimizing compiler for MIPS32"
Nicolas Geoffray [Thu, 22 Oct 2015 17:27:50 +0000 (17:27 +0000)]
Merge "MIPS: Initial version of optimizing compiler for MIPS32"

8 years agoMIPS: Initial version of optimizing compiler for MIPS32
Goran Jakovljevic [Tue, 25 Aug 2015 14:11:42 +0000 (16:11 +0200)]
MIPS: Initial version of optimizing compiler for MIPS32

Change-Id: I370388e8d5de52c7001552b513877ef5833aa621

8 years agoMerge "Do not run the verifier when deopting optimized frames."
Nicolas Geoffray [Thu, 22 Oct 2015 13:49:37 +0000 (13:49 +0000)]
Merge "Do not run the verifier when deopting optimized frames."

8 years agoDo not run the verifier when deopting optimized frames.
Nicolas Geoffray [Tue, 20 Oct 2015 14:52:58 +0000 (15:52 +0100)]
Do not run the verifier when deopting optimized frames.

The stack maps contain all the required information.

Change-Id: I709e72b3de0d76a4203a3a004f093071e7865642

8 years agoMerge "Fix art-run-tests dependencies"
Yohann Roussel [Thu, 22 Oct 2015 10:46:36 +0000 (10:46 +0000)]
Merge "Fix art-run-tests dependencies"

8 years agoFix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic.
Roland Levillain [Thu, 22 Oct 2015 10:38:49 +0000 (11:38 +0100)]
Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic.

Properly handle the case when the same object is passed to
sun.misc.Unsafe.compareAndSwapObject for the `obj` and
`newValue` arguments (named `base` and `value` in the
intrinsic implementation) and re-enable this intrinsic.

Also convert some reinterpret_casts to down_casts.

Bug: 12687968
Change-Id: I82167cfa77840ae2cdb45b9f19f5f530858fe7e8