OSDN Git Service
Nicolas Geoffray [Mon, 8 Sep 2014 16:09:18 +0000 (16:09 +0000)]
Merge "Add (simple) side effects flags and equality methods on nodes."
Nicolas Geoffray [Wed, 3 Sep 2014 13:51:22 +0000 (14:51 +0100)]
Add (simple) side effects flags and equality methods on nodes.
This is in preparation of doing GVN and LICM.
Change-Id: I43050ff846755f9387a62b893d548ecdb54e7e95
Nicolas Geoffray [Mon, 8 Sep 2014 14:41:40 +0000 (14:41 +0000)]
Merge "Clean-up and make the art script usable on target."
Nicolas Geoffray [Tue, 2 Sep 2014 14:24:25 +0000 (15:24 +0100)]
Clean-up and make the art script usable on target.
Also add a phony target to build what's needed to use it.
Change-Id: I0bca6b0cbe921653de05fec0ae0cbbff63df580e
Nicolas Geoffray [Mon, 8 Sep 2014 11:16:48 +0000 (11:16 +0000)]
Merge "Runtime support for the new stack maps for the opt compiler."
Nicolas Geoffray [Tue, 2 Sep 2014 14:17:15 +0000 (15:17 +0100)]
Runtime support for the new stack maps for the opt compiler.
Now most of the methods supported by the compiler can be optimized,
instead of using the baseline.
Change-Id: I80ab36a34913fa4e7dd576c7bf55af63594dc1fa
buzbee [Mon, 8 Sep 2014 04:22:20 +0000 (04:22 +0000)]
Merge "Quick compiler: Fix handling of unused returns"
buzbee [Sun, 7 Sep 2014 18:37:51 +0000 (11:37 -0700)]
Quick compiler: Fix handling of unused returns
As part of the inlining process, the quick compiler will attempt
to eliminate MOVE_RESULT instructions and deliver the result of
the inlined function directly to the eventual use.
The type of the returned value is determined by the subsequent
use (which had already been typed via the size and type
inference pass). However, if a method result is never used the code
just defaulted to assigning dummy core sink register[s]. This
caused a DCHECK failure on some 64-bit systems for methods returning
an unused reference (although the generated code was correct).
This CL selects sink registers for the unused return case based
on the type of the inlined method, and adds another DCHECK to
verify that the result of the size & type inference pass matches
with the inlined method's type.
Internal b/
17328561
Change-Id: I9803ad604fe1bdcf9ff9a1d310cf022a7b6deae2
Bill Buzbee [Sun, 7 Sep 2014 19:38:44 +0000 (19:38 +0000)]
Merge "ART: Make the dominator bitvectors expandable"
Bill Buzbee [Sun, 7 Sep 2014 19:23:21 +0000 (19:23 +0000)]
Merge "Fix Thumb2Stm, ldm definition of EncodingMap for arm"
Junmo Park [Mon, 1 Sep 2014 07:41:16 +0000 (16:41 +0900)]
Fix Thumb2Stm, ldm definition of EncodingMap for arm
Thumb2Stm instruction can save r0-r12,r14.
But the definition of EncodingMap only set r0-r12.
So it is fixed likes Thumb2Stmia.
Add new assembler formats kFmtLdmRegList and kFmtStmRegList.
Change-Id: Id03118d602f9d49d9d916f3dd9f3198f24ab9c37
Andreas Gampe [Sat, 6 Sep 2014 05:03:34 +0000 (05:03 +0000)]
Merge "ART: Refactor elf_writer_quick, add symbolizer"
Andreas Gampe [Fri, 5 Sep 2014 04:47:42 +0000 (21:47 -0700)]
ART: Refactor elf_writer_quick, add symbolizer
Refactors some classes in elf_writer_quick.h to elf_builder.h to
be more friendly for re-use. Use this in oatdump to add a symtab
to an oat file.
Bug:
17187621,
17322125
Change-Id: I2333291334fd98bd09cc5717fb83cb18efe3a029
Jean Christophe Beyler [Fri, 5 Sep 2014 23:06:42 +0000 (16:06 -0700)]
ART: Make the dominator bitvectors expandable
The dominator based bitvectors are not expandable. However, if we wish
to add BasicBlocks and recalculate, it is required to make them expandable.
Change-Id: I250684783c233eca31bb40a5bc971c97fcf7c42d
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Brian Carlstrom [Fri, 5 Sep 2014 23:05:06 +0000 (23:05 +0000)]
Merge "Fix numerous issues with DdmVmInternal allocation tracking"
Brian Carlstrom [Fri, 5 Sep 2014 20:01:41 +0000 (13:01 -0700)]
Fix numerous issues with DdmVmInternal allocation tracking
Issues addressed:
- Using without JDWP attached caused native crash.
- When buffer is full (64k entries), number of entries reported was 0.
- Disabling tracking after disabling tracking caused native crash.
- Asking for allocations after disabled caused native crash.
- Lock ordering issues between mutator lock and alloc tracker lock.
Adding 098-ddmc test to cover these cases.
Bug:
17392248
(cherry picked from commit
a5815065ac0877add9c0db3605d27b4d6c426e61)
Change-Id: Ib0bc18dfcdafcc050ab9dceed3d167dd878d1d7a
Andreas Gampe [Fri, 5 Sep 2014 17:19:23 +0000 (17:19 +0000)]
Merge "Revert "Revert "x86: Fix art_quick_instrumentation_exit"""
Ian Rogers [Fri, 5 Sep 2014 17:10:25 +0000 (17:10 +0000)]
Merge "ART: X86: Improve multiply in div/rem by literal"
Calin Juravle [Fri, 5 Sep 2014 15:35:19 +0000 (15:35 +0000)]
Merge "Avoid recomputing the dex checksum during class loading"
Calin Juravle [Tue, 2 Sep 2014 14:53:55 +0000 (15:53 +0100)]
Avoid recomputing the dex checksum during class loading
Thread the already computed checksum to VerifyOatAndDexFileChecksums and
LoadMultiDexFilesFromOatFile to avoid recomputing it.
Bug:
17346103
(cherry picked from commit
ca3459398018360d9968a52eebf727df085caf83)
Change-Id: Ie244efaca55b9e7c814b35feec7fce11fab3856d
Calin Juravle [Fri, 5 Sep 2014 15:26:00 +0000 (15:26 +0000)]
Merge "Remove unreachable code from class_linker.cc"
Calin Juravle [Fri, 5 Sep 2014 15:14:19 +0000 (16:14 +0100)]
Remove unreachable code from class_linker.cc
If the checksum doesn't match the oat_dex_file will be NULL, a case
which is handled in the first if.
Bug:
17402267
Change-Id: If8547ddc8fd7eff59a3b7dd36c07ac4ceb351361
Mark Mendell [Tue, 2 Sep 2014 16:44:24 +0000 (12:44 -0400)]
ART: X86: Improve multiply in div/rem by literal
Rewrite the multiplication of the magic number by the dividend to save
one instruction by multiplying directly from the dividend, rather than
loading the dividend into EAX/RAX first.
Change-Id: I7934243d90c0739a7f11a8d70f6fb2c000144587
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Andreas Gampe [Fri, 5 Sep 2014 05:43:34 +0000 (05:43 +0000)]
Revert "Revert "x86: Fix art_quick_instrumentation_exit""
Need to use GOT to avoid TEXTREL.
This reverts commit
62aa66f8532b8eb44e882596010b33e7781b0754.
Change-Id: Ife659c28d621596ad288999fa128dcf32fc0b1c7
Andreas Gampe [Fri, 5 Sep 2014 05:02:20 +0000 (05:02 +0000)]
Merge "Revert "x86: Fix art_quick_instrumentation_exit""
Andreas Gampe [Fri, 5 Sep 2014 05:02:08 +0000 (05:02 +0000)]
Revert "x86: Fix art_quick_instrumentation_exit"
GCC 4.8 can't handle it correctly.
This reverts commit
5324dc896b69fc14a24334f52169e2319b9b3842.
Change-Id: I2478a52f147b585658d0e5769c3fce7f2c75240e
Andreas Gampe [Fri, 5 Sep 2014 02:56:43 +0000 (02:56 +0000)]
Merge "x86: Fix art_quick_instrumentation_exit"
Dmitry Petrochenko [Wed, 27 Aug 2014 11:45:56 +0000 (18:45 +0700)]
x86: Fix art_quick_instrumentation_exit
Make sure that we use a move-immediate instead of a
move-from-address (previously this was a load, whereas now
we are interested in the address as a value).
Change-Id: I4048c4a97abcc6524fe976bdc35b834d8f3bc592
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Mathieu Chartier [Thu, 4 Sep 2014 22:32:40 +0000 (22:32 +0000)]
Merge "Add test case for runFinalization."
Mathieu Chartier [Thu, 4 Sep 2014 21:15:35 +0000 (14:15 -0700)]
Add test case for runFinalization.
There was a bug causing runFinalization to return before recently
freed objects were finalized. This is a regression test for this bug.
Bug:
17381967
Change-Id: Ide6e2037685324423e83965fae3935f3e7f0aba6
Dave Allison [Thu, 4 Sep 2014 21:59:58 +0000 (21:59 +0000)]
Merge "Fix arm64 build warning (promoted to error)."
Andreas Gampe [Thu, 4 Sep 2014 21:47:08 +0000 (21:47 +0000)]
Merge "ART: Change ART for new native bridge sequence"
Andreas Gampe [Thu, 4 Sep 2014 21:37:19 +0000 (21:37 +0000)]
Merge "ART: Fix host run-test script"
Dave Allison [Thu, 4 Sep 2014 21:33:42 +0000 (14:33 -0700)]
Fix arm64 build warning (promoted to error).
This refactors code that caused an warning on the arm64 build.
Change-Id: I1c0ddabb7061ea289d98b03554bf764c26256078
Andreas Gampe [Thu, 4 Sep 2014 21:19:51 +0000 (14:19 -0700)]
ART: Fix host run-test script
When using gdb, do not pipe and grep. GDB is interactive...
Change-Id: Idd944a8ff7a8c254f47c840bc5b2c1e352e8b105
Andreas Gampe [Wed, 3 Sep 2014 04:22:18 +0000 (21:22 -0700)]
ART: Change ART for new native bridge sequence
Initialize or unload after a fork.
Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67
Dave Allison [Thu, 4 Sep 2014 18:06:25 +0000 (18:06 +0000)]
Merge "Make nested signal more generic"
Mathieu Chartier [Thu, 4 Sep 2014 17:51:02 +0000 (17:51 +0000)]
Merge "Fix heap trimmer daemon sleeping."
Mathieu Chartier [Thu, 4 Sep 2014 04:26:36 +0000 (21:26 -0700)]
Fix heap trimmer daemon sleeping.
Problem:
Heap trimmer daemon sleeping caused app launch occasionally to take a
while due stopping the heap trimming thread taking a long time.
The heap trimmer thread now never sleeps, we prevent issues caused
by frequent back and forth process state changes by only
transitioning to background if it has been kCollectorTransitionWait
time since the last transition to background. Similar logic for heap
trimming.
(cherry picked from commit
698b44634396e8111e96e1116586fde89a838347)
Change-Id: I5b2894e92eb79351eec35078d49c8457d2fd67a8
Dave Allison [Fri, 29 Aug 2014 19:06:16 +0000 (12:06 -0700)]
Make nested signal more generic
This moves the nested signal catching code up to a slightly higher
level in the fault manager. Originally it was down in the DumpJavaStack
function but it needs to be up in the caller of that to allow for other
handlers like the stack dumper.
Change-Id: I31029f555dd9b501f4b5c0ed5c95777004873126
Ian Rogers [Thu, 4 Sep 2014 17:23:53 +0000 (17:23 +0000)]
Merge "VisitClassesWithoutClassesLock isn't safe if classes move."
Ian Rogers [Thu, 4 Sep 2014 17:09:14 +0000 (17:09 +0000)]
Merge "Fix stack overflow and duplicate methods while tracing."
Jeff Hao [Wed, 3 Sep 2014 20:48:16 +0000 (13:48 -0700)]
Fix stack overflow and duplicate methods while tracing.
Bug:
16386215
Change-Id: I0d0ae0113a3a00013ce84a1f5a110e2c52f19b86
(cherry picked from commit
6b28a456b075fe53dfb7e924a44dbf35d0d41eb3)
Ian Rogers [Thu, 4 Sep 2014 16:14:37 +0000 (16:14 +0000)]
Merge "ART: Fix x86_64 GenSelect case when destination is Ref"
Jean Christophe Beyler [Thu, 4 Sep 2014 15:34:28 +0000 (08:34 -0700)]
ART: Fix x86_64 GenSelect case when destination is Ref
Reference in x86_64 is a 64-bit solo register. As a result, the invocation
of OpRegImm results in an error when Select opcode of the kind:
ref = boolean ? null : null;
because opRegImm does not support 64-bit destination for OpMov.
The case above is only possible for ref because no one other constant except
null is possible.
Bug:
17327895
Change-Id: I7541e744ec1c8619711712fd17be72764efcf3a8
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Ian Rogers [Thu, 4 Sep 2014 15:48:22 +0000 (15:48 +0000)]
Merge "ART: Reduce LockCallTemps usage"
Maxim Kazantsev [Mon, 18 Aug 2014 11:43:55 +0000 (18:43 +0700)]
ART: Reduce LockCallTemps usage
Using FlushAllRegs/LockCallTemps in integer arithmetics causes
excess register flushing and clobbering. This patch adds API that
allows to flush, clobber and lock only those registers we really
need for calculations.
Change-Id: Idabaa4fff4d18a33e5040a80f66f2df6432f8be0
Signed-off-by: Max Kazantsev <maxim.kazantsev@intel.com>
Ian Rogers [Thu, 4 Sep 2014 15:36:20 +0000 (15:36 +0000)]
Merge "ART: Allow oatdump to print vr stack locations"
Razvan A Lupusoru [Sat, 30 Aug 2014 00:56:46 +0000 (17:56 -0700)]
ART: Allow oatdump to print vr stack locations
For both debugging and performance analysis, it is necessary to understand
stack layout. This patch adds capability to oatdump to print out the offsets
of the locals, ins, method*, and out VRs.
Change-Id: I73512f59e4fd2d2b12725a6c76d602182c46ff78
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Ian Rogers [Thu, 4 Sep 2014 15:27:29 +0000 (15:27 +0000)]
Merge "ART: Vectorization opcode implementation fixes"
Ian Rogers [Thu, 4 Sep 2014 15:20:55 +0000 (15:20 +0000)]
Merge "Add numerator check for integer divide and modulo"
Ian Rogers [Thu, 4 Sep 2014 15:14:44 +0000 (15:14 +0000)]
Merge "ART: Only call CalculateBasicBlockInformation once"
Jean Christophe Beyler [Tue, 2 Sep 2014 21:22:17 +0000 (14:22 -0700)]
ART: Only call CalculateBasicBlockInformation once
CalculateBasicBlockInformation gets called twice now when dirty is true.
Change-Id: I8aa0569e4c00ea884a45ecea957a4ae06a328969
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Ian Rogers [Thu, 4 Sep 2014 14:22:44 +0000 (14:22 +0000)]
Merge "ART: Fix computation of frame size for direct proxy methods"
Serguei Katkov [Fri, 29 Aug 2014 11:20:15 +0000 (18:20 +0700)]
ART: Fix computation of frame size for direct proxy methods
Proxy method has only one direct method and it is a constructor which
is cloned from java.lang.reflect.Proxy class together with code.
As a result its body is a compiled quick code and frame size should be
computed accordingly in contrast with other virtual methods which are
invoked through stub.
Change-Id: I0ac99b2f567b281c9342152bad1149dd6cd39480
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Mathieu Chartier [Thu, 4 Sep 2014 04:36:08 +0000 (04:36 +0000)]
Merge "Fix native allocation watermark clamping."
Mathieu Chartier [Wed, 3 Sep 2014 17:30:11 +0000 (10:30 -0700)]
Fix native allocation watermark clamping.
The main issue causing the test to fail is that
native_footprint_gc_watermark_ becoming > growth_limit_ due to no
clamping.
Temporary runFinalization fix is calling runFinalization 2x.
Bug:
17371542
(cherry picked from commit
4c7fc5950853b0c368e2148db77ced7c4d3c303c)
Change-Id: I05b85e95560c32c33d53bc96abf87d5262007395
Mathieu Chartier [Thu, 4 Sep 2014 03:32:56 +0000 (03:32 +0000)]
Merge "Add exception check to AllocateInternalWithGc"
Mathieu Chartier [Wed, 3 Sep 2014 18:21:08 +0000 (11:21 -0700)]
Add exception check to AllocateInternalWithGc
Trying to figure out if the pending exception comes before or during
AllocateInternalWithGc.
Bug:
17164348
(cherry picked from commit
98d43cb0da3c34d1888d1e31d953c2940fd0f897)
Change-Id: I2aac4b67f0c3f1c0fe3c9dc321316f76494c4074
Ian Rogers [Fri, 29 Aug 2014 22:40:08 +0000 (15:40 -0700)]
VisitClassesWithoutClassesLock isn't safe if classes move.
Which they do, so avoid by doing an array allocation.
Also, tidy member variables to the end of ClassLinker.
Remove unnecessary mutable. Tidy and fix a locks required/excluded.
Change-Id: I2404a9e7a1ea997d68ab1206f97d2a20dffbda06
Ian Rogers [Thu, 4 Sep 2014 00:20:48 +0000 (00:20 +0000)]
Merge "Remove abuse of mirror::Object* to reference special values."
Ian Rogers [Wed, 3 Sep 2014 23:16:56 +0000 (16:16 -0700)]
Remove abuse of mirror::Object* to reference special values.
Remove kInvalidIndirectRefObject, kClearedJniWeakGlobal and
ObjectRegistry::kInvalidObject. Handle error conditions by passing in or
returning an error value.
GetObjectRefType is simplified to be faster and not return invalid references
that are not expected according to the spec. Adjust check JNI and
jni_internal_test appropriately.
Fix cases in the debugger/JDWP of out arguments being passed by reference.
Bug:
17376993
Change-Id: I3ce8a28c01827e163f4dc288449959464da788b1
Lupusoru, Razvan A [Mon, 28 Jul 2014 21:11:01 +0000 (14:11 -0700)]
ART: Vectorization opcode implementation fixes
This patch fixes the implementation of the x86 vectorization opcodes.
Change-Id: I0028d54a9fa6edce791b7e3a053002d076798748
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
Signed-off-by: Philbert Lin <philbert.lin@intel.com>
Vladimir Marko [Wed, 3 Sep 2014 11:48:42 +0000 (11:48 +0000)]
Merge "Fix SetupResourceMasks to pass correct parameters"
Vladimir Marko [Wed, 3 Sep 2014 08:53:49 +0000 (08:53 +0000)]
Merge "ART fix oat debug source map operations"
Sebastien Hertz [Wed, 3 Sep 2014 07:17:29 +0000 (07:17 +0000)]
Merge "Reduce lock contention when debugging"
buzbee [Wed, 3 Sep 2014 01:41:16 +0000 (01:41 +0000)]
Merge "Quick compiler, aarch64: Insane sanity checker"
Mathieu Chartier [Wed, 3 Sep 2014 01:14:14 +0000 (01:14 +0000)]
Merge "Fix native allocation test."
Mathieu Chartier [Wed, 3 Sep 2014 01:13:57 +0000 (01:13 +0000)]
Merge "Change native allocations to use growth limit."
Andreas Gampe [Wed, 3 Sep 2014 01:00:21 +0000 (01:00 +0000)]
Merge "ART: Fix StubTest Interface Trampoline test"
Andreas Gampe [Wed, 21 May 2014 22:37:53 +0000 (15:37 -0700)]
ART: Fix StubTest Interface Trampoline test
The imt conflict test does not actually need a proper conflict,
as we do not invoke through a lookup.
Added simple check for art_quick_invoke_interface_trampoline_with_access_check.
Only non-failure testing, as failure requires a properly setup frame etc.
Change-Id: I173dac04db950bd23f62eaf13341a7b19802e5e8
Mathieu Chartier [Wed, 3 Sep 2014 00:36:08 +0000 (17:36 -0700)]
Fix native allocation test.
Forgot to update with last CL.
(cherry picked from commit
c60bdf667b5c6fa767548942f0115547523593b4)
Change-Id: I41ad168a5906ca07938bdd212a55f0e995ee5df7
Mathieu Chartier [Tue, 2 Sep 2014 23:21:01 +0000 (16:21 -0700)]
Change native allocations to use growth limit.
Previously native allocation tracking used a GC footprint limit
which would cause GC in the allocating thread. This prevented
excessive growth of the heap but could cause jank due to GC in
the allocating thread. The new behavior is using the growth_limit
instead of the native footprint limit.
(cherry picked from commit
d9819ecc0bc21a2bb356a4de9b013e36fe618627)
Change-Id: Ia40ed830e8c674cc49d4c0a6fd773d6cb8ff97fa
Mathieu Chartier [Wed, 3 Sep 2014 00:47:15 +0000 (00:47 +0000)]
Merge "Add missing read barriers to intern table."
Andreas Gampe [Wed, 3 Sep 2014 00:31:30 +0000 (00:31 +0000)]
Merge "ART: Fix read-out-of-bounds in the compiler"
Andreas Gampe [Wed, 27 Aug 2014 21:24:42 +0000 (14:24 -0700)]
ART: Fix read-out-of-bounds in the compiler
In case of a wide dalvik register, asking for the constant value
can lead to a read out of bounds.
Bug:
17302671
(cherry picked from commit
ade731854d18839823e57fb2d3d67238c5467d15)
Change-Id: Ie1849cd67cc418c97cbd7a8524f027f9b66e4c96
Andreas Gampe [Wed, 3 Sep 2014 00:06:22 +0000 (00:06 +0000)]
Merge "ART: Tighten verifier list reading and offsets"
Andreas Gampe [Tue, 2 Sep 2014 18:17:34 +0000 (11:17 -0700)]
ART: Tighten verifier list reading and offsets
Check offsets and sizes for header entries of a dex file.
Bug:
17347459
(cherry picked from commit
78d639ef4be3ad7314846e1e6c1261d7d30f83fa)
Change-Id: Ia1727c33dea51f7a8e345f3799f1ba414708239c
Mathieu Chartier [Tue, 2 Sep 2014 23:20:45 +0000 (16:20 -0700)]
Add missing read barriers to intern table.
Also deleted GcRoot::Assign.
Change-Id: Ib1ea739cf79c72fc92a8628cd9095c11b660e018
Mathieu Chartier [Tue, 2 Sep 2014 23:42:02 +0000 (23:42 +0000)]
Merge "Change intern table to unordered set."
Ian Rogers [Tue, 2 Sep 2014 23:32:25 +0000 (23:32 +0000)]
Merge "Disable SignalTest with GC stress."
Junmo Park [Sat, 30 Aug 2014 11:13:02 +0000 (20:13 +0900)]
Fix SetupResourceMasks to pass correct parameters
Calling SetupTargetResourceMasks function with correct parameter.
SetupTargetResourceMasks(lir, flags, use_mask, def_mask) is correct order.
Change-Id: I49118c3f2d3d06fac83fa3d5014b7fdaff6a2b00
Signed-off-by: Junmo Park <junmoz.park@samsung.com>
Ian Rogers [Tue, 2 Sep 2014 22:59:28 +0000 (15:59 -0700)]
Disable SignalTest with GC stress.
Also, only add to broken tests list run-tests that will be generated.
Change-Id: Ibd363c059c799110da7f3f5ec8ceba55277d5e0e
buzbee [Tue, 2 Sep 2014 22:39:57 +0000 (15:39 -0700)]
Quick compiler, aarch64: Insane sanity checker
Fix bit-mask generation used in the sanity checking code
for long division by small constants via multiplication. The
failing case was a 64-bit wide mask. The macro was using the
desired width of the result as a shift count - and a left
shift of a 64-bit integer by 64 bits is undefined.
Note that the generated code is correct - it's just the sanity
checking code that was wrong.
Change-Id: Ic6654662f848d3caab2c3b1ef0d92fe2eb9673f4
Ian Rogers [Tue, 2 Sep 2014 22:49:45 +0000 (22:49 +0000)]
Merge "Pre-allocate the NoClassDefFoundError to be thrown for boot classes."
Ian Rogers [Wed, 4 Jun 2014 23:57:15 +0000 (16:57 -0700)]
Pre-allocate the NoClassDefFoundError to be thrown for boot classes.
Bring over a Dalvik "optimization".
Bug:
12804658
Bug:
16853450
Change-Id: I6419de7bd2ba18d91479cb52489104954f5c4524
Mathieu Chartier [Sat, 30 Aug 2014 01:16:58 +0000 (18:16 -0700)]
Change intern table to unordered set.
Intern table active used bytes goes from 430k to 317k on system
server. Similar %wise savings on other apps.
Bug:
16238192
(cherry picked from commit
d910fcef539e12ab181e56ec80684f39c4e95733)
Change-Id: Ic70395124435c6f420a77e6d8639404a160f395a
Ian Rogers [Tue, 2 Sep 2014 21:22:20 +0000 (21:22 +0000)]
Merge "Reduce and speed-up class def searches."
Mathieu Chartier [Tue, 2 Sep 2014 19:56:48 +0000 (19:56 +0000)]
Merge "Change heap transitions + hspace compation to use VLOG(heap)"
Mathieu Chartier [Tue, 2 Sep 2014 19:33:25 +0000 (12:33 -0700)]
Change heap transitions + hspace compation to use VLOG(heap)
VLOG(gc) is spammy since it is enabled.
(cherry picked from commit
8bd2961b385c870953e650c253a04ee24b76809b)
Change-Id: Id75256cdc6a9802818bb56f77533cca88ace42a6
Andreas Gampe [Tue, 2 Sep 2014 17:43:07 +0000 (17:43 +0000)]
Merge "ART: Fix typo"
Andreas Gampe [Tue, 2 Sep 2014 17:22:20 +0000 (10:22 -0700)]
ART: Fix typo
Bug:
17327877
(cherry picked from commit
b373ba1bf7e67d4dd8286df08065ac76aa8ac1ee)
Change-Id: I6132a8afb4b69c8d22a01b477f6f324c789ed666
Sebastien Hertz [Tue, 19 Aug 2014 13:33:43 +0000 (15:33 +0200)]
Reduce lock contention when debugging
Uses a ReaderWriterMutex for the breakpoint lock to reduce contention during
debugging session.
Also adds missing thread safety annotations on fields and methods related to
instrumentation and debugging.
Bug:
16814665
Bug:
11667502
(cherry picked from commit
59d9d668d4f4286813afe2b4e7c6db839222ce96)
Change-Id: I5f1156da8c6cc8316d6db16e6cfb2470fe289ad3
Andreas Gampe [Tue, 2 Sep 2014 16:23:23 +0000 (16:23 +0000)]
Merge "ART: Fix dex file verifier type-list handling"
Andreas Gampe [Fri, 29 Aug 2014 23:07:49 +0000 (16:07 -0700)]
ART: Fix dex file verifier type-list handling
It is rare, but valid, to have an empty type list.
Bug:
17327877
(cherry picked from commit
277a7c7b4bb9c421380592fd3998d2e79e4035b3)
Change-Id: Ib3a8ff3e5ccd8fe7c04b1e97485bf3e6de72aa4d
Ian Rogers [Sat, 30 Aug 2014 03:19:11 +0000 (20:19 -0700)]
Reduce and speed-up class def searches.
Use the class linker for descriptor lookups from the compile driver so that
dex caches are populated.
Reduce the scope of functions for scanning class paths to just the class
linker where they are performed.
If we see more than a threshold number of find class def misses on a dex file
lazily compute an index, so that future lookups are constant time (part of the
collection code is taken from
https://android-review.googlesource.com/#/c/103865/3). Note that we take a lazy
approach so that we don't serialize on loading dex files, this avoids the
reason the index was removed in
8b2c0b9abc3f520495f4387ea040132ba85cae69.
Remove an implicit and unnecessary std::string creation for PrintableString.
Single threaded interpret-only dex2oat performance is improved by roughly 10%.
Bug:
16853450
Change-Id: Icf72df76b0a4328f2a24075e81f4ff267b9401f4
Nicolas Geoffray [Tue, 2 Sep 2014 08:12:44 +0000 (08:12 +0000)]
Merge "Revert "Revert "ART: Prepare for ELF64."""
Nicolas Geoffray [Tue, 2 Sep 2014 08:12:09 +0000 (08:12 +0000)]
Revert "Revert "ART: Prepare for ELF64.""
Fix was commited in "Fix frame size issue with 64-bit"
This reverts commit
7eebd95bddc7c6866ba29010d28b4f8251b43242.
Change-Id: I799b7fcab14ae24471d2f9d6d3a5e5cedd4aa7b8
Narayan Kamath [Mon, 1 Sep 2014 15:55:16 +0000 (15:55 +0000)]
Merge "Fix frame size issue with 64-bit"
Nicolas Geoffray [Mon, 1 Sep 2014 15:14:16 +0000 (15:14 +0000)]
Merge "Revert "ART: Prepare for ELF64.""