OSDN Git Service
Andreas Gampe [Thu, 1 May 2014 01:45:20 +0000 (01:45 +0000)]
am
96fd240b: am
0a3b13fc: Merge "Add heap reference size to the checks in arch_test"
* commit '
96fd240be74668ee9a29f24f12a1950fba211654':
Add heap reference size to the checks in arch_test
Andreas Gampe [Thu, 1 May 2014 01:43:26 +0000 (01:43 +0000)]
am
0a3b13fc: Merge "Add heap reference size to the checks in arch_test"
* commit '
0a3b13fc401bcf21225e30654012fe98806b0873':
Add heap reference size to the checks in arch_test
Andreas Gampe [Thu, 1 May 2014 01:41:37 +0000 (01:41 +0000)]
Merge "Add heap reference size to the checks in arch_test"
Andreas Gampe [Thu, 1 May 2014 01:39:50 +0000 (01:39 +0000)]
am
6967c844: am
c9ebc98a: Merge "Implement art_quick_aput_object stubs for X86-64 and ARM64"
* commit '
6967c844ac4f0b4a38df8472dfeffa14b1d0281a':
Implement art_quick_aput_object stubs for X86-64 and ARM64
Andreas Gampe [Thu, 1 May 2014 01:36:11 +0000 (01:36 +0000)]
am
c9ebc98a: Merge "Implement art_quick_aput_object stubs for X86-64 and ARM64"
* commit '
c9ebc98a65c180af3916d49ba61423d1285f71af':
Implement art_quick_aput_object stubs for X86-64 and ARM64
Andreas Gampe [Thu, 1 May 2014 01:33:51 +0000 (01:33 +0000)]
Merge "Implement art_quick_aput_object stubs for X86-64 and ARM64"
Andreas Gampe [Thu, 1 May 2014 01:28:55 +0000 (18:28 -0700)]
Add heap reference size to the checks in arch_test
As we will potentially make heap references larger than 32b on 64b
systems at some point, add a constant to the .h files that describes
what the current assembly implementation assumes about the size of
heap references, and check whether that agrees with sizeof.
Change-Id: I75ffd7e2b59891ec36977fd831a8d5faac69c76d
Andreas Gampe [Tue, 29 Apr 2014 23:55:52 +0000 (16:55 -0700)]
Implement art_quick_aput_object stubs for X86-64 and ARM64
Implement the aput_object stubs for 64b architectures and enable
their testing in stub_test.
Fix missing @PLT for x86.
Add automatic _local labels in function definitions in x86-64 so we
can make local jumps (instead of PLT hoops).
Change-Id: I614b88fd5966acd8a564b87c47d4c50ee605320c
Mathieu Chartier [Wed, 30 Apr 2014 22:29:07 +0000 (22:29 +0000)]
am
77e37979: am
adcfc69a: Merge "Don\'t allow allocating finalizable objects during transactions."
* commit '
77e37979aa45955956ef789689efd449498251ec':
Don't allow allocating finalizable objects during transactions.
Mathieu Chartier [Wed, 30 Apr 2014 22:26:10 +0000 (22:26 +0000)]
am
adcfc69a: Merge "Don\'t allow allocating finalizable objects during transactions."
* commit '
adcfc69aa94cc1d406ef78e194b1ac36e389ad95':
Don't allow allocating finalizable objects during transactions.
Mathieu Chartier [Wed, 30 Apr 2014 22:22:55 +0000 (22:22 +0000)]
Merge "Don't allow allocating finalizable objects during transactions."
Mingyao Yang [Wed, 30 Apr 2014 22:20:22 +0000 (22:20 +0000)]
am
5f9301a1: am
3c541e34: Merge "Simplify GenConstString"
* commit '
5f9301a124fb78720adfffa23ad0c575e014ccf7':
Simplify GenConstString
Mingyao Yang [Wed, 30 Apr 2014 22:16:28 +0000 (22:16 +0000)]
am
3c541e34: Merge "Simplify GenConstString"
* commit '
3c541e3438c2ec4f0acc9c9023a1f8644e2458ee':
Simplify GenConstString
Mingyao Yang [Wed, 30 Apr 2014 22:13:39 +0000 (22:13 +0000)]
Merge "Simplify GenConstString"
Mathieu Chartier [Tue, 29 Apr 2014 18:13:16 +0000 (11:13 -0700)]
Don't allow allocating finalizable objects during transactions.
It doesn't make sense to allocate finalizable objects during a
transcation since they will never get finalized without a started
runtime.
Before StatusInitialized in core.host.oatdump.txt: 3564
After StatusInitialized in core.host.oatdump.txt: 3564
Bug:
14078487
Change-Id: I7070536f7bb87bfc691d4268bd39a3eca492f48e
Bill Yi [Wed, 30 Apr 2014 01:13:19 +0000 (01:13 +0000)]
Bill Yi [Tue, 29 Apr 2014 23:07:17 +0000 (16:07 -0700)]
Mingyao Yang [Tue, 29 Apr 2014 22:55:37 +0000 (15:55 -0700)]
Simplify GenConstString
Now it's the same code for all platforms.
Bug:
13506069
Change-Id: I42c08a9dc99a3079caad01602de84296c9357dd8
Ian Rogers [Tue, 29 Apr 2014 22:02:56 +0000 (22:02 +0000)]
am
be470690: Merge "Force inlining on trivial accessors."
* commit '
be4706907e226959623c0fb4937cf3979f440a97':
Force inlining on trivial accessors.
Ian Rogers [Tue, 29 Apr 2014 21:57:01 +0000 (21:57 +0000)]
Merge "Force inlining on trivial accessors."
Mingyao Yang [Tue, 29 Apr 2014 21:51:41 +0000 (21:51 +0000)]
am
c5d59464: Merge "Rewrite suspend test check with LIRSlowPath."
* commit '
c5d59464e1b97c3008b0c4e0c8114ea132c3f65f':
Rewrite suspend test check with LIRSlowPath.
Mingyao Yang [Tue, 29 Apr 2014 21:46:03 +0000 (21:46 +0000)]
Merge "Rewrite suspend test check with LIRSlowPath."
Ian Rogers [Mon, 28 Apr 2014 23:47:08 +0000 (16:47 -0700)]
Force inlining on trivial accessors.
Make volatility for GetFieldObject a template parameter.
Move some trivial mirror::String routines to a -inl.h.
Bug:
14285442
Change-Id: Ie23b11d4f18cb15a62c3bbb42837a8aaf6b68f92
Mingyao Yang [Fri, 25 Apr 2014 18:06:00 +0000 (11:06 -0700)]
Rewrite suspend test check with LIRSlowPath.
Change-Id: I2dc17d079655586bfc588349c7a04afc2c6879af
Mathieu Chartier [Tue, 29 Apr 2014 20:10:11 +0000 (20:10 +0000)]
am
948740c1: Merge "Enable concurrent sweeping for non-concurrent GC."
* commit '
948740c1938860df055ddc801f20fd1707331e38':
Enable concurrent sweeping for non-concurrent GC.
Mathieu Chartier [Tue, 29 Apr 2014 20:02:20 +0000 (20:02 +0000)]
Merge "Enable concurrent sweeping for non-concurrent GC."
Mathieu Chartier [Wed, 23 Apr 2014 19:42:27 +0000 (12:42 -0700)]
Enable concurrent sweeping for non-concurrent GC.
Refactored the GarbageCollector to let all of the phases be run by
the collector's RunPhases virtual method. This lets the GC decide
which phases should be concurrent and reduces how much baked in GC
logic resides in GarbageCollector.
Enabled concurrent sweeping in the semi space and non concurrent
mark sweep GCs. Changed the semi-space collector to have a swap semi
spaces boolean which can be changed with a setter.
Fixed tests to pass with GSS collector, there was an error related to
the large object space limit.
Before (EvaluateAndApplyChanges):
GSS paused GC time 7.81s/7.81s, score: 3920
After (EvaluateAndApplyChanges):
GSS paused GC time 6.94s/7.71s, score: 3900
Benchmark score doesn't go up since the GC happens in the allocating
thread. There is a slight reduction in pause times experienced by
other threads (0.8s total).
Added options for pre sweeping GC heap verification and pre sweeping
rosalloc verification.
Bug:
14226004
Bug:
14250892
Bug:
14386356
Change-Id: Ib557d0590c1ed82a639d0f0281ba67cf8cae938c
Hiroshi Yamauchi [Tue, 29 Apr 2014 19:06:04 +0000 (19:06 +0000)]
am
66613042: Merge "Disable StubTest.APutObj if heap poisoning is enabled."
* commit '
66613042dfadfdba75286aac751f7ed534c4e5f7':
Disable StubTest.APutObj if heap poisoning is enabled.
Hiroshi Yamauchi [Tue, 29 Apr 2014 19:01:53 +0000 (19:01 +0000)]
Merge "Disable StubTest.APutObj if heap poisoning is enabled."
Andreas Gampe [Tue, 29 Apr 2014 18:23:18 +0000 (18:23 +0000)]
am
6b4855c7: Merge "Add ARM64 & X86_64 Assembly, plus tests"
* commit '
6b4855c7fc7f6faf108e9a18ae8e625fee00c146':
Add ARM64 & X86_64 Assembly, plus tests
Andreas Gampe [Tue, 29 Apr 2014 18:17:14 +0000 (18:17 +0000)]
Merge "Add ARM64 & X86_64 Assembly, plus tests"
Andreas Gampe [Fri, 25 Apr 2014 22:47:13 +0000 (15:47 -0700)]
Add ARM64 & X86_64 Assembly, plus tests
This adds assembly code or removes UNTESTED annotation from
TWO_ARG_DOWNCALLand THREE_ARG_DOWNCALL macros and supporting code,
generating working allocation stubs.
Some object and array allocation tests are added to the stub_test.
Change-Id: I5e93b7543c1e6dbd33b0d4cf564c7cbd963e74ef
Vladimir Marko [Tue, 29 Apr 2014 15:18:14 +0000 (15:18 +0000)]
am
becc3724: Merge "ART: Initialization of RegLocation and API for GrowableArray Iterator"
* commit '
becc37249b652ae9fecb6a23ced708cdacb7effd':
ART: Initialization of RegLocation and API for GrowableArray Iterator
Vladimir Marko [Tue, 29 Apr 2014 15:11:54 +0000 (15:11 +0000)]
Merge "ART: Initialization of RegLocation and API for GrowableArray Iterator"
Jean Christophe Beyler [Tue, 15 Apr 2014 23:18:48 +0000 (16:18 -0700)]
ART: Initialization of RegLocation and API for GrowableArray Iterator
Two things:
- Added a default initialization for the RegLocation.
- Added a default constructor and Reset for the GrowableArray's Iterator class.
Change-Id: I74d9c584304c77add42e0d66e4037ac45b890142
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
buzbee [Tue, 29 Apr 2014 13:19:46 +0000 (13:19 +0000)]
am
5108b677: Merge "Quick compiler: debugging assists"
* commit '
5108b6774ad12f4b74a7e2e2a1c6e8fc58db073e':
Quick compiler: debugging assists
buzbee [Tue, 29 Apr 2014 13:13:24 +0000 (13:13 +0000)]
Merge "Quick compiler: debugging assists"
buzbee [Tue, 29 Apr 2014 03:02:38 +0000 (20:02 -0700)]
Quick compiler: debugging assists
A few minor assists to ease A/B debugging in the Quick
compiler:
1. To save time, the assemblers for some targets only
update the object code offsets on instructions involved with
pc-relative fixups. We add code to fix up all offsets when
doing a verbose codegen listing.
2. Temp registers are normally allocated in a round-robin
fashion. When disabling liveness tracking, we now reset the
round-robin pool to 0 on each instruction boundary. This makes
it easier to spot real codegen differences.
3. Self-register copies were previously emitted, but
marked as nops. Minor change to avoid generating them in the
first place and reduce clutter.
Change-Id: I7954bba3b9f16ee690d663be510eac7034c93723
Nicolas Geoffray [Tue, 29 Apr 2014 10:08:02 +0000 (10:08 +0000)]
am
26db7837: Merge "Setup policies for register allocation."
* commit '
26db78377ad287bc925fc00ab2fa2cbffae20c52':
Setup policies for register allocation.
Nicolas Geoffray [Tue, 29 Apr 2014 10:01:15 +0000 (10:01 +0000)]
Merge "Setup policies for register allocation."
Nicolas Geoffray [Mon, 28 Apr 2014 16:47:12 +0000 (17:47 +0100)]
Setup policies for register allocation.
Change-Id: I857e77530fca3e2fb872fc142a916af1b48400dc
Sebastien Hertz [Tue, 29 Apr 2014 09:15:14 +0000 (09:15 +0000)]
am
8ab560e4: Merge "Fix DDM recent allocations"
* commit '
8ab560e4b2d8b20e42fc92040e8a12dbe77fed30':
Fix DDM recent allocations
Sebastien Hertz [Tue, 29 Apr 2014 09:15:13 +0000 (09:15 +0000)]
am
deeb21bb: Merge "Visit deoptimized shadow frames as roots"
* commit '
deeb21bbe114193477755074a1e31595abafd5c2':
Visit deoptimized shadow frames as roots
Sebastien Hertz [Tue, 29 Apr 2014 07:43:03 +0000 (07:43 +0000)]
Merge "Fix DDM recent allocations"
Sebastien Hertz [Mon, 28 Apr 2014 07:26:50 +0000 (09:26 +0200)]
Fix DDM recent allocations
A class may not have source file in which case ClassHelper::GetSourceFile
returns NULL. Adding the GetMethodSourceFile function helps us preventing
from dealing with null strings.
Bug:
14300208
Change-Id: I28707f883bacec4ee367ff703328d0f0240855f9
Sebastien Hertz [Tue, 29 Apr 2014 07:25:00 +0000 (07:25 +0000)]
Merge "Visit deoptimized shadow frames as roots"
Sebastien Hertz [Mon, 28 Apr 2014 13:03:08 +0000 (15:03 +0200)]
Visit deoptimized shadow frames as roots
During deoptimization, we create shadow frames but do not attach them to the
stack until we transition to interpreter mode. If a GC happens before that,
these shadow frames are not visited by GC so they may contain stale references.
This CL addresses this issue by visiting the shadow frames "under contruction"
in Thread::VisitRoots so we correctly update all references they hold.
To make them visible, we now save the top shadow frame (the first one created)
in the field Thread::tls_ptr_sized_values::deoptimization_shadow_frame. This
field will then be cleared when transitioning to interpreter mode.
Bug:
14324885
Change-Id: Ib213ddc80f19cfcdfcec6f20acaa7f1a0e9ce2c1
Hiroshi Yamauchi [Tue, 29 Apr 2014 00:21:48 +0000 (17:21 -0700)]
Disable StubTest.APutObj if heap poisoning is enabled.
The StubTest.APutObj test currently fails (crashes) as it runs code
that does not support heap poisoning yet. Disable it until such
support is added.
Bug:
12687968
Change-Id: I70d1f7f300e70ffae970ebeca9a29849aa7dffc6
Hiroshi Yamauchi [Tue, 29 Apr 2014 00:16:37 +0000 (00:16 +0000)]
am
cb905718: Merge "Improve GSS reference processing."
* commit '
cb905718826da268d8d8e09296806256f202c9f4':
Improve GSS reference processing.
Hiroshi Yamauchi [Tue, 29 Apr 2014 00:09:59 +0000 (00:09 +0000)]
Merge "Improve GSS reference processing."
Elliott Hughes [Mon, 28 Apr 2014 21:02:04 +0000 (21:02 +0000)]
am
8dd63859: Merge "Track package change."
* commit '
8dd63859e586afebd8f8e17a4809ecf0dcbeed62':
Track package change.
Elliott Hughes [Mon, 28 Apr 2014 20:56:16 +0000 (20:56 +0000)]
Merge "Track package change."
Ian Rogers [Mon, 28 Apr 2014 20:55:34 +0000 (20:55 +0000)]
am
26ec6ae9: Merge "Remove unreachable JNI workaround code."
* commit '
26ec6ae9522416cfc57070cc1f326a450670bc92':
Remove unreachable JNI workaround code.
Mathieu Chartier [Mon, 28 Apr 2014 20:51:59 +0000 (20:51 +0000)]
am
b871efe9: Merge "Always log explicit GC."
* commit '
b871efe994cd54ec94d1c36350d4c8e33ede15b7':
Always log explicit GC.
Ian Rogers [Mon, 28 Apr 2014 20:47:28 +0000 (20:47 +0000)]
Merge "Remove unreachable JNI workaround code."
Mathieu Chartier [Mon, 28 Apr 2014 20:45:36 +0000 (20:45 +0000)]
Merge "Always log explicit GC."
Hiroshi Yamauchi [Wed, 23 Apr 2014 00:10:48 +0000 (17:10 -0700)]
Improve GSS reference processing.
Support the case where the reference object is in the free list space
and the referent object is in the bump pointer space at a bump pointer
space collection.
Bug:
11650816
Change-Id: If98b08edc9e37351c74ee07cb3f2d30c2b4d0056
Mathieu Chartier [Mon, 28 Apr 2014 19:22:07 +0000 (12:22 -0700)]
Always log explicit GC.
People who use DDMS want to see that a GC actually occurs when they
press GC button.
Bug:
14325353
Change-Id: I44e0450c92abf7223d33552ed37f626fe63e1c28
Elliott Hughes [Mon, 28 Apr 2014 18:25:17 +0000 (11:25 -0700)]
Track package change.
art could keep using the "private" package, but it doesn't _need_ to
so it makes sense to switch it over to the [future] public package.
Change-Id: I715e0079fe64886ca9e4a9399bb525a7f8fadab0
Ian Rogers [Mon, 28 Apr 2014 18:24:16 +0000 (11:24 -0700)]
Remove unreachable JNI workaround code.
Change-Id: I8d737ced8b553ed80a1fd72560e62abd78ff8b12
Mathieu Chartier [Mon, 28 Apr 2014 17:36:55 +0000 (17:36 +0000)]
am
ec3a2157: Merge "Fix racy DCHECKS."
* commit '
ec3a2157d2a3e8bcfb34e9a2f2aa54254a8eec19':
Fix racy DCHECKS.
Mathieu Chartier [Mon, 28 Apr 2014 17:30:04 +0000 (17:30 +0000)]
Merge "Fix racy DCHECKS."
Mathieu Chartier [Mon, 28 Apr 2014 16:35:55 +0000 (09:35 -0700)]
Fix racy DCHECKS.
Added a size bracket lock to fix a race condition where we were
inserting into full_runs_ and non_full_runs_ holding a lock but
reading without holding a lock from a different thread.
Bug:
14326370
Change-Id: I5c492bddc4b9927e4a36603f3d787b046961675d
Ian Rogers [Mon, 28 Apr 2014 16:10:03 +0000 (16:10 +0000)]
am
5dee5df8: Merge "Avoid volatile 64-bit tearing on 32-bit architectures."
* commit '
5dee5df89aa2cefef6c886d5b9b642cc6f1c595b':
Avoid volatile 64-bit tearing on 32-bit architectures.
Ian Rogers [Mon, 28 Apr 2014 16:02:49 +0000 (16:02 +0000)]
Merge "Avoid volatile 64-bit tearing on 32-bit architectures."
Ian Rogers [Tue, 22 Apr 2014 00:01:02 +0000 (17:01 -0700)]
Avoid volatile 64-bit tearing on 32-bit architectures.
Change
b122a4bbed34ab22b4c1541ee25e5cf22f12a926 removed inline assembly for
volatile 64bit read/writes. This isn't sound in the general case, reinstate.
Motivating change: https://android-review.googlesource.com/91250
Add optimizations for ARM in the case of LPAE support.
Change-Id: Ie86d8885d27c8f0da75f0c3bd50d4553a331282f
Nicolas Geoffray [Mon, 28 Apr 2014 15:29:26 +0000 (15:29 +0000)]
am
53e5d100: Merge "Add a Transform to SSA phase to the optimizing compiler."
* commit '
53e5d10036a5d4fdf84b32354c11dd8f2140b8ab':
Add a Transform to SSA phase to the optimizing compiler.
Nicolas Geoffray [Mon, 28 Apr 2014 15:22:52 +0000 (15:22 +0000)]
Merge "Add a Transform to SSA phase to the optimizing compiler."
Nicolas Geoffray [Thu, 24 Apr 2014 11:43:16 +0000 (12:43 +0100)]
Add a Transform to SSA phase to the optimizing compiler.
Change-Id: Ia9700756a0396d797a00b529896487d52c989329
buzbee [Mon, 28 Apr 2014 12:39:25 +0000 (12:39 +0000)]
am
0f73e2ee: Merge "Quick compiler: fix DCHECKS"
* commit '
0f73e2ee44977b9b5cfe42f6c4c3b6a407e92368':
Quick compiler: fix DCHECKS
buzbee [Mon, 28 Apr 2014 12:33:58 +0000 (12:33 +0000)]
Merge "Quick compiler: fix DCHECKS"
Vladimir Marko [Mon, 28 Apr 2014 10:22:09 +0000 (10:22 +0000)]
am
6d238776: Merge "ART: Bitvector extensions for dumping and size handling"
* commit '
6d2387765ed0a898281d126bc3d4f9b124667d5d':
ART: Bitvector extensions for dumping and size handling
Vladimir Marko [Mon, 28 Apr 2014 10:18:30 +0000 (10:18 +0000)]
Merge "ART: Bitvector extensions for dumping and size handling"
Vladimir Marko [Mon, 28 Apr 2014 09:15:34 +0000 (09:15 +0000)]
am
990d46f3: Merge "Move mapping table and vmap table offsets to OatMethodHeader."
* commit '
990d46f3333dce06a640ced697ee069330a73d7c':
Move mapping table and vmap table offsets to OatMethodHeader.
Vladimir Marko [Mon, 28 Apr 2014 09:09:06 +0000 (09:09 +0000)]
Merge "Move mapping table and vmap table offsets to OatMethodHeader."
Brian Carlstrom [Mon, 28 Apr 2014 08:47:32 +0000 (08:47 +0000)]
am
bf25f7e3: Merge "Fix typo of --oat-fd description in help"
* commit '
bf25f7e3a007ecfe4b2bcfa0a9abcb784ff54e26':
Fix typo of --oat-fd description in help
Brian Carlstrom [Mon, 28 Apr 2014 04:23:00 +0000 (04:23 +0000)]
Merge "Fix typo of --oat-fd description in help"
buzbee [Mon, 28 Apr 2014 02:33:22 +0000 (19:33 -0700)]
Quick compiler: fix DCHECKS
The recent change to introduce k32, k64 and kReference operand
sizes missed updating a few DCHECKS.
Change-Id: I66eb617b07766e781b38962dc862fc5b023c2fbd
Wonil Kim [Mon, 28 Apr 2014 02:26:55 +0000 (11:26 +0900)]
Fix typo of --oat-fd description in help
--oat-fd description in help was copied from --oat-file description.
Change-Id: Idbf36018af58db169f6d65382a7602ec950cce99
Signed-off-by: Wonil Kim <wonil.kim@gmail.com>
Andreas Gampe [Sat, 26 Apr 2014 01:15:34 +0000 (01:15 +0000)]
am
0db6d06d: Merge "Rosalloc: fix signature for 64b"
* commit '
0db6d06d1e4dec2ac36ca9c085876eea40d46a50':
Rosalloc: fix signature for 64b
Andreas Gampe [Sat, 26 Apr 2014 00:18:56 +0000 (00:18 +0000)]
Merge "Rosalloc: fix signature for 64b"
Andreas Gampe [Sat, 26 Apr 2014 00:15:12 +0000 (17:15 -0700)]
Rosalloc: fix signature for 64b
Change-Id: I56df1df0118a0aa1584e51fb574902f7eb88cd80
Andreas Gampe [Fri, 25 Apr 2014 23:20:02 +0000 (23:20 +0000)]
am
4d214353: Merge "Add "arch_test" gtest for assembly stub constants, add some ARM64 assembly code"
* commit '
4d2143539beb0d714135c28ece2d1903bd40feb9':
Add "arch_test" gtest for assembly stub constants, add some ARM64 assembly code
Andreas Gampe [Fri, 25 Apr 2014 23:14:58 +0000 (23:14 +0000)]
Merge "Add "arch_test" gtest for assembly stub constants, add some ARM64 assembly code"
Brian Carlstrom [Fri, 25 Apr 2014 23:13:50 +0000 (23:13 +0000)]
am
44dad8a8: Merge "Do not require dexopt when previous profile does not exist"
* commit '
44dad8a8f12b1118d039c4587bfcce1dd2ef2446':
Do not require dexopt when previous profile does not exist
Andreas Gampe [Tue, 22 Apr 2014 02:28:24 +0000 (19:28 -0700)]
Add "arch_test" gtest for assembly stub constants, add some ARM64 assembly code
Add a test that (1) checks all callee-save method frame sizes for
all architectures, (2) checks thread offsets for the runtime
architecture and (3) checks callee-save method offsets for the
runtime architecture.
The "asm_support_XXX.h" files now only contain definitions that are
common between all architectures. Architecture-specific definitions
(i.e., special registers names) have been pushed into the corresponding
.S file. This change was required to be able to undefine definitions
in the test, so that multiple tests can be written in one file.
Test (1) above is in a sense two-stage. The arch_test gtest compares
constants (if it finds them) against the frame size as reported by
the ArtMethods created by the Runtime. This works for all architectures
as we can provide the instruction-set to CreateCalleeSaveMethod. The
second stage of the "test" are preprocessor tests with "#error" in the
case that the constants are not the expected value.
Optimally I'd like to change that to an actual runtime test exercising
the assembly code, which would also allow to check whether the right
registers are stored.
Also added missing assembly code for ARM64 for the callee-save macros.
Also fix X86_64 compilation for Clang 3.5.
Change-Id: I018e6433dffd3d31ba3bfcd75661653f4c7b6552
Mathieu Chartier [Fri, 25 Apr 2014 23:01:38 +0000 (23:01 +0000)]
am
cbec9674: Merge "Enable reading page map without lock in RosAlloc::BulkFree"
* commit '
cbec967415eb0641c71ee77e478a2402780f6982':
Enable reading page map without lock in RosAlloc::BulkFree
Brian Carlstrom [Fri, 25 Apr 2014 23:00:26 +0000 (23:00 +0000)]
Merge "Do not require dexopt when previous profile does not exist"
Mathieu Chartier [Fri, 25 Apr 2014 22:51:58 +0000 (22:51 +0000)]
Merge "Enable reading page map without lock in RosAlloc::BulkFree"
Brian Carlstrom [Sat, 19 Apr 2014 00:44:01 +0000 (17:44 -0700)]
Do not require dexopt when previous profile does not exist
Also turn down some dex2oat related noise
Bug:
14184659
Change-Id: I134890f2c452d7f85ca4b736b5724f42533c2a7f
Ian Rogers [Fri, 25 Apr 2014 21:44:01 +0000 (21:44 +0000)]
am
7f40b111: Merge "ART: Enables x86_64 disassembly"
* commit '
7f40b111755e300ddddd6839425337fe3af8d4e7':
ART: Enables x86_64 disassembly
Ian Rogers [Fri, 25 Apr 2014 21:36:59 +0000 (21:36 +0000)]
Merge "ART: Enables x86_64 disassembly"
Mathieu Chartier [Sat, 12 Apr 2014 00:53:48 +0000 (17:53 -0700)]
Enable reading page map without lock in RosAlloc::BulkFree
Enabling this flag greatly reduces how much time was spent in the GC.
It was not done previously since it was regressing MemAllocTest. With
these RosAlloc changes, the benchmark score no longer regresses after
we enable the flag.
Changed Run::AllocSlot to only have one mode of allocation. The new
mode is finding the first free bit in the bitmap. This was
previously the slow path but is now the fast path. Some optimizations
which enabled this include always having the alloc bitmap bits which
correspond to invalid slots be set to 1. This prevents us from needing
a bound check since we will never end up allocating there.
Changed revoking thread local buffer to point to an invalid run. The
invalid run is just a run which always has all the allocation bits set
to 1. When a thread attempts to do a thread local allocation from here
it will always fail and go slow path. This eliminates the need for a
null check for revoked runs.
Changed zeroing of memory to happen during free, AllocPages should
always return zeroed memory. Added prefetching which happens when we
allocate a run.
Some refactoring to reduce duplicated code.
Ergonomics changes: Changed kStickyGcThroughputAdjustment to 1.0,
this helps reduce GC time.
Measurements (3 samples per benchmark):
Before: MemAllocTest scores: 3463, 3445, 3431
EvaluateAndApplyChanges score | total GC time
Iter 1: 3485, 23.602436s
Iter 2: 3434, 22.499882s
Iter 3: 3483, 23.253274s
After: MemAllocTest scores: 3495, 3417, 3409
EvaluateAndApplyChanges score | total GC time:
Iter 1: 3375, 17.463462s
Iter 2: 3358, 16.185188s
Iter 3: 3367, 15.822312s
Bug:
8788501
Bug:
11790317
Bug:
9986565
Change-Id: Ifd273a054824028dabed27c07c081dde1816f93c
Stephen Hines [Fri, 25 Apr 2014 20:51:40 +0000 (20:51 +0000)]
am
bb43b210: Merge "Fix ART compilation for Clang 3.5."
* commit '
bb43b2102cf1f3a753448e684a5540654382e69c':
Fix ART compilation for Clang 3.5.
Stephen Hines [Fri, 25 Apr 2014 20:47:14 +0000 (20:47 +0000)]
Merge "Fix ART compilation for Clang 3.5."
Vladimir Kostyukov [Fri, 18 Apr 2014 10:06:15 +0000 (17:06 +0700)]
ART: Enables x86_64 disassembly
This patch
(a) cuts a REX prefix from the instruction and
(b) adds missed 32bit disp to instructions with ModR/M and SIB bytes.
Change-Id: I2674678224ca27746b33d4006ed38d497972309f
Signed-off-by: Vladimir Kostyukov <vladimir.kostyukov@intel.com>
Bill Buzbee [Fri, 25 Apr 2014 16:41:34 +0000 (16:41 +0000)]
am
e8256e77: Merge "Skip BBs without SSA representation in the Constant Propagation phase"
* commit '
e8256e7773a230337c3d137cbf0365f737820405':
Skip BBs without SSA representation in the Constant Propagation phase
Bill Buzbee [Fri, 25 Apr 2014 16:36:07 +0000 (16:36 +0000)]
Merge "Skip BBs without SSA representation in the Constant Propagation phase"
Andreas Gampe [Fri, 25 Apr 2014 14:59:16 +0000 (14:59 +0000)]
am
3f4dcdf6: Merge "Revert "Revert "ART: Extracts an utility function of the duplicated code"""
* commit '
3f4dcdf6c99f90a2301304d26ce29dc637b4be7f':
Revert "Revert "ART: Extracts an utility function of the duplicated code""
Andreas Gampe [Fri, 25 Apr 2014 14:51:34 +0000 (14:51 +0000)]
Merge "Revert "Revert "ART: Extracts an utility function of the duplicated code"""