OSDN Git Service
Hiroshi Yamauchi [Fri, 11 Mar 2016 21:18:21 +0000 (21:18 +0000)]
Merge "Assembly region TLAB allocation fast path for arm."
Hiroshi Yamauchi [Wed, 24 Feb 2016 20:51:18 +0000 (12:51 -0800)]
Assembly region TLAB allocation fast path for arm.
This is for the CC collector.
Share the common fast path code with the tlab fast path code.
Speedup (on N5):
BinaryTrees: 2291 -> 902 ms (-60%)
MemAllocTest: 2137 -> 1845 ms (-14%)
Bug:
9986565
Bug:
12687968
Change-Id: Ica63094ec2f85eaa4fd04d202a20090399275d85
Christopher Ferris [Fri, 11 Mar 2016 20:14:18 +0000 (20:14 +0000)]
Merge "ART: Allow unwinding unattached threads"
Vladimir Marko [Fri, 11 Mar 2016 19:48:08 +0000 (19:48 +0000)]
Merge "Integrate BitwiseNegated into shared framework."
Roland Levillain [Fri, 11 Mar 2016 19:28:44 +0000 (19:28 +0000)]
Merge "Typo in comment in art::mirror::Object::IdentityHashCode."
David Srbecky [Fri, 11 Mar 2016 19:25:45 +0000 (19:25 +0000)]
Merge "Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()"
David Srbecky [Fri, 11 Mar 2016 18:48:55 +0000 (18:48 +0000)]
Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()
We should check whether the frame is divisible by kStackAlignment.
Change-Id: I5936a6e90b38c09775b4c3a8212641e639c4181c
Aart Bik [Fri, 11 Mar 2016 18:43:28 +0000 (18:43 +0000)]
Merge "Tests for round() method."
Hiroshi Yamauchi [Fri, 11 Mar 2016 18:24:22 +0000 (18:24 +0000)]
Merge "Suppress a valgrind libc issue."
Hiroshi Yamauchi [Thu, 10 Mar 2016 21:49:14 +0000 (13:49 -0800)]
Suppress a valgrind libc issue.
To prevent our valgrind tests from failing.
Bug:
27596582
Bug:
27156726
Change-Id: Ic55256bd09fdffcf2a0c8fa4fa7951bc648b86a8
David Srbecky [Fri, 11 Mar 2016 18:19:11 +0000 (18:19 +0000)]
Merge "Revert "Revert "Allow duplicated methods in different DWARF line tables."""
David Srbecky [Fri, 11 Mar 2016 14:35:45 +0000 (14:35 +0000)]
Revert "Revert "Allow duplicated methods in different DWARF line tables.""
This reverts commit
8862fac4a0b97d827d2808146d2d79b8d799b998.
Change-Id: I4d5629df4580b7ac08a5cb04924c56eecad3ad25
David Srbecky [Fri, 11 Mar 2016 18:16:35 +0000 (18:16 +0000)]
Merge "DWARF: Compensate for compiler's off-by-one instruction."
David Srbecky [Fri, 11 Mar 2016 17:41:52 +0000 (17:41 +0000)]
Merge "Symbolize native debug information for AOTed methods in boot.oat."
David Srbecky [Mon, 7 Mar 2016 20:47:29 +0000 (20:47 +0000)]
Symbolize native debug information for AOTed methods in boot.oat.
The oatdump symbolizer will produce all DWARF information now,
not just the symtab. This allows us to recover almost all native
debug information after the fact, even for non-debuggable oat files.
The main drawback is that non-debuggable oat files do not have
enough stackmaps to provide reasonable line stepping experience.
We might also be missing inlined methods from backtraces.
Change-Id: I73ff6f43a3a0e5a0907af353f74f04e9b0129590
David Srbecky [Fri, 11 Mar 2016 17:35:48 +0000 (17:35 +0000)]
Merge "Add trampoline symbols to native debug info."
David Srbecky [Fri, 11 Mar 2016 17:11:44 +0000 (17:11 +0000)]
Add trampoline symbols to native debug info.
The debugger needs them to unwind through the trampolines and to
understand what is happening in the call stack.
Change-Id: Ia554058c3796788adcd7336d620a7734eb366905
David Srbecky [Fri, 11 Mar 2016 17:33:22 +0000 (17:33 +0000)]
Merge "Minor optimizations of debug::WriteCFISection."
David Srbecky [Fri, 11 Mar 2016 16:54:22 +0000 (16:54 +0000)]
Minor optimizations of debug::WriteCFISection.
The method might be passed method infos without CFI in some cases.
Use the sorting phase as a chance to filter them out.
This makes sure we do not allocate memory and sort methods if there
is in fact no work to do.
Also change the sort to stable - for the sake of determinism.
Change-Id: I97d57d77e8b709d0d49d6971f66b955efcbb57b0
Roland Levillain [Fri, 11 Mar 2016 16:27:27 +0000 (16:27 +0000)]
Typo in comment in art::mirror::Object::IdentityHashCode.
Change-Id: I5380d1c34deda32c668e48ed5f80e96b29f5b0b5
Roland Levillain [Fri, 11 Mar 2016 16:47:02 +0000 (16:47 +0000)]
Merge "MIPS: Don't use $t8 for calling entrypoints"
Nicolas Geoffray [Fri, 11 Mar 2016 16:37:23 +0000 (16:37 +0000)]
Merge "Revert "Revert "Revert "Revert "Change condition to opposite if lhs is constant"""""
David Srbecky [Fri, 11 Mar 2016 14:25:00 +0000 (14:25 +0000)]
DWARF: Compensate for compiler's off-by-one instruction.
The compiler generates stackmaps with PC value which is *after*
the instruction rather PC of the instruction itself. This causes
trouble when generating native line number mapping since the
branch instruction itself will not be mapped, and consequently
we get incorrect line number in backtraces. Add code to compensate
for this. See the in-code comment for more details.
Change-Id: I72c992e6d08a767f314290d562421b251ae60732
Goran Jakovljevic [Fri, 11 Mar 2016 14:22:18 +0000 (15:22 +0100)]
MIPS: Don't use $t8 for calling entrypoints
When jumping to entrypoints, $t9 register must be used. Value of $gp
is calculated based on value from $t9 and it should contain the
address of the first instruction of the entrypoint.
This CL enables MIPS32 and MIPS64 to boot.
Change-Id: Idf0f7f479cceafabb88b1b087da190dbda86e1c3
Nicolas Geoffray [Fri, 11 Mar 2016 16:15:32 +0000 (16:15 +0000)]
Merge "Fix invariant in reference type propagation."
David Srbecky [Fri, 11 Mar 2016 14:35:33 +0000 (14:35 +0000)]
Merge "Revert "Allow duplicated methods in different DWARF line tables.""
David Srbecky [Fri, 11 Mar 2016 14:34:47 +0000 (14:34 +0000)]
Revert "Allow duplicated methods in different DWARF line tables."
This reverts commit
3c5462364daee17e651299f1c370f965f34baed8.
Change-Id: Icc63c47cd53abeff2a470ae84715012a1ef988ac
David Srbecky [Fri, 11 Mar 2016 14:28:00 +0000 (14:28 +0000)]
Merge "Allow duplicated methods in different DWARF line tables."
David Srbecky [Fri, 11 Mar 2016 14:25:56 +0000 (14:25 +0000)]
Merge "Allow generation of native debug info for multiple methods."
David Srbecky [Fri, 11 Mar 2016 14:25:40 +0000 (14:25 +0000)]
Merge "Refactor MethodDebugInfo (input of DWARF writer)."
David Srbecky [Fri, 11 Mar 2016 11:49:20 +0000 (11:49 +0000)]
Allow duplicated methods in different DWARF line tables.
This makes the compilation units more self-contained.
If method is mentioned in the compilation unit, we can
also find its line table there. Otherwise, we would have
to search through all of them.
Change-Id: I0cdfb9006e796e41e123fc1f4fecd15312570068
Nicolas Geoffray [Fri, 11 Mar 2016 13:35:51 +0000 (13:35 +0000)]
Fix invariant in reference type propagation.
Also some cleanups.
Change-Id: I7f0ec7d06b4bab10dbfa230c757447d311658f93
Artem Serov [Tue, 9 Feb 2016 17:15:29 +0000 (17:15 +0000)]
Integrate BitwiseNegated into shared framework.
Share implementation between arm and arm64.
Change-Id: I0dd12e772cb23b4c181fd0b1e2a447470b1d8702
Anton Shamin [Mon, 15 Feb 2016 06:48:36 +0000 (12:48 +0600)]
Revert "Revert "Revert "Revert "Change condition to opposite if lhs is constant""""
This reverts commit
d4aee949b3dd976295201b5310f13aa2df40afa1.
Change-Id: I505b8c9863c310a3a708f580b00d425b750c9541
Nicolas Geoffray [Fri, 11 Mar 2016 11:33:13 +0000 (11:33 +0000)]
Merge "Fix thread race when fetching the ProfilingInfo object."
Nicolas Geoffray [Fri, 11 Mar 2016 09:57:57 +0000 (09:57 +0000)]
Fix thread race when fetching the ProfilingInfo object.
Problem is:
1) Compiler fetches the ProfilingInfo of A, it's null.
2) Mutator creates the ProfilingInfo.
3) Compiler notifies it's not using A anymore, calls
ProfilingInfo::DecrementInlineUse -> Crash as we expected
ProfilingInfo::IncrementUse to be called before.
Also update some namings to better reflect what is going on.
Change-Id: I55ea4c5d81988131467095e18a0d13a8be9d0ef7
Andreas Gampe [Tue, 1 Mar 2016 22:38:37 +0000 (14:38 -0800)]
ART: Allow unwinding unattached threads
Partial revert of commit
ed8b723c5f3989d2593ec21c65c96d6d8bf25579.
Make it (constexpr) configurable whether we allow unwinding native
stacks of unattached threads.
Bug:
27449879
Change-Id: I307a80c9a0166f33fa8a41e492d7eb0d77d0e44f
Christopher Ferris [Thu, 10 Mar 2016 22:12:34 +0000 (22:12 +0000)]
Merge "Log when why an Unwind failed."
Mathieu Chartier [Thu, 10 Mar 2016 20:07:55 +0000 (20:07 +0000)]
Merge "Allocate interrupted exception before re-acquiring lock"
Andreas Gampe [Thu, 10 Mar 2016 20:06:27 +0000 (20:06 +0000)]
Merge "ART: Release all resource on MonitorPool destruction"
Andreas Gampe [Thu, 10 Mar 2016 16:33:45 +0000 (08:33 -0800)]
ART: Release all resource on MonitorPool destruction
To be valgrind-clean, we need to release the current metadata and
all chunks on destruction.
Bug:
27156726
Change-Id: Ia51cea139a6e9669975b6ac045f5223cd68f1f6a
Mathieu Chartier [Thu, 10 Mar 2016 18:49:35 +0000 (10:49 -0800)]
Allocate interrupted exception before re-acquiring lock
Allocating the monitor exception after acquiring the lock can cause
a deadlock in the following scenario:
Reference queue daemon interrupted from wait() on
ReferenceQueue.class. Tries to allocate exception and starts a GC
that blocks on WaitForGcToComplete.
Some other thread is already doing a GC, and tries to enqueue the
cleared refereneces. This deadlocks trying to lock Reference.class
in ReferenceQueue.add.
Bug:
27508829
Change-Id: Icbc18b6b8d1e906c3f7413810d6cefdda06eb921
Christopher Ferris [Thu, 10 Mar 2016 00:03:00 +0000 (16:03 -0800)]
Log when why an Unwind failed.
Bug:
27449879
Change-Id: If7ae5f0991da6fd64dd45e22d69eecef1388a28e
Aart Bik [Thu, 10 Mar 2016 18:59:10 +0000 (10:59 -0800)]
Tests for round() method.
Rationale:
While working on some ideas on implementing round(),
I wrote these tests. We might as well use them to
ensure any future work does not break (test also
provides an easy place to add future "difficult" values).
bug=
26327751
Change-Id: I911a3e1e5fe45147bc1b7214225c9aec4e979965
Vladimir Marko [Thu, 10 Mar 2016 18:48:37 +0000 (18:48 +0000)]
Merge "ART: Do not use vixld - workaround to fix dex2oatds."
Aart Bik [Thu, 10 Mar 2016 18:39:18 +0000 (18:39 +0000)]
Merge "Avoid generating dead code on frame enter/exit. This includes stack operations and, on x86, call/pop to read PC."
Vladimir Marko [Thu, 10 Mar 2016 17:25:50 +0000 (17:25 +0000)]
ART: Do not use vixld - workaround to fix dex2oatds.
This is a quick workaround for ODR violations caused
by linking libvixl.a compiled without VIXL_DEBUG with
the libartd-compiler.a compiled with VIXL_DEBUG.
Bug:
27588884
Change-Id: Ib1af165f177f125f03cdd99777dff4c2912f6405
Aart Bik [Thu, 3 Mar 2016 00:06:13 +0000 (16:06 -0800)]
Avoid generating dead code on frame enter/exit.
This includes stack operations and, on x86, call/pop to read PC.
bug=
26997690
Rationale:
(1) If method is fully intrinsified, and makes no calls in slow
path or uses special input, no need to require current method.
(2) Invoke instructions with HasPcRelativeDexCache() generate code
that reads the PC (call/pop) on x86. However, if the invoke is
an intrinsic that is later replaced with actual code, this PC
reading code may be dead.
Example X86 (before/after):
0x0000108c: 83EC0C sub esp, 12
0x0000108f: 890424 mov [esp], eax <-- not needed
0x00001092:
E800000000 call +0 (0x00001097)
0x00001097: 58 pop eax <-- dead code to read PC
0x00001098:
F30FB8C1 popcnt eax, ecx
0x0000109c:
F30FB8DA popcnt ebx, edx
0x000010a0: 03D8 add ebx, eax
0x000010a2: 89D8 mov eax, ebx
0x000010a4: 83C40C add esp, 12 <-- not needed
0x000010a7: C3 ret
0x0000103c:
F30FB8C1 popcnt eax, ecx
0x00001040:
F30FB8DA popcnt ebx, edx
0x00001044: 03D8 add ebx, eax
0x00001046: 89D8 mov eax, ebx
0x00001048: C3 ret
Example ARM64 (before/after):
0x0000103c:
f81e0fe0 str x0, [sp, #-32]!
0x00001040:
f9000ffe str lr, [sp, #24]
0x00001044:
dac01020 clz x0, x1
0x00001048:
f9400ffe ldr lr, [sp, #24]
0x0000104c:
910083ff add sp, sp, #0x20 (32)
0x00001050:
d65f03c0 ret
0x0000103c:
dac01020 clz x0, x1
0x00001040:
d65f03c0 ret
Change-Id: I8377db80c9a901a08fff4624927cf4a6e585da0c
Vladimir Marko [Thu, 10 Mar 2016 17:11:44 +0000 (17:11 +0000)]
Merge "Add Mips abiflags section to the oatfile."
Roland Levillain [Thu, 10 Mar 2016 17:09:37 +0000 (17:09 +0000)]
Merge "MIPS32: java.lang.Thread, and java.lang.String intrinsics:"
Roland Levillain [Thu, 10 Mar 2016 15:28:34 +0000 (15:28 +0000)]
Merge "Disable some image_test cases with concurrent collector."
Nicolas Geoffray [Thu, 10 Mar 2016 15:25:02 +0000 (15:25 +0000)]
Merge "Tweak JIT hotness threshold."
Roland Levillain [Thu, 10 Mar 2016 15:16:31 +0000 (15:16 +0000)]
Disable some image_test cases with concurrent collector.
The following image_test cases sometimes fail on ART Builbot's
x86 concurrent collector configuration:
- ImageTest.WriteReadUncompressed
- ImageTest.WriteReadLZ4
- ImageTest.WriteReadLZ4HC
Disable them to make the build turn green again, while we
investigate the failures.
Bug:
27578460
Change-Id: I46126e4690e6300e3bfa771c1b6a560272ecb1da
Nicolas Geoffray [Tue, 8 Mar 2016 16:50:21 +0000 (16:50 +0000)]
Tweak JIT hotness threshold.
bug:
23128949
bug:
27398183
Change-Id: Iffde6ba064e54546827cb8fc2a670baedf2e2409
Nicolas Geoffray [Thu, 10 Mar 2016 14:23:35 +0000 (14:23 +0000)]
Merge "MIPS32: Fix test 082-inline-execute"
Roland Levillain [Thu, 10 Mar 2016 14:21:40 +0000 (14:21 +0000)]
Merge "Fix and enable java.lang.StringFactory intrinsics."
Goran Jakovljevic [Tue, 8 Mar 2016 14:26:51 +0000 (15:26 +0100)]
MIPS32: Fix test 082-inline-execute
This is fixing the test when run with --debuggable flag.
Change-Id: Ifd11c28a77f1c6f6fe5951c5c27309187b29d3ee
Nicolas Geoffray [Thu, 10 Mar 2016 10:47:57 +0000 (10:47 +0000)]
Merge "Clear inline caches at each full GC."
David Srbecky [Wed, 9 Mar 2016 11:44:44 +0000 (11:44 +0000)]
Allow generation of native debug info for multiple methods.
Slight tweak in the API which I will need in the near future.
Change-Id: I45954ae16710bc941a9a06a3a17c70798315ca53
David Srbecky [Mon, 7 Mar 2016 17:33:57 +0000 (17:33 +0000)]
Refactor MethodDebugInfo (input of DWARF writer).
Do not pass CompiledMethod pointer through since it is only available
during AOT compile but not during JIT compile or at runtime. Creating
mock CompiledMethod just pass data is proving increasingly tricky, so
copy the fields that we need to MethodDebugInfo instead.
Change-Id: I820297b41e769fcac488c0ff2d2ea0492bb13ed8
Andreas Gampe [Thu, 10 Mar 2016 01:44:24 +0000 (01:44 +0000)]
Merge "ART: Fix assumption in class profile collection"
Mathieu Chartier [Thu, 10 Mar 2016 00:51:40 +0000 (00:51 +0000)]
Merge "Use PwriteFully and write image header last"
Mathieu Chartier [Wed, 9 Mar 2016 19:14:50 +0000 (11:14 -0800)]
Use PwriteFully and write image header last
Prevent corrupted images if dex2oat gets killed or if the image
writer is interrupted during writing.
Bug:
22858531
Bug:
27561308
(cherry picked from commit
dba5a70977da0a28cec2bfc8261d52a177738477)
Change-Id: If4f2c43bcc3cf918b5d2780f1709225b5a4ce116
Mathieu Chartier [Thu, 10 Mar 2016 00:34:23 +0000 (00:34 +0000)]
Merge "Use per character suffix for multi image"
Andreas Gampe [Wed, 9 Mar 2016 23:52:21 +0000 (15:52 -0800)]
ART: Fix assumption in class profile collection
The dex cache may contain erroneous classes. Filter, instead of
DCHECK.
Bug:
27500691
(cherry picked from commit
4309f6129795ade42591b872e44a33cec95f4e79)
Change-Id: Ic99bca3a7e54a5e7893c801ec5ac92cbf690cd67
Mathieu Chartier [Wed, 9 Mar 2016 00:50:20 +0000 (16:50 -0800)]
Use per character suffix for multi image
E.g. if you pull the oat files from the device, you get oat files
with the following names:
system@framework@boot.art
But the name stored in the image header is:
boot.art
So we need to append system@framework@ as a file name prefix to each
image file to get the actual one.
Required for adding oatdump support for app images.
Bug:
22858531
Bug:
27408512
(cherry picked from commit
05752398db7f25d7892b62cb39615eee468f1db8)
Change-Id: Ia6fb34b137c5e285818d39c3b9794cd4ce6c3219
Andreas Gampe [Wed, 9 Mar 2016 17:30:50 +0000 (17:30 +0000)]
Merge "ART: Enable native stack dumping on timeout"
Andreas Gampe [Wed, 9 Mar 2016 17:30:18 +0000 (17:30 +0000)]
Merge "ART: Use optimizing compiler in image_test"
Nicolas Geoffray [Mon, 7 Mar 2016 14:29:04 +0000 (14:29 +0000)]
Clear inline caches at each full GC.
This fixes occasional failures of 141-class-unload.
Also fix a bug where clearing inline caches also cleared the dex
pc associated with it.
bug:
26846185
bug:
23128949
Change-Id: I77bf1dee229d7764c3cc21440829c7fba7b37001
Andreas Gampe [Fri, 19 Feb 2016 00:53:41 +0000 (16:53 -0800)]
ART: Use optimizing compiler in image_test
Expose some compiler options so we can run the image test with
the optimizing compiler without running into a stack overflow.
Also allow a variable amount of threads in CreateCompilerDriver.
Use 16 as a middle ground on the host to speed up the otherwise
now slowed-down test.
Bug:
27240085
Bug:
27552475
Change-Id: I8db5055d32ae722c8f430903244faa9166cc4886
Aart Bik [Wed, 9 Mar 2016 17:13:34 +0000 (17:13 +0000)]
Merge "Implement the 1.8 unsafe memory fences directly in HIR."
Andreas Gampe [Wed, 9 Mar 2016 16:23:41 +0000 (16:23 +0000)]
Merge "ART: Fix missing include"
Vladimir Marko [Wed, 9 Mar 2016 16:16:49 +0000 (16:16 +0000)]
Merge "ART: Write bit fields together in ComputeSpecialAccessorInfo()."
Roland Levillain [Wed, 9 Mar 2016 16:14:00 +0000 (16:14 +0000)]
Fix and enable java.lang.StringFactory intrinsics.
The following intrinsics were not considered by the
intrinsics recognizer:
- StringNewStringFromBytes
- StringNewStringFromChars
- StringNewStringFromString
This CL enables them and add tests for them.
This CL also:
- Fixes the locations of the ARM64 & MIPS64
StringNewStringFromString intrinsics.
- Fixes the definitions of the FOUR_ARG_DOWNCALL macros on
ARM and x86, which are used to implement the
art_quick_alloc_string_from_bytes* runtime entry points.
- Fixes PC info (stack maps) recording in the
StringNewStringFromBytes, StringNewStringFromChars and
StringNewStringFromString ARM, ARM64 & MIPS64 intrinsics.
Bug:
27425743
Change-Id: I38c00d3f0b2e6b64f7d3fe9146743493bef9e45c
Nicolas Geoffray [Wed, 9 Mar 2016 15:46:58 +0000 (15:46 +0000)]
Merge "Stop oat loading spam on host."
Nicolas Geoffray [Wed, 9 Mar 2016 15:36:23 +0000 (15:36 +0000)]
Stop oat loading spam on host.
Change-Id: I336669f49bfbfc76bb5e9d3b4f1738709e070b27
David Srbecky [Wed, 9 Mar 2016 15:05:50 +0000 (15:05 +0000)]
Merge "Mark DWARF lines in non-debuggable methods as "not a statement"."
Vladimir Marko [Wed, 9 Mar 2016 13:45:39 +0000 (13:45 +0000)]
ART: Write bit fields together in ComputeSpecialAccessorInfo().
Avoid function calls between storing individual bit fields
to allow the compiler (gcc/clang) to merge those writes
together. Valgrind then marks the memory as "defined" while
individual bit field writes would leave it "undefined" and
later trigger the valgrind error:
Conditional jump or move depends on uninitialised value(s)
on DCHECK()s using the bit fields.
Bug:
27552451
Change-Id: If6de5cbe231f99da0f974a0fc9a36c14e3dc071e
Calin Juravle [Wed, 9 Mar 2016 11:57:54 +0000 (11:57 +0000)]
Merge "Handle unexpected cases in profile saver"
Calin Juravle [Wed, 9 Mar 2016 11:57:36 +0000 (11:57 +0000)]
Merge "Update GetDexOptNeeded to handle different levels of compilation"
Calin Juravle [Wed, 9 Mar 2016 11:57:23 +0000 (11:57 +0000)]
Merge "Record foreign dex files loaded by the app in the profile"
Roland Levillain [Wed, 9 Mar 2016 11:24:33 +0000 (11:24 +0000)]
Merge "Ignore 145-alloc-tracking-stress failures with JIT and CC."
Roland Levillain [Wed, 9 Mar 2016 11:18:02 +0000 (11:18 +0000)]
Ignore 145-alloc-tracking-stress failures with JIT and CC.
This run-test fails also with JIT compiling on the
concurrent collector configuration; disable it for now.
Bug:
27467554
Change-Id: I551008ff5b70c83706287039092f5c9e26584227
Andreas Gampe [Wed, 9 Mar 2016 04:29:49 +0000 (20:29 -0800)]
ART: Enable native stack dumping on timeout
To better investigate timeout in tests, allow dumping of native
stacks.
Bug:
27508829
Change-Id: Icf5420cde386cd80a1f45400c86545c89b1e2cc2
Andreas Gampe [Wed, 9 Mar 2016 00:00:41 +0000 (16:00 -0800)]
ART: Fix missing include
The SwitchTable needs a function from an inl file.
Change-Id: I624d71e0c0efc0c87150d7ef3be71e0b4506c75a
Hiroshi Yamauchi [Tue, 8 Mar 2016 23:59:49 +0000 (23:59 +0000)]
Merge "Fix valgrind errors with MemMap::Sync()."
Hiroshi Yamauchi [Tue, 8 Mar 2016 23:17:21 +0000 (15:17 -0800)]
Fix valgrind errors with MemMap::Sync().
This fixes valgrind-test-art-host-gtest-oat_test and one error in
valgrind-test-art-host-gtest-image_test32.
Valgrind doesn't like it if an address range that contains noaccess or
uninitialized memory is passed to msync(). Temporarily lift the noaccess
protection of the lower-end redzone because msync accepts a page-aligned
base address only and exclude the higher-end noaccess redzone from the
range.
Bug:
27552451
Bug:
27384445
Change-Id: I8ccbd04c62eb30f6c6d5c732f1eb254fa09a417a
Aart Bik [Tue, 8 Mar 2016 20:42:25 +0000 (12:42 -0800)]
Implement the 1.8 unsafe memory fences directly in HIR.
Rationale:
More efficient since it exposes full semantics to
all operations on the graph and allows for proper
code generation for all architectures.
bug=
26264765
Change-Id: Ic435886cf0645927a101a8502f0623fa573989ff
Chris Larsen [Wed, 20 Jan 2016 00:45:35 +0000 (16:45 -0800)]
MIPS32: java.lang.Thread, and java.lang.String intrinsics:
- Thread java.lang.Thread.currentThread()
- int java.lang.String.compareTo(String anotherString)
- int java.lang.String.indexOf(int ch)
- int java.lang.String.indexOf(int ch, int fromIndex)
- java.lang.StringFactory.newStringFromBytes(byte[] data,
int high,
int offset,
int byteCount)
- java.lang.StringFactory.newStringFromChars(int offset,
int charCount,
char[] data)
- java.lang.StringFactory.newStringFromString(String toCopy)
Change-Id: I96a06ff81e1e3bf18d45760282356854efaf4945
Andreas Gampe [Tue, 8 Mar 2016 18:26:02 +0000 (18:26 +0000)]
Merge "ART: Use the right ElfBuilder for oatdump symbolizer"
am:
2f6ad55a3b
* commit '
2f6ad55a3bfa16867146233e1eb8b822b1daab4b':
ART: Use the right ElfBuilder for oatdump symbolizer
David Srbecky [Tue, 8 Mar 2016 18:15:20 +0000 (18:15 +0000)]
Merge "ART: Use the right ElfBuilder for oatdump symbolizer"
Calin Juravle [Tue, 8 Mar 2016 12:52:52 +0000 (12:52 +0000)]
Handle unexpected cases in profile saver
There are some unexpected cases that should not occur in a normal run.
Log warnings but avoid crashing if:
- dex location is empty
- we cannot figure the real paths of the locations.
Bug:
27532729
(cherry picked from commit
1fae45f7d777e3971b916dda531c8648304866c8)
Change-Id: I9e8f4fc2da49f47dab113795ac264c6db9b691de
Calin Juravle [Thu, 18 Feb 2016 18:47:37 +0000 (18:47 +0000)]
Update GetDexOptNeeded to handle different levels of compilation
extract-only or profile-guide oat files are considered up to date from
runtime perspective as they don't necessary need (re)compilation or
relocation. However, it is useful to return a more refined code to the
caller so that they can decide whether or not that's good enough.
For example, the package manager might decide to still compile a
previous extract-only and during profile guide compilation we should
always recompile even if we have an oat file.
Note that dex files compiled via ClassLoaders will still be fully
compiled.
This change introduces:
- a new key in the oat header kCompilationType to capture what type of
compilation has been made. Note tha the key might be missing. The
distinction is needed in order to avoid recompilation of a previous
fully compiled file during profile guide compilation analysis.
- a new argument to GetDexOptNeeded which tells the runtime to cast its
opinion whether or not the oat file is up to date relative to the
desired target type of compilation.
Bug:
27189430
(cherry picked from commit
d91b8a2464b99625efe03caf7d30c8372bc378ed)
Change-Id: I6ce450350f388451f7bab7d285c1846d539a4b13
David Srbecky [Mon, 7 Mar 2016 16:13:58 +0000 (16:13 +0000)]
Mark DWARF lines in non-debuggable methods as "not a statement".
This is a hint to the debugger that breakpoints and stepping
might not function as intended (since we have limited information).
Change-Id: I23c4a816182cc7548fcd69fbd00112225e7b1710
Andreas Gampe [Tue, 8 Mar 2016 00:31:34 +0000 (16:31 -0800)]
ART: Use the right ElfBuilder for oatdump symbolizer
We should not unconditionally output 32-bit ELF files.
Bug:
27293423
Change-Id: Ibbb74a7807b24c46cb23d7b5867936569424e8fe
David Srbecky [Tue, 8 Mar 2016 15:01:47 +0000 (15:01 +0000)]
Merge "Propagate InstructionSetFeatures to ElfBuilder."
am:
ce51701b06
* commit '
ce51701b0621754a81125df3ed62e07c0497cafd':
Propagate InstructionSetFeatures to ElfBuilder.
David Srbecky [Tue, 8 Mar 2016 14:58:40 +0000 (14:58 +0000)]
Merge "Propagate InstructionSetFeatures to ElfBuilder."
Narayan Kamath [Tue, 8 Mar 2016 13:54:15 +0000 (13:54 +0000)]
Merge "Revert "Suppress ArrayDequeTest#testForEachRemaining temporarily.""
am:
60a765f678
* commit '
60a765f6781a59d782ebcf99691aa614b6e610d3':
Revert "Suppress ArrayDequeTest#testForEachRemaining temporarily."
Narayan Kamath [Tue, 8 Mar 2016 13:50:37 +0000 (13:50 +0000)]
Merge "Revert "Suppress ArrayDequeTest#testForEachRemaining temporarily.""
Narayan Kamath [Mon, 7 Mar 2016 10:57:34 +0000 (10:57 +0000)]
Revert "Suppress ArrayDequeTest#testForEachRemaining temporarily."
This reverts commit
98c38e34357a73c46ad7a735dd23da0ba29a2963.
Fixed by commit
3de87b847fa94cce9beaf5b225404c1bc7ec475f.
Change-Id: If38f1e67dd8504055236bb8a9703d8c2eb61d16c