OSDN Git Service
Mathieu Chartier [Thu, 14 Jan 2016 01:16:24 +0000 (01:16 +0000)]
Merge "Add test for calling into destroyed JNI env"
Mathieu Chartier [Thu, 14 Jan 2016 00:20:26 +0000 (16:20 -0800)]
Add test for calling into destroyed JNI env
The test calls into ExceptionCheck with a destroyed JNI env and
expects to never come back out.
Bug:
18577101
Change-Id: I96832c78d20de4a7d8a9ddf2d0636f08fc4ed9f2
Bill Buzbee [Wed, 13 Jan 2016 22:01:53 +0000 (22:01 +0000)]
Merge "ART: Mterp read barrier fix + minor cleanup"
buzbee [Wed, 13 Jan 2016 21:06:22 +0000 (13:06 -0800)]
ART: Mterp read barrier fix + minor cleanup
Read barrier support relies on hooks in common code for loading
object references. Mterp missed doing this for iget-object-quick.
Also, added missing conditional assembly around debug event logging
for mterp fallback and deleted an unnecessary store.
Bug:
26510411
Change-Id: I2d5b27c4090be58d3cfcb14309d14ccabf04a6f5
Aart Bik [Wed, 13 Jan 2016 20:53:18 +0000 (20:53 +0000)]
Merge "Fixed bug with hoisting/deopting in taken-block instead of preheader. With a fail-before pass-after regression test."
Aart Bik [Wed, 13 Jan 2016 19:15:15 +0000 (19:15 +0000)]
Merge "Reduce code size by sharing slow paths."
Alex Light [Wed, 13 Jan 2016 18:49:30 +0000 (18:49 +0000)]
Merge "Sort output of a find command in makefile"
Aart Bik [Tue, 12 Jan 2016 22:12:47 +0000 (14:12 -0800)]
Fixed bug with hoisting/deopting in taken-block instead of preheader.
With a fail-before pass-after regression test.
Rationale:
Hoisting and deopting should be done in the taken-block for safety
of the evaluation *unless* the code was in the original loop header,
and thus always taken.
https://code.google.com/p/android/issues/detail?id=198697
bug:
26506884
Change-Id: I1cf121292559fd2570ad67587ec3bc8e8a85a92a
David Srbecky [Wed, 13 Jan 2016 15:58:42 +0000 (15:58 +0000)]
Merge "Add DWARF type information generation."
Tamas Berghammer [Tue, 5 Jan 2016 14:29:02 +0000 (14:29 +0000)]
Add DWARF type information generation.
Emit native debugging information for types which are used during
compilation.
Change-Id: If28d19f60294494b7c6db8400d179494bebe9e61
David Srbecky [Wed, 13 Jan 2016 15:53:43 +0000 (15:53 +0000)]
Merge "Report DWARF debug information for JITed code."
David Srbecky [Fri, 18 Dec 2015 15:04:48 +0000 (15:04 +0000)]
Report DWARF debug information for JITed code.
Change-Id: Ia5b2133c54386932c76c22774cf3d2ae61e0925f
Vladimir Marko [Wed, 13 Jan 2016 15:14:30 +0000 (15:14 +0000)]
Merge "MIPS64: Fix stub_test"
Nicolas Geoffray [Wed, 13 Jan 2016 14:10:34 +0000 (14:10 +0000)]
Merge "HDeoptimize can also trigger GC."
Nicolas Geoffray [Wed, 13 Jan 2016 13:56:20 +0000 (13:56 +0000)]
HDeoptimize can also trigger GC.
bug:
26532563
Change-Id: Idaa294fb500ab820c7b45e37747e96f0b455f663
Goran Jakovljevic [Wed, 13 Jan 2016 13:41:02 +0000 (14:41 +0100)]
MIPS64: Fix stub_test
$t0-$t3 registers are stored on stack, since they may be
used after assembly code even if they are in clobber list.
Change-Id: I26e991e4ecd8a27d6638046266202eeb46a2bbcf
Roland Levillain [Wed, 13 Jan 2016 13:24:59 +0000 (13:24 +0000)]
Merge "Fix memory fences in the ARM64 UnsafeCas intrinsics."
David Srbecky [Wed, 13 Jan 2016 12:52:37 +0000 (12:52 +0000)]
Merge "Disable --generate-debug-info by default in all cases."
Nicolas Geoffray [Wed, 13 Jan 2016 12:39:41 +0000 (12:39 +0000)]
Merge "Set side effects to HNullCheck and HBoundsCheck."
Nicolas Geoffray [Wed, 13 Jan 2016 12:09:39 +0000 (12:09 +0000)]
Set side effects to HNullCheck and HBoundsCheck.
Both can trigger GC, as they will call NullPointerException or
IndexOutOfBoundsException constructors.
bug:
26532563
Change-Id: Id9e42f0450caaaf365630989e1b36e98add46c89
Vladimir Marko [Wed, 13 Jan 2016 10:39:05 +0000 (10:39 +0000)]
Merge "MIPS: Implement HRor"
Aart Bik [Thu, 7 Jan 2016 23:33:50 +0000 (15:33 -0800)]
Reduce code size by sharing slow paths.
Rationale:
Sharing identical slow path code reduces code size.
Background:
Currently, slow paths with the same dex-pc, same physical register
spilling code, and identical stack maps are shared (making this
only useful for deopt slow paths). The newly introduced mechanism
is sufficiently general to allow future improvements by e.g.
allowing different dex-pc (by passing this to runtime) or even
the kind of slow paths (by passing runtime addresses to the slowpath).
Change-Id: I819615c47b4fd98440a241f681f93e4fc22d12e0
Alex Light [Tue, 12 Jan 2016 19:10:23 +0000 (11:10 -0800)]
Sort output of a find command in makefile
This should mean that there will be fewer spurious kati rebuilds of
the ninja files due to the output changing.
Change-Id: I26beb4ae1d95fe591c3854772b804718b41fe53c
Hiroshi Yamauchi [Tue, 12 Jan 2016 23:45:26 +0000 (23:45 +0000)]
Merge "Disable mterp for the read barrier config."
Dan Albert [Tue, 12 Jan 2016 23:02:00 +0000 (23:02 +0000)]
Merge "Correct value_type for some TrackingAllocators."
Mathieu Chartier [Tue, 12 Jan 2016 22:38:30 +0000 (22:38 +0000)]
Merge "Do not leave intermediate addresses across Java calls."
Dan Albert [Tue, 12 Jan 2016 22:23:14 +0000 (14:23 -0800)]
Correct value_type for some TrackingAllocators.
The standard says that the value_type for the allocator of a
map/multimap must be std::pair<const Key, T>. These instances were not
properly carrying the const, and the updated version of libc++ has a
static_assert to make sure that map::allocator_type and
allocator::value_type really do match (as mismatches will tickle
undefined behavior in libc++).
Change-Id: I7a3a49fccea4ecc4579929d9ddd7872c62b60f5f
Mathieu Chartier [Tue, 12 Jan 2016 21:47:56 +0000 (21:47 +0000)]
Merge "Revert "Disable flaky test on host.""
Bill Buzbee [Tue, 12 Jan 2016 21:23:35 +0000 (21:23 +0000)]
Merge "Disable mterp if unstarted runtime"
buzbee [Tue, 12 Jan 2016 20:45:51 +0000 (12:45 -0800)]
Disable mterp if unstarted runtime
Mterp uses entrypoints that assume the runtime is started. If it isn't,
revert to the fallback interpreter.
Bug:
26510411
Change-Id: I08278981ee1e7bc21163c6584426cc18a5e261fc
Mathieu Chartier [Tue, 12 Jan 2016 21:13:29 +0000 (13:13 -0800)]
Revert "Disable flaky test on host."
Bug:
26483935
This reverts commit
72f7236cbc00e3a3f93dffb627417d666ee22518.
Change-Id: I57eb2b8315d274ad751aa2054a298a556c7b0cd9
Mathieu Chartier [Tue, 12 Jan 2016 21:10:06 +0000 (21:10 +0000)]
Merge "Add sleep in SuspendAllDaemonThreadsForShutdown"
Hiroshi Yamauchi [Tue, 12 Jan 2016 20:05:08 +0000 (12:05 -0800)]
Disable mterp for the read barrier config.
For now. Volantis boots with this.
Bug:
26510411
Bug:
12687968
Change-Id: Ifc9799404306c973ad1085c42c399d6eef05dcc6
Nicolas Geoffray [Tue, 12 Jan 2016 18:21:51 +0000 (18:21 +0000)]
Merge "Disable tests while investigating."
Nicolas Geoffray [Tue, 12 Jan 2016 18:21:05 +0000 (18:21 +0000)]
Disable tests while investigating.
Change-Id: Idc7b81df6e41794728e6cf990f64dcb1b0544289
Mathieu Chartier [Mon, 11 Jan 2016 18:19:06 +0000 (10:19 -0800)]
Add sleep in SuspendAllDaemonThreadsForShutdown
Only sleep if there are still daemon threads. Since we have already
shutdown the runtime daemons, this is a rare case. The goal of the
sleep is to leave daemon threads time to become blocked in a place
where they ideally will not touch runtime state.
Bug:
26483935
Bug:
18577101
Change-Id: Iad12209e771720523620e0a3829a75ec4647f58b
Roland Levillain [Tue, 12 Jan 2016 16:39:37 +0000 (16:39 +0000)]
Merge "Ignore ZipFileTest and ZipInputStreamTest failures with CC."
Roland Levillain [Tue, 12 Jan 2016 16:24:52 +0000 (16:24 +0000)]
Ignore ZipFileTest and ZipInputStreamTest failures with CC.
These tests sometimes fail with a
java.util.concurrent.TimeoutException on ART Builbot's x86
and x86-64 concurrent collector configurations:
* libcore.java.util.zip.ZipFileTest#testZipFileWithLotsOfEntries
* libcore.java.util.zip.ZipInputStreamTest#testLongMessage
Bug:
26507762
Change-Id: I344d3ce4fbb4709025861ef2f009d768cc7524b8
Nicolas Geoffray [Tue, 12 Jan 2016 16:03:16 +0000 (16:03 +0000)]
Do not leave intermediate addresses across Java calls.
bug:
26472446
Change-Id: Ie4a9b5fe6f1d61a76c71eceaa2299fe55512c612
David Srbecky [Tue, 12 Jan 2016 14:54:03 +0000 (14:54 +0000)]
Disable --generate-debug-info by default in all cases.
The option is disabled by default unless explicitly enabled.
In particular, it is no longer enabled in debug builds,
and the --debuggable option does not affect it.
I want to use this flag to control the debug data generated
by the JIT as well. Since this takes run-time memory,
I want to avoid enabling it unless explicitly requested.
Change-Id: I2e2afa2f56bb0a113e92cc2e26e00dceac1689ca
Nicolas Geoffray [Tue, 12 Jan 2016 14:01:41 +0000 (14:01 +0000)]
Merge "Revert "Change condition to opposite if lhs is constant""
Nicolas Geoffray [Tue, 12 Jan 2016 14:00:24 +0000 (14:00 +0000)]
Revert "Change condition to opposite if lhs is constant"
Breaks arm64
This reverts commit
f9f196c55f3b25c3b09350cd8ed5d7ead31f1757.
Change-Id: Ie1027a218154b8ded6c1c8f0007720f5be68780d
Nicolas Geoffray [Tue, 12 Jan 2016 13:09:59 +0000 (13:09 +0000)]
Merge "Change condition to opposite if lhs is constant"
Anton Shamin [Tue, 8 Sep 2015 11:33:16 +0000 (17:33 +0600)]
Change condition to opposite if lhs is constant
Swap operands if lhs is constant. Handeled unsigned comparison
in insruction simplifier. Fixed NaN comparison: no matter what
bias is set result of Equal and NotEqual operations should not
depend on it. Added checker tests.
Change-Id: I5a9ac25fb10f2705127a52534867cee43368ed1b
Signed-off-by: Anton Shamin <anton.shamin@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Vladimir Marko [Tue, 12 Jan 2016 12:19:19 +0000 (12:19 +0000)]
Merge "Optimizing/ARM: Fix CmpConstant()."
Vladimir Marko [Tue, 12 Jan 2016 12:19:03 +0000 (12:19 +0000)]
Merge "Clean up SwapSpace."
Roland Levillain [Tue, 12 Jan 2016 12:01:04 +0000 (12:01 +0000)]
Fix memory fences in the ARM64 UnsafeCas intrinsics.
Also add some comments for the ARM UnsafeCas intrinsics.
Change-Id: Ic6e4f2c37e468db4582ac8709496a80f3c1f9a6b
Roland Levillain [Tue, 12 Jan 2016 11:42:52 +0000 (11:42 +0000)]
Merge "Ignore libcore.java.lang.OldSystemTest#test_gc failures with CC."
Roland Levillain [Tue, 12 Jan 2016 11:10:06 +0000 (11:10 +0000)]
Ignore libcore.java.lang.OldSystemTest#test_gc failures with CC.
This test is sometimes failing on ART Builbot's ARMv8
concurrent collector configuration.
Bug:
26155567
Change-Id: I0a6ead8e9136d4125b58c86e13ce9a359bcb113e
Bill Buzbee [Mon, 11 Jan 2016 21:06:06 +0000 (21:06 +0000)]
Merge "Fast Art interpreter"
buzbee [Fri, 6 Mar 2015 22:43:04 +0000 (14:43 -0800)]
Fast Art interpreter
Add a Dalvik-style fast interpreter to Art.
Three primary deficiencies in the existing Art interpreter
will be addressed:
1. Structural inefficiencies (primarily the bloated
fetch/decode/execute overhead of the C++ interpreter
implementation).
2. Stack memory wastage. Each managed-language invoke
adds a full copy of the interpreter's compiler-generated
locals on the shared stack. We're at the mercy of
the compiler now in how much memory is wasted here. An
assembly based interpreter can manage memory usage more
effectively.
3. Shadow frame model, which not only spends twice the memory
to store the Dalvik virtual registers, but causes vreg stores
to happen twice.
This CL mostly deals with #1 (but does provide some stack memory
savings). Subsequent CLs will address the other issues.
Current status:
Passes all run-tests.
Phone boots interpret-only.
2.5x faster than Clang-compiled Art goto interpreter on fetch/decode/execute
microbenchmark, 5x faster than gcc-compiled goto interpreter.
1.6x faster than Clang goto on Caffeinemark overall
2.0x faster than Clang switch on Caffeinemark overall
68% of Dalvik interpreter performance on Caffeinemark (still much slower,
primarily because of poor invoke performance and lack of execute-inline)
Still nearly an order of magnitude slower than Dalvik on invokes
(but slightly better than Art Clang goto interpreter.
Importantly, saves ~200 bytes of stack memory per invoke (but still
wastes ~400 relative to Dalvik).
What's needed:
Remove the (large quantity of) bring-up hackery in place.
Integrate into the build mechanism. I'm still using the old Dalvik manual
build step to generate assembly code from the stub files.
Remove the suspend check hack. For bring-up purposes, I'm using an explicit
suspend check (like the other Art interpreters). However, we should be
doing a Dalvik style suspend check via the table base switch mechanism.
This should be done during the alternative interpreter activation.
General cleanup.
Add CFI info.
Update the new target bring-up README documentation.
Add other targets.
In later CLs:
Consolidate mterp handlers for expensive operations (such as new-instance) with
the code used by the switch interpreter. No need to duplicate the code for
heavyweight operations (but will need some refactoring to align).
Tuning - some fast paths needs to be moved down to the assembly handlers,
rather than being dealt with in the out-of-line code.
JIT profiling. Currently, the fast interpreter is used only in the fast
case - no instrumentation, no transactions and no access checks. We
will want to implement fast + JIT-profiling as the alternate fast
interpreter. All other cases can still fall back to the reference
interpreter.
Improve invoke performance. We're nearly an order of magnitude slower than
Dalvik here. Some of that is unavoidable, but I suspect we can do
better.
Add support for our other targets.
Change-Id: I43e25dc3d786fb87245705ac74a87274ad34fedc
Roland Levillain [Mon, 11 Jan 2016 16:54:52 +0000 (16:54 +0000)]
Merge "Isolate concurrent collector related libcore failures."
David Srbecky [Mon, 11 Jan 2016 16:46:17 +0000 (16:46 +0000)]
Merge "Remove ElfFile::GdbJITSupport"
Andreas Gampe [Mon, 11 Jan 2016 16:34:49 +0000 (16:34 +0000)]
Merge "ART: Use libopenjdkd"
Roland Levillain [Mon, 11 Jan 2016 15:51:00 +0000 (15:51 +0000)]
Isolate concurrent collector related libcore failures.
Expect CC-related failures on the CC configuration only.
Bug:
25883050
Change-Id: I326f727fef3eb8048a08d195ddcee85e1319810b
David Srbecky [Mon, 11 Jan 2016 15:25:22 +0000 (15:25 +0000)]
Remove ElfFile::GdbJITSupport
This method notified gdb about loaded ELF file.
Since we use dlopen to load the ELF file now, it should not be needed.
Note that the method had nothing to do with JIT compiler.
Change-Id: I967495c39e42112023a495ce5fac25b97669d1d5
David Srbecky [Mon, 11 Jan 2016 14:47:37 +0000 (14:47 +0000)]
Merge "Generate Nops to ensure that debug stack maps have distinct PC."
Nicolas Geoffray [Mon, 11 Jan 2016 14:25:03 +0000 (14:25 +0000)]
Merge "Fix brainos in makefiles."
Nicolas Geoffray [Mon, 11 Jan 2016 14:23:36 +0000 (14:23 +0000)]
Fix brainos in makefiles.
Change-Id: If6f9aae6fc18bf5a28e7804303dcdb319dea0cb2
Nicolas Geoffray [Mon, 11 Jan 2016 14:20:52 +0000 (14:20 +0000)]
Merge "Don't use std::abs on INT_MIN/LONG_MIN, it's undefined."
Nicolas Geoffray [Mon, 11 Jan 2016 14:20:11 +0000 (14:20 +0000)]
Merge "Fix "check" file, and mark test as failing on device."
Nicolas Geoffray [Mon, 11 Jan 2016 14:18:52 +0000 (14:18 +0000)]
Fix "check" file, and mark test as failing on device.
Change-Id: Ie1f9a2e86f94ccc3c9859ac172ee4b3da0f85d63
David Srbecky [Fri, 8 Jan 2016 18:13:53 +0000 (18:13 +0000)]
Generate Nops to ensure that debug stack maps have distinct PC.
Change-Id: I5740ec958a20d236634b66df0e675382ed5c16fc
Nicolas Geoffray [Mon, 11 Jan 2016 12:01:16 +0000 (12:01 +0000)]
Merge "Emit an error message when looking for String#offset."
Nicolas Geoffray [Mon, 11 Jan 2016 11:56:22 +0000 (11:56 +0000)]
Merge "Disable flaky test on host."
Nicolas Geoffray [Mon, 11 Jan 2016 11:45:27 +0000 (11:45 +0000)]
Disable flaky test on host.
bug:
26483935
Change-Id: I6e1f7b2d33182969d08d75d217ff0891920dc35b
David Brazdil [Mon, 11 Jan 2016 11:37:52 +0000 (11:37 +0000)]
Merge "ART: Do not build Checker tests with `dx --no-optimize`"
Nicolas Geoffray [Mon, 4 Jan 2016 08:39:49 +0000 (08:39 +0000)]
Don't use std::abs on INT_MIN/LONG_MIN, it's undefined.
bug:
25494265
Change-Id: I560a3a589b92440020285f9adfdf7c9efb06217c
Shubham Ajmera [Mon, 11 Jan 2016 10:29:59 +0000 (10:29 +0000)]
Merge "Revert "Disable test while investigating.""
David Brazdil [Mon, 11 Jan 2016 10:27:13 +0000 (10:27 +0000)]
ART: Do not build Checker tests with `dx --no-optimize`
Change-Id: Ice9298b92cde5486db40ccdef43cca6d36179d2c
Shubham Ajmera [Sun, 10 Jan 2016 00:00:25 +0000 (00:00 +0000)]
Revert "Disable test while investigating."
Change #195560 fixes the test.
This reverts commit
1c58d6980541eb469f4860f00a77ba8c729efef9.
Change-Id: Idbfb0c5d2fbc1796f7dd1056181b5fc912a065a3
Hiroshi Yamauchi [Sat, 9 Jan 2016 01:28:37 +0000 (01:28 +0000)]
Merge "Suppress jsr166.LinkedTransferQueueTest#testWaitingConsumer."
Hiroshi Yamauchi [Sat, 9 Jan 2016 01:22:23 +0000 (17:22 -0800)]
Suppress jsr166.LinkedTransferQueueTest#testWaitingConsumer.
To make the buildbot read barrier config greener for now.
Bug:
25883050
Change-Id: I5ce837e7783dd2c32825993d8dd754741839261d
Mathieu Chartier [Sat, 9 Jan 2016 00:29:20 +0000 (00:29 +0000)]
Merge "Revert "Revert "Reduce sleep duration in SuspendAllDaemonThreads"""
Mathieu Chartier [Thu, 7 Jan 2016 17:31:33 +0000 (09:31 -0800)]
Revert "Revert "Reduce sleep duration in SuspendAllDaemonThreads""
Fixed the error where I reduced the time until the warning by 10x.
Bug:
26351700
This reverts commit
bc34a7ed232cb3d384c250578e2b4ede45f2b167.
Change-Id: I6b30a0711fe077421665b78c39ded88899407700
Mathieu Chartier [Sat, 9 Jan 2016 00:23:00 +0000 (00:23 +0000)]
Merge "Improve handling of daemon threads after runtime shutdown"
Mathieu Chartier [Thu, 7 Jan 2016 23:14:19 +0000 (15:14 -0800)]
Improve handling of daemon threads after runtime shutdown
The main issue comes from the fact that user daemon threads are
allowed to continue running after the runtime has shutdown. They may
still have a JNI env pointer. To prevent crashing if they call into
the env, we replace the function pointers with functions that sleep
forever.
The other issue is that user daemon threads that are blocked in an
ART condition variable may get woken up by another user daemon inside
of Monitor::Notify or by a spurious wakeup (i.e. SIGQUIT). To deal
with this issue, we check the JNI env for shutdown runtime when we
are woken up from a condition variable wait. This check fixes test
132 with --host --gdb --interpreter. Previously this test crashed
since dlclose was somehow causing a spurious futex wakeup.
TODO: Investigate adding a unit test.
Bug:
18577101
Change-Id: I479b38968ee9fbc4ee4b252ee2528787279972cc
Jeff Hao [Fri, 8 Jan 2016 22:45:29 +0000 (22:45 +0000)]
Merge "Fix general multi-image TODOs."
Jeff Hao [Fri, 8 Jan 2016 18:44:20 +0000 (10:44 -0800)]
Fix general multi-image TODOs.
- Removed some unnecessary comments.
Bug:
26317072
(cherry-picked from commit
509f2ab308032534f14d8f4f374f60da8a615fa2)
Change-Id: Id542262ca1182fb77f029f2136266e470bde9473
Mathieu Chartier [Fri, 8 Jan 2016 18:07:23 +0000 (18:07 +0000)]
Merge "Fix image writer for generation of app images"
Mathieu Chartier [Fri, 8 Jan 2016 02:36:19 +0000 (18:36 -0800)]
Fix image writer for generation of app images
Fixed IsInBootImage and IsInBootOatFile. Also re-enabled generation
of app images for tests.
Bug:
26317072
Bug:
22858531
Change-Id: I19cbe7a8143b5ff7582eb27dfd9d2d8121c67b3c
Andreas Gampe [Thu, 7 Jan 2016 01:59:49 +0000 (17:59 -0800)]
ART: Use libopenjdkd
Load libopenjdkd in debug mode. Add dependencies for libopenjdkd
in the Makefiles.
Bug:
26421792
Change-Id: Ie64cd56f73901b9c7645e46384d753752bbd5351
Nicolas Geoffray [Fri, 8 Jan 2016 17:10:13 +0000 (17:10 +0000)]
Merge "Disable test while investigating."
Nicolas Geoffray [Fri, 8 Jan 2016 17:09:22 +0000 (17:09 +0000)]
Disable test while investigating.
Change-Id: Ide7fd1251e10fe93525fe3fccd9240318585f9e6
Roland Levillain [Fri, 8 Jan 2016 16:50:53 +0000 (16:50 +0000)]
Merge "Add a missing implicit null check in the ARM codegen."
Roland Levillain [Fri, 8 Jan 2016 16:09:13 +0000 (16:09 +0000)]
Merge "Small implicit null checks refactoring in the ARM codegen."
Roland Levillain [Fri, 8 Jan 2016 16:04:55 +0000 (16:04 +0000)]
Small implicit null checks refactoring in the ARM codegen.
Change-Id: I7dccb02cf7ac2f7d8fd1676b03e0b394701fbe3f
Roland Levillain [Fri, 8 Jan 2016 15:56:19 +0000 (15:56 +0000)]
Add a missing implicit null check in the ARM codegen.
The code generated for object ArraySet on ARM used to
miss an implicit null check for the array when the assigned
value is `null`. This has not been an actual issue so far,
as ArraySet instructions have never been using implicit null
checks.
Note: This CL comes without a regression test, as the code
path in question is not used (yet).
Change-Id: If3bc85e32802595e635513dfb83ccfcfd8f00d3d
Roland Levillain [Fri, 8 Jan 2016 15:05:16 +0000 (15:05 +0000)]
Merge "ARM Baker's read barrier fast path implementation."
Roland Levillain [Fri, 18 Dec 2015 10:38:42 +0000 (10:38 +0000)]
ARM Baker's read barrier fast path implementation.
Introduce an ARM fast path implementation in Optimizing for
Baker's read barriers (for both heap reference loads and GC
root loads). The marking phase of the read barrier is
performed by a slow path, invoking the runtime entry point
artReadBarrierMark.
Other read barrier algorithms continue to use the original
slow path based implementation, which has been renamed as
GenerateReadBarrierSlow/GenerateReadBarrierForRootSlow.
Bug:
12687968
Change-Id: Ie7ee85b1b4c0564148270cebdd3cbd4c3da51b3a
Nicolas Geoffray [Fri, 8 Jan 2016 10:21:59 +0000 (10:21 +0000)]
Merge "Add libstdc++ as a target for buildbot builds."
Mathieu Chartier [Fri, 8 Jan 2016 02:34:03 +0000 (02:34 +0000)]
Merge "Re-enable class table for image writer"
Mathieu Chartier [Fri, 8 Jan 2016 00:29:01 +0000 (16:29 -0800)]
Re-enable class table for image writer
Changes, create one temporary class table per ImageInfo. Don't keep
track of class loaders.
Bug:
26317072
Change-Id: I4f9121194f39031fb8629d60b6feeb2747a77870
Nicolas Geoffray [Thu, 7 Jan 2016 18:13:33 +0000 (18:13 +0000)]
Add libstdc++ as a target for buildbot builds.
It's a hidden dependency of libjavacore.
Change-Id: I7eca051502897c37293e22fbdda8a5924694ee76
Calin Juravle [Thu, 7 Jan 2016 16:32:01 +0000 (16:32 +0000)]
Merge "Perform profile file analysis in dex2oat"
Calin Juravle [Mon, 21 Dec 2015 13:39:33 +0000 (15:39 +0200)]
Perform profile file analysis in dex2oat
Dex2oat can accept now multiple profile files to drive a profile based
compilation. --profile-file and --reference-profile-file speficy a pair
of profile files which will be evaluated for significant differences
before starting the compilation. If the difference is insignificant
(according to some internal metric) the compilation is skipped and a
message is logged.
Multiple pairs of --profile-file and --reference-profile-file can be
specified. This effectively enables multi user support since profiles
for different users will be kept separately.
--reference-profile-file can be left out, case in which the decision is
solely based on --profile-file. If both flags are present, then their
repetition should form unique pairs.
If the compilation is performed and --reference-profile-file is given
then its data is merged with the data from the corresponding --profile-
file and saved back to the file.
If no profile flags are given, dex2oat proceeds as before and compiles
the dex files unconditionally.
As part of this change
- merge ProfileCompilationInfo and OfflineProfilingInfo under the same
object. There was no use to keep them separate anymore.
- SaveProfilingInfo now merges the data with what was in
the file before instead of overwriting it.
Bug:
26080105
Change-Id: Ia8c8b55587d468bca5179f78941854285426234d
Yohann Roussel [Thu, 7 Jan 2016 15:44:26 +0000 (15:44 +0000)]
Merge "Force Jack to consider multidex annotations"
Yohann Roussel [Thu, 7 Jan 2016 15:15:41 +0000 (16:15 +0100)]
Force Jack to consider multidex annotations
This is a workaround and should not be necessary.
Bug:
26441710
Change-Id: Ife879e46deb872ed48cff9abbe1088e2f1c86bee
Nicolas Geoffray [Thu, 7 Jan 2016 14:54:18 +0000 (14:54 +0000)]
Merge "The ArtMethod is a long on 64bits."
Nicolas Geoffray [Thu, 7 Jan 2016 14:53:08 +0000 (14:53 +0000)]
The ArtMethod is a long on 64bits.
Change-Id: I8719d7061def3968d8f933e7649ec7bbdabbcf67