OSDN Git Service
David Brazdil [Thu, 29 Oct 2015 16:36:54 +0000 (16:36 +0000)]
Merge "ART: Fix deopt from optimized code under inlining"
Mathieu Chartier [Thu, 29 Oct 2015 16:13:19 +0000 (16:13 +0000)]
Merge "Change Checkpoint API to return total number of checkpoints"
Andreas Gampe [Thu, 29 Oct 2015 15:48:50 +0000 (15:48 +0000)]
Merge "MIPS64: Add "Compare and Swap" intrinsic support."
Andreas Gampe [Thu, 29 Oct 2015 03:57:27 +0000 (03:57 +0000)]
Merge "Revert "Enable store elimination for singleton objects.""
Andreas Gampe [Thu, 29 Oct 2015 02:59:50 +0000 (02:59 +0000)]
Revert "Enable store elimination for singleton objects."
This reverts commit
7f43a3d48fc29045875d50e10bbc5d6ffc25d61e.
Fails booting.
Bug:
25357772
Change-Id: Ied19536f3ce8d81e76885cb6baed4853e2ed6714
Mathieu Chartier [Thu, 29 Oct 2015 01:36:09 +0000 (18:36 -0700)]
Change Checkpoint API to return total number of checkpoints
Fixes a race condition with SetStateUnsafe that caused some
warnings in the Barrier::~Barrier.
The race was:
RunCheckpoint sees suspended thread, runs the checkpoint. Inside the
checkpoint, the thread state had changed to runnable by
SetStateUnsafe. This occasionally caused more Barrier::Pass than
expected.
The fix is to return the total number of checkpoints instead of just
the runnable ones.
Bug:
24191051
Change-Id: If15a933ed4c8efa66a5f27cd5feaa2e5957ae804
David Brazdil [Wed, 28 Oct 2015 17:19:06 +0000 (12:19 -0500)]
ART: Fix deopt from optimized code under inlining
Deoptimization of inlined frames would use the outer method's
vreg map, thus starting interpreter in bogus state.
Bug:
25331616
Change-Id: I1d4aefc731bb1386f3e6186a89b59981836480b3
Mathieu Chartier [Wed, 28 Oct 2015 22:54:12 +0000 (22:54 +0000)]
Merge "Store method as ArtMethod* instead of jmethodId in Breakpoint"
Mathieu Chartier [Wed, 28 Oct 2015 18:10:46 +0000 (11:10 -0700)]
Store method as ArtMethod* instead of jmethodId in Breakpoint
Previously we needed a ScopedObjectAccess for Dbg::VisitRoots,
this could cause deadlocks in the following scenario:
GC:
Goes to runnable state while holding mutator lock as shared held.
This occurred in Dbg::VisitRoots when calling Breakpoint::Method.
Other thread:
Calls SuspendAll and suspends the GC thread before it can go back
to suspended thread state. This thread then attempts to exclusive
lock mutator lock, but the GC is suspended while holding it in a
shared state.
Bug:
25336094
Change-Id: Idcb8d34c314b1d6951abe533a0cfa586cc07d7d6
Aart Bik [Wed, 28 Oct 2015 21:19:21 +0000 (21:19 +0000)]
Merge "Generate taken-test during trip-count analysis."
Mingyao Yang [Wed, 28 Oct 2015 21:01:33 +0000 (21:01 +0000)]
Merge "Enable store elimination for singleton objects."
Aart Bik [Tue, 27 Oct 2015 22:56:28 +0000 (15:56 -0700)]
Generate taken-test during trip-count analysis.
Rationale: for loops that may not be taken, this taken-test
can be used by clients of the induction variable
analysis to ensure trip-count evaluation is valid.
Change-Id: Ia64749e2389b7224e69d6a49bb604b1964c11068
Hiroshi Yamauchi [Wed, 28 Oct 2015 19:21:55 +0000 (19:21 +0000)]
Merge "Rosalloc fast path in assembly for arm64."
Alex Light [Wed, 28 Oct 2015 18:30:42 +0000 (18:30 +0000)]
Merge "Fix 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
Nicolas Geoffray [Wed, 28 Oct 2015 18:22:43 +0000 (18:22 +0000)]
Merge "Tune heuristics a bit."
Nicolas Geoffray [Wed, 28 Oct 2015 17:59:35 +0000 (17:59 +0000)]
Merge "Adjust jit code cache on ThreadStress to avoid timeouts."
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
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
Nicolas Geoffray [Wed, 28 Oct 2015 17:03:34 +0000 (17:03 +0000)]
Merge "We 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
Alex Light [Wed, 28 Oct 2015 16:58:14 +0000 (16:58 +0000)]
Merge "Fix test failure due to wrong runtime arguments."
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."
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
Alex Light [Wed, 28 Oct 2015 16:13:20 +0000 (09:13 -0700)]
Fix test failure due to wrong runtime arguments.
Change-Id: Idf8888aaef1d01123e1097c8108cb23fb1fdb945
Nicolas Geoffray [Wed, 28 Oct 2015 15:08:59 +0000 (15:08 +0000)]
Merge "Add 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
Nicolas Geoffray [Wed, 28 Oct 2015 13:40:41 +0000 (13:40 +0000)]
Merge "Do not assume the dex cache is already populated."
Nicolas Geoffray [Wed, 28 Oct 2015 13:07:27 +0000 (13:07 +0000)]
Merge "Fix 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
Nicolas Geoffray [Wed, 28 Oct 2015 12:58:48 +0000 (12:58 +0000)]
Merge "Remove obsolete comment and option."
Nicolas Geoffray [Wed, 28 Oct 2015 12:49:35 +0000 (12:49 +0000)]
Merge "MIPS32: added support for unresolved classes"
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
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
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
Vladimir Marko [Wed, 28 Oct 2015 10:31:13 +0000 (10:31 +0000)]
Merge "Revert "Remove DCHECK that does not work for gtests.""
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
Mathieu Chartier [Tue, 27 Oct 2015 21:10:08 +0000 (21:10 +0000)]
Merge "Use HashMap for DexFileVerifier"
Hiroshi Yamauchi [Tue, 27 Oct 2015 19:24:04 +0000 (19:24 +0000)]
Merge "Make the mark stack expandable for the CC collector."
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
Nicolas Geoffray [Tue, 27 Oct 2015 18:22:58 +0000 (18:22 +0000)]
Merge "Remove 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
Aart Bik [Tue, 27 Oct 2015 16:36:49 +0000 (16:36 +0000)]
Merge "Added 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
Vladimir Marko [Tue, 27 Oct 2015 16:08:44 +0000 (16:08 +0000)]
Merge "Reduce memory used by CompiledMethods."
Nicolas Geoffray [Tue, 27 Oct 2015 16:00:58 +0000 (16:00 +0000)]
Merge "Support garbage collection of JITted code."
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
Nicolas Geoffray [Tue, 27 Oct 2015 15:03:38 +0000 (15:03 +0000)]
Merge "Remove stalled DCHECK."
Vladimir Marko [Tue, 27 Oct 2015 15:02:06 +0000 (15:02 +0000)]
Merge "Optimizing: Determine invoke-static/-direct dispatch early."
Nicolas Geoffray [Tue, 27 Oct 2015 14:54:21 +0000 (14:54 +0000)]
Remove stalled DCHECK.
Change-Id: I446f3f6b6da6a3f2c883f794b2e6ffb379a89c95
Nicolas Geoffray [Tue, 27 Oct 2015 14:42:22 +0000 (14:42 +0000)]
Merge "MIPS32: 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
Nicolas Geoffray [Tue, 27 Oct 2015 11:45:38 +0000 (11:45 +0000)]
Merge "Move jdwp and libcore testing to jit."
Calin Juravle [Tue, 27 Oct 2015 10:30:08 +0000 (10:30 +0000)]
Merge "MIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp()."
Neil Fuller [Tue, 27 Oct 2015 09:32:32 +0000 (09:32 +0000)]
Merge "Revert "Mark 2 libcore tests as failing.""
Chris Larsen [Fri, 23 Oct 2015 09:19:38 +0000 (02:19 -0700)]
MIPS64: Add "Compare and Swap" intrinsic support.
Add following functions from sun.misc.Unsafe:
- boolean compareAndSwapInt(Object, long, int expected, int)
- boolean compareAndSwapLong(Object, long, long expected, long)
- boolean compareAndSwapObject(Object, long, Object expected, Object)
Change-Id: Iea0bf486ce1fc0d77ce349dfd6c089c9835fbe92
Alexey Frunze [Mon, 26 Oct 2015 23:11:39 +0000 (16:11 -0700)]
MIPS: Support register pairs in CodeGeneratorMIPS::AddLocationAsTemp().
Change-Id: I8584c150cae27353b57f3dccc78a68d6cd6fc2c1
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
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
Andreas Gampe [Mon, 26 Oct 2015 21:23:47 +0000 (21:23 +0000)]
Merge "MIPS64: Clean-up intrinsics code"
Alex Light [Mon, 26 Oct 2015 21:15:34 +0000 (21:15 +0000)]
Merge "Cleanup some of the run-test system"
Dan Albert [Mon, 26 Oct 2015 19:13:32 +0000 (19:13 +0000)]
Merge "Make dchecked_vector C++11 compatible."
Nicolas Geoffray [Fri, 23 Oct 2015 13:59:54 +0000 (14:59 +0100)]
Support garbage collection of JITted code.
Change-Id: I9afc544460ae4fb31149644b6196ac7f5182c784
Mathieu Chartier [Mon, 26 Oct 2015 18:53:09 +0000 (18:53 +0000)]
Merge "Add HashSet::Reserve"
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
Mathieu Chartier [Mon, 26 Oct 2015 18:47:41 +0000 (18:47 +0000)]
Merge "Trim arena maps during heap trim"
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
Nicolas Geoffray [Mon, 26 Oct 2015 18:40:41 +0000 (18:40 +0000)]
Move jdwp and libcore testing to jit.
Change-Id: I4bfd2894ed4cd4a4a5825eae41388b915d97adea
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
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
Mathieu Chartier [Mon, 26 Oct 2015 17:04:29 +0000 (17:04 +0000)]
Merge "Use 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
Andreas Gampe [Mon, 26 Oct 2015 15:25:40 +0000 (15:25 +0000)]
Merge "ART: Support trivially-destructible arrays in ArenaUniquePtr"
Nicolas Geoffray [Mon, 26 Oct 2015 14:18:51 +0000 (14:18 +0000)]
Merge "MIPS32: Fix loading address in GenerateStaticOrDirectCall"
Nicolas Geoffray [Mon, 26 Oct 2015 13:36:48 +0000 (13:36 +0000)]
Merge "MIPS32: Remove tests from list of broken tests"
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
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
Calin Juravle [Mon, 26 Oct 2015 12:39:04 +0000 (12:39 +0000)]
Merge "Revert "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
Calin Juravle [Mon, 26 Oct 2015 12:06:24 +0000 (12:06 +0000)]
Merge "Run type propagation after inliner only when needed."
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
Nicolas Geoffray [Mon, 26 Oct 2015 08:57:38 +0000 (08:57 +0000)]
Merge "Fix dependencies when not building with Jack."
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
Mingyao Yang [Sat, 24 Oct 2015 00:44:17 +0000 (00:44 +0000)]
Merge "Disable 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
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
Mathieu Chartier [Fri, 23 Oct 2015 20:28:06 +0000 (20:28 +0000)]
Merge "Add 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
Andreas Gampe [Fri, 23 Oct 2015 18:40:24 +0000 (18:40 +0000)]
Merge "enum operator<<() script fails with do { } while cond;"
Mathieu Chartier [Fri, 23 Oct 2015 18:30:26 +0000 (18:30 +0000)]
Merge "Move 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
Andreas Gampe [Fri, 23 Oct 2015 18:20:20 +0000 (18:20 +0000)]
Merge "ART: 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
Mingyao Yang [Fri, 23 Oct 2015 17:45:57 +0000 (17:45 +0000)]
Merge "Revert "Revert "load store elimination."""
Nicolas Geoffray [Fri, 23 Oct 2015 16:27:59 +0000 (17:27 +0100)]
Fix dependencies when not building with Jack.
Change-Id: I6528a835974c4915872974265f2d135f754169b5
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
Nicolas Geoffray [Fri, 23 Oct 2015 15:15:40 +0000 (15:15 +0000)]
Merge "Disable 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
Roland Levillain [Fri, 23 Oct 2015 15:00:57 +0000 (15:00 +0000)]
Merge "ARM64: Instruction simplification for array accesses."
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