OSDN Git Service
Nicolas Geoffray [Fri, 28 Oct 2016 18:50:34 +0000 (19:50 +0100)]
Add VerifierDeps::Verify.
Method verifies that the recorded dependencies still hold.
test: verifier_deps_test.cc
bug:
30937355
Change-Id: I137f77739355141e46994b4cb6043dbbc9353637
Roland Levillain [Tue, 1 Nov 2016 16:35:00 +0000 (16:35 +0000)]
Merge "Flush the CFG visualizer output after writing to it."
Nicolas Geoffray [Tue, 1 Nov 2016 15:17:58 +0000 (15:17 +0000)]
Merge "Dump VerifierDeps in oatdump."
Roland Levillain [Tue, 1 Nov 2016 14:48:47 +0000 (14:48 +0000)]
Flush the CFG visualizer output after writing to it.
This fixes test failures exposed by the ART Buildbot in
608-checker-unresolved-lse (AOT) on the hammerhead-ndebug
configuration. The test used to fail because the CFG file
dumped by second invocation of dex2oat on device would be
truncated (at the beginning of the disassembly section
of the second compiled Dex file's contents) because of
dex2oat's fast exit.
Interestingly enough, this is the only case where this
failure has been observed, which seems to be due to a
combination of:
- targeting (32-bit) ARM;
- using a secondary Dex file (used to create an unresolved
access for that test);
- compiling that secondary Dex file with dex2oat (ndebug
mode) instead of dex2oatd;
- supporting multithread CFG graph dumping (by having the
write-to-file operation in a critical section) since
https://android-review.googlesource.com/#/c/296224/.
Test: art/test/run-test -O --debuggable 608-checker-unresolved-lse
Change-Id: Ifc1a23a3708b8645fd36c148312074bb9fe00cfc
Nicolas Geoffray [Sun, 30 Oct 2016 21:03:35 +0000 (21:03 +0000)]
Dump VerifierDeps in oatdump.
bug:
30937355
test: oatdump_test
Change-Id: I344726a20f21a6c6986047c21278c753b9e24575
Nicolas Geoffray [Tue, 1 Nov 2016 09:11:45 +0000 (09:11 +0000)]
Merge "Add a VerifierDeps::Dump method."
Nicolas Geoffray [Tue, 1 Nov 2016 09:11:22 +0000 (09:11 +0000)]
Merge "Address missed review comment."
Narayan Kamath [Tue, 1 Nov 2016 08:59:19 +0000 (08:59 +0000)]
Merge "MethodHandles: Better detail message for WrongMethodTypeExceptions"
Mathieu Chartier [Tue, 1 Nov 2016 01:30:33 +0000 (01:30 +0000)]
Merge "Move intern table to ObjPtr"
Mathieu Chartier [Mon, 31 Oct 2016 21:58:04 +0000 (14:58 -0700)]
Move intern table to ObjPtr
Also moved StringLog to use a GcRoot.
Also removed read barriers from lookup to prevent making weak strings
strongly live more often than necessary.
Bug:
31113334
Test: clean-oat-host && test-art-host CC baker
Change-Id: I05586e125d5dfed8d184890468fd398c79f32619
Andreas Gampe [Mon, 31 Oct 2016 23:25:50 +0000 (23:25 +0000)]
Merge changes I9afd9f88,I1cf94699
* changes:
ART: Blacklist test 912 for target
ART: Add GetClassSignature
Andreas Gampe [Sat, 29 Oct 2016 02:42:20 +0000 (19:42 -0700)]
ART: Blacklist test 912 for target
As usual, black-list an agent test for the target.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: I9afd9f88bf794e6d90d1ea5cd259de4fbed7e27e
Andreas Gampe [Sat, 29 Oct 2016 02:34:57 +0000 (19:34 -0700)]
ART: Add GetClassSignature
Add support to retrieve the signature of a JNI class.
Add a test.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: I1cf946996f9089cb5d41e93b4f1064193e9d6350
Treehugger Robot [Mon, 31 Oct 2016 21:36:19 +0000 (21:36 +0000)]
Merge changes Ib44df099,I8508f96f
* changes:
ART: Add GetMethodModifiers
ART: Add GetMethodDeclaringClass
Narayan Kamath [Mon, 31 Oct 2016 15:53:13 +0000 (15:53 +0000)]
Merge "MethodHandles: Remove obsolete test workaround."
Narayan Kamath [Mon, 31 Oct 2016 14:13:45 +0000 (14:13 +0000)]
MethodHandles: Remove obsolete test workaround.
Support for recognizing exact invokes was added by commit
3d617ac3d87f7fa98793406818e54b057bd701a1.
Test: make test-art-host
Bug:
30550796
Change-Id: Iab103e3f0faa90addac5929aa0c38baef3572569
Narayan Kamath [Mon, 31 Oct 2016 13:55:55 +0000 (13:55 +0000)]
MethodHandles: Better detail message for WrongMethodTypeExceptions
We now include the type of the callee and the callsite.
This change also fixes a call to ThrowWrongMethodTypeException that
passed arguments in the wrong order.
Test: make test-art-host
Change-Id: I3ced2e331cb49b616a8374f5a604dafa37330059
Narayan Kamath [Mon, 31 Oct 2016 14:04:01 +0000 (14:04 +0000)]
Merge "MethodHandles: Temporarily rewrite test of exact invokes."
Narayan Kamath [Mon, 31 Oct 2016 12:58:45 +0000 (12:58 +0000)]
MethodHandles: Temporarily rewrite test of exact invokes.
Go through an additional layer of indirection to fool the overly
smart type inference.
The issue needs to be investigated on the Jack side, as per
the associated bug.
Test: make test-art-host
Bug:
32536744
Change-Id: Ic02bf155822e76332eaa7a300ba9c0da8e751e26
Narayan Kamath [Mon, 31 Oct 2016 11:53:07 +0000 (11:53 +0000)]
Merge "Interpreter: fix build."
Narayan Kamath [Mon, 31 Oct 2016 11:50:54 +0000 (11:50 +0000)]
Interpreter: fix build.
Due to unfortunate commit timing.
Test: make build-art-host
Change-Id: Ie523399309b20836ab9f7a8a8224c5cb41bc79fc
Orion Hodson [Mon, 31 Oct 2016 11:42:13 +0000 (11:42 +0000)]
Merge "Getter/Setter support for invoke-polymorphic of invokeExact()."
Narayan Kamath [Mon, 31 Oct 2016 10:25:57 +0000 (10:25 +0000)]
Merge "method_handles: Complete support for emulated stack frames."
Orion Hodson [Wed, 19 Oct 2016 13:00:46 +0000 (14:00 +0100)]
Getter/Setter support for invoke-polymorphic of invokeExact().
Test: make test-art-host
Bug:
30550796
Change-Id: I427a6e0afba88b223655ad1ba30843aaf255182b
Nicolas Geoffray [Fri, 28 Oct 2016 13:45:48 +0000 (14:45 +0100)]
Add a VerifierDeps::Dump method.
Also, fix the Encode/Decode logic around dex file order:
iterating over a std::map doesn't guarantee insertion order.
test: verifier_deps_test
bug:
30937355
Change-Id: Id3efd703b3c8ca21ab49c2600c612c132fb021cd
Andreas Gampe [Sat, 29 Oct 2016 02:40:56 +0000 (02:40 +0000)]
Merge "ART: Blacklist test 911 for target"
Andreas Gampe [Sat, 29 Oct 2016 02:38:49 +0000 (19:38 -0700)]
ART: Blacklist test 911 for target
As usual, black-list an agent test for the target.
Bug:
31684812
Test: m test-art-host-run-test-911-get-stack-trace
Change-Id: I477ede7eb9b0ce7e76e3705d911052b332087e35
Andreas Gampe [Sat, 29 Oct 2016 01:07:18 +0000 (18:07 -0700)]
ART: Add GetMethodModifiers
Support GetMethodModifiers to retrieve the modifiers of a JNI
method.
Extend test 910.
Bug:
31684812
Test: m test-art-host-run-test-910-methods
Change-Id: Ib44df099bc056c557e526d5fa267df48ac2fd86c
Andreas Gampe [Sat, 29 Oct 2016 00:33:13 +0000 (17:33 -0700)]
ART: Add GetMethodDeclaringClass
Support GetMethodDeclaringClass to retrieve the declaring class
of a JNI method.
Extend test 910. Also cover proxies.
Bug:
31684812
Test: m test-art-host-run-test-910-methods
Change-Id: I8508f96f88692e540ef53f693ff85590b7553f19
Treehugger Robot [Sat, 29 Oct 2016 00:04:38 +0000 (00:04 +0000)]
Merge changes Ifa5818eb,Icbb9f3a6
* changes:
ART: Add GetStackTrace support
ART: Add synchronous checkpoint
Andreas Gampe [Fri, 28 Oct 2016 02:23:09 +0000 (19:23 -0700)]
ART: Add GetStackTrace support
Add support for getting a stack trace.
Bug:
31684812
Test: m test-art-host
Change-Id: Ifa5818ebca38caafb09616ffd7df30186eb8a06f
Andreas Gampe [Fri, 28 Oct 2016 02:21:23 +0000 (19:21 -0700)]
ART: Add synchronous checkpoint
Add a thread function that will run the given checkpoint function
on the thread and wait for its completion.
Bug:
31684812
Test: m test-art-host
Change-Id: Icbb9f3a6b0bbf31e62be0508714ee172456bea29
Treehugger Robot [Fri, 28 Oct 2016 20:05:47 +0000 (20:05 +0000)]
Merge changes I369333c1,I55e7b6da
* changes:
ART: Blacklist test 910 on target
ART: Add method name support to TI
Andreas Gampe [Fri, 28 Oct 2016 02:10:45 +0000 (19:10 -0700)]
ART: Blacklist test 910 on target
As usual, blacklist agent test on target until supported.
Bug:
31684812
Test: m test-art-host
Change-Id: I369333c13f8959ceaf847a598f6b3e31597bf0c6
Andreas Gampe [Fri, 28 Oct 2016 01:25:17 +0000 (18:25 -0700)]
ART: Add method name support to TI
Add support for GetMethodName.
Bug:
31684812
Test: m test-art-host
Change-Id: I55e7b6dac7e7193c3d9979ebb289b0e2849ad030
Treehugger Robot [Fri, 28 Oct 2016 19:06:49 +0000 (19:06 +0000)]
Merge "ART: Clean up Thread"
Nicolas Geoffray [Wed, 3 Aug 2016 19:48:13 +0000 (20:48 +0100)]
Address missed review comment.
Bug:
30351473
test: m test-art-host
Change-Id: I8d0d536e9280555d156280d87055631cabf5b2b7
Andreas Gampe [Wed, 26 Oct 2016 20:43:14 +0000 (13:43 -0700)]
ART: Clean up Thread
Make some functions private. Move some test-only functionality to
the test using it.
Test: m test-art-host
Change-Id: Ic84c8bcb150f991c6fc264c2d490363a3bd3e1f4
Treehugger Robot [Fri, 28 Oct 2016 16:03:53 +0000 (16:03 +0000)]
Merge changes I6c3a84f5,I05414f3b
* changes:
ARM: VIXL32: Move code to ease the diff with old codegen.
ARM: VIXL32: Implement Shifts, Neg, Bitwise and Rotate visitors.
Treehugger Robot [Fri, 28 Oct 2016 15:14:14 +0000 (15:14 +0000)]
Merge "ART: Make graph visualizer thread-safe"
Andreas Gampe [Thu, 27 Oct 2016 19:04:57 +0000 (12:04 -0700)]
ART: Make graph visualizer thread-safe
Store visualizer to a temporary string stream during compilation.
Print to the final output on destruction, and do so under a lock.
Note: the order of methods in the output is only guaranteed to be
deterministic with single-threaded compilation (-j1).
Test: m
Test: Compile multithread
Test: Check output file that begin_compilation and end_compilation
are interleaved
Test: Check that names of compiled methods match
Change-Id: I7eb3be2f88333cf1f116fe71b77cffa1ac702208
Artem Serov [Tue, 25 Oct 2016 14:25:33 +0000 (15:25 +0100)]
ARM: VIXL32: Move code to ease the diff with old codegen.
This patch doesn't change anything except relocation the code
to preserve original order of functions as in code_generator_arm.cc
to make it easier to review and to fulfill comparison of two arm
backends for reaching the parity between them.
Test: export ART_USE_VIXL_ARM_BACKEND=true && \
mma test-art-host dist && \
mma test-art-target dist
Change-Id: I6c3a84f5606069a795d4d8122fc0d4a308e2b7ec
Artem Serov [Fri, 23 Sep 2016 16:17:54 +0000 (17:17 +0100)]
ARM: VIXL32: Implement Shifts, Neg, Bitwise and Rotate visitors.
Tests which now start to pass:
* 112-double-math
* 415-optimizing-arith-neg
* 427-bitwise
* 431-optimizing-arith-shifts
* 436-shift-constant
* 474-fp-sub-neg
* 485-checker-dce-loop-update
* 514-shifts
* 542-bitfield-rotates
* 557-checker-instruct-simplifier-ror
* 564-checker-bitcount
* 565-checker-rotate
Test: export ART_USE_VIXL_ARM_BACKEND=true && \
mma test-art-host dist && \
mma test-art-target dist
Change-Id: I05414f3b8bc12cf0fa74b53945eea703c8c55cbe
Roland Levillain [Fri, 28 Oct 2016 14:15:10 +0000 (14:15 +0000)]
Merge "Remove default argument values in GenerateGcRootFieldLoad."
Roland Levillain [Fri, 28 Oct 2016 13:18:47 +0000 (13:18 +0000)]
Merge "Use CLREX in ARM/ARM64 CAS intrinsic Baker read barrier slow paths."
Narayan Kamath [Mon, 24 Oct 2016 16:14:25 +0000 (17:14 +0100)]
method_handles: Complete support for emulated stack frames.
Most of this change is a refactor that templatizes the code
that performs argument conversions. This allows us to copy arguments
between two shadow frames, or an emulated stack frame and a shadow
frame.
Test: make test-art-host
Bug:
30550796
Change-Id: I23e65735a2dbd28f3c7b7d1ccf9762e77e0cf1f1
Narayan Kamath [Fri, 28 Oct 2016 11:50:47 +0000 (11:50 +0000)]
Merge "method_verifier_test: Allow soft verifier failures for java/lang/invoke.*"
Narayan Kamath [Fri, 28 Oct 2016 09:57:41 +0000 (10:57 +0100)]
method_verifier_test: Allow soft verifier failures for java/lang/invoke.*
Classes in this package might use experimental opcodes.
Bug:
32496585
Bug:
30550796
Test: make test-art-host
Change-Id: Ibf1ea78b090fff065b792f00afa143182ef195d4
Narayan Kamath [Fri, 28 Oct 2016 11:49:26 +0000 (11:49 +0000)]
Merge "class_linker: Change allocation of MethodType dex_cache entries."
Narayan Kamath [Fri, 28 Oct 2016 09:19:54 +0000 (10:19 +0100)]
class_linker: Change allocation of MethodType dex_cache entries.
We allocate them regardless of the value of the runtime flag to
avoid needing changes to the compiler etc. The memory hit can be
mitigated in production systems that don't use MethodHandles by
setting kDexCacheMethodTypeCacheSize to 0.
Also, add DCHECKS in the interpreter to make sure the runtime
never executes an invoke-polymorphic instruction when method handles
are disabled.
Test: make test-art-host
Bug:
30550796
Change-Id: Id4b2065d99dc13625a51037b7d1a9f0ac5ff6121
Roland Levillain [Fri, 28 Oct 2016 10:09:33 +0000 (10:09 +0000)]
Merge "Add support for Baker read barriers in UnsafeCASObject intrinsics."
Narayan Kamath [Fri, 28 Oct 2016 08:54:59 +0000 (08:54 +0000)]
Merge "compiler_driver: loosen DCHECK for java/lang/invoke classes."
Narayan Kamath [Thu, 27 Oct 2016 10:47:30 +0000 (11:47 +0100)]
compiler_driver: loosen DCHECK for java/lang/invoke classes.
Verifier support for invoke-polymorphic hasn't been implemented
yet, so boot classpath classes that use it will not be verified
at compile time. This change will be reverted once verifier support
is implemented.
This change is a hack.
Test: make test-art-host
Bug:
32496585
Bug:
30550796
Change-Id: Id8fcb3fd0d5ddd09f1c80f751a5f96364b137855
Treehugger Robot [Thu, 27 Oct 2016 21:02:22 +0000 (21:02 +0000)]
Merge "ART: Add missing PrettyCause"
Treehugger Robot [Thu, 27 Oct 2016 20:45:19 +0000 (20:45 +0000)]
Merge "ART: Blacklist test 908 for GC_STRESS"
Treehugger Robot [Thu, 27 Oct 2016 20:29:26 +0000 (20:29 +0000)]
Merge "ART: Add function to retrieve all tagged objects"
Andreas Gampe [Thu, 27 Oct 2016 19:03:13 +0000 (12:03 -0700)]
ART: Blacklist test 908 for GC_STRESS
The test "measures" GC invocations and expects stable deterministic
behavior that cannot be guaranteed with a small heap.
Bug:
31684633
Test: m ART_TEST_GC_STRESS=true test-art-host
Change-Id: Id40f42e34b373643802e393fce7741eef549fb4b
Andreas Gampe [Thu, 27 Oct 2016 18:50:18 +0000 (11:50 -0700)]
ART: Add missing PrettyCause
Add missing name. Refactor so that build breaks next time anyone
forgets adding this.
Bug:
31385027
Test: m test-art-host
Change-Id: I7f5a510b56829aa39e8ca6bcff11c3e9eee95000
Roland Levillain [Thu, 27 Oct 2016 17:02:48 +0000 (18:02 +0100)]
Remove default argument values in GenerateGcRootFieldLoad.
These values were never or rarely used.
Test: mmma art (with and without `ART_USE_READ_BARRIER=true`)
Bug:
12687968
Bug:
29516974
Change-Id: I5d15140ce501bf50d7a87871b1e492cee54913db
Vladimir Marko [Thu, 27 Oct 2016 15:44:54 +0000 (15:44 +0000)]
Merge "Remove H[Reverse]PostOrderIterator and HInsertionOrderIterator."
David Sehr [Thu, 27 Oct 2016 15:24:06 +0000 (15:24 +0000)]
Merge "Remove some unneeded header includes"
Treehugger Robot [Thu, 27 Oct 2016 15:07:31 +0000 (15:07 +0000)]
Merge "ARM: VIXL32: Exclude recently added test that fails."
Vladimir Marko [Tue, 25 Oct 2016 15:54:12 +0000 (16:54 +0100)]
Remove H[Reverse]PostOrderIterator and HInsertionOrderIterator.
Use range-based loops instead, introducing helper functions
ReverseRange() for iteration in reverse order in containers.
When the contents of the underlying container change inside
the loop, use an index-based loop that better exposes the
container data modifications, compared to the old iterator
interface that's hiding it which may lead to subtle bugs.
Test: m test-art-host
Change-Id: I2a4e6c508b854c37a697fc4b1e8423a8c92c5ea0
Roland Levillain [Thu, 27 Oct 2016 12:55:18 +0000 (12:55 +0000)]
Merge "ARM: VIXL32: Pass test 406-fields and a few others."
Artem Serov [Wed, 26 Oct 2016 09:31:59 +0000 (10:31 +0100)]
ARM: VIXL32: Exclude recently added test that fails.
Test: export ART_USE_VIXL_ARM_BACKEND=true && \
mma test-art-host dist && \
mma test-art-target dist
Change-Id: I49b28c7bfbe178bf11f0c4b3e61e0372317ae215
Benoit Lamarche [Thu, 27 Oct 2016 10:51:25 +0000 (10:51 +0000)]
Merge "MethodHandles: Remove reference to Jack 4.11.BETA from build rule."
Roland Levillain [Wed, 26 Oct 2016 12:10:46 +0000 (13:10 +0100)]
Use CLREX in ARM/ARM64 CAS intrinsic Baker read barrier slow paths.
Follow clang's implementation, which uses CLREX in
compare-and-exchange operations on the failure path, i.e.
when the value read by the LDREX (ARM) or LDXR (ARM64)
instruction is not the expected value, in order to release
the monitor. The previous implementation was perfectly
correct, but this one may improve performance on some
micro-architectures.
This change only affects the
art::arm::ReadBarrierMarkAndUpdateFieldSlowPathARM and
art::arm64::ReadBarrierMarkAndUpdateFieldSlowPathARM64 slow
paths.
Test: make test-art-target-run-test-004-UnsafeTest
Bug:
29516905
Bug:
12687968
Change-Id: I99edd1ae6489dcec4a0089bfef52736114c6cd48
Narayan Kamath [Thu, 27 Oct 2016 08:45:58 +0000 (09:45 +0100)]
MethodHandles: Remove reference to Jack 4.11.BETA from build rule.
It is no longer necessary, since the default Jack can handle
invoke-polymorphic now.
Test: make test-art-host
Change-Id: I0439fe1729c2204627408c1975b9c8b965328397
Treehugger Robot [Thu, 27 Oct 2016 08:08:35 +0000 (08:08 +0000)]
Merge "Add handle wrapper for interpreter iget/iput quick"
Mathieu Chartier [Thu, 27 Oct 2016 05:57:02 +0000 (22:57 -0700)]
Add handle wrapper for interpreter iget/iput quick
JDWP has thread suspension in instrumentation listeners. The fix is
to use handle wrappers here. This change fixes JDWP tests.
Bug:
31113334
Test: art/tools/run-jdwp-tests.sh '--mode=host' '--variant=X64' --debug
Change-Id: Ic7dcb1201ec44946e8002547b2f7f5645b4dea48
Mathieu Chartier [Thu, 27 Oct 2016 06:18:10 +0000 (06:18 +0000)]
Merge "Add handle wrapper for DoCallCommon"
Mathieu Chartier [Thu, 27 Oct 2016 04:04:58 +0000 (21:04 -0700)]
Add handle wrapper for DoCallCommon
Prevents potential moving GC bugs from thread suspension caused
by GetTypeItem. Fixes build-art.
Bug:
31113334
Test: clean-oat-host && build-art && test-art-host
Change-Id: I9ef18b1d1dab61cc86a7468d535972eba51763f5
Mathieu Chartier [Thu, 27 Oct 2016 01:07:05 +0000 (01:07 +0000)]
Merge "Move interpreter to ObjPtr"
Mathieu Chartier [Thu, 27 Oct 2016 00:57:32 +0000 (00:57 +0000)]
Merge "Fix bad auto merge conflict resolution in CC"
Mathieu Chartier [Wed, 26 Oct 2016 23:46:46 +0000 (16:46 -0700)]
Fix bad auto merge conflict resolution in CC
We should not be clearing the region space since:
https://android-review.googlesource.com/#/c/294708/
Bug:
12687968
Test: test-art-host CC baker
Change-Id: I78050c61c8cdcc0b777d3324ba3f7ded80b2cf52
David Sehr [Wed, 26 Oct 2016 23:09:13 +0000 (16:09 -0700)]
Remove some unneeded header includes
Bug: none
Test: Builds still work
Change-Id: I6c83326cc12aa0e7825312b238f5e0ae694ccffc
Mathieu Chartier [Tue, 25 Oct 2016 22:08:01 +0000 (15:08 -0700)]
Move interpreter to ObjPtr
Moved most of interpreter, interpreter_common,
interpreter_switch_impl, and some of mterp to ObjPtr.
Bug:
31113334
Test: test-art-host ART_TEST_INTERPRETER=true
Test: art/tools/run-libcore-tests.sh '--mode=host' '--variant=X32' --debug
Change-Id: I0935d18287e1332205c17c5a018aa167788ab897
Hiroshi Yamauchi [Wed, 26 Oct 2016 21:27:59 +0000 (21:27 +0000)]
Merge "Avoid unnecessarily clearing/resetting region_space_ for each GC."
Treehugger Robot [Wed, 26 Oct 2016 19:29:14 +0000 (19:29 +0000)]
Merge "Fix build on XCode 8 w/OSX 10.12 SDK"
Treehugger Robot [Wed, 26 Oct 2016 19:04:14 +0000 (19:04 +0000)]
Merge "Add mode bits to open() with O_CREAT."
Hiroshi Yamauchi [Wed, 26 Oct 2016 18:54:23 +0000 (18:54 +0000)]
Merge "Blacklist 130-hprof for tracing configs."
Dimitry Ivanov [Wed, 26 Oct 2016 18:27:37 +0000 (18:27 +0000)]
Merge "Always call into native loader when loading a native library"
Aart Bik [Wed, 26 Oct 2016 18:08:09 +0000 (18:08 +0000)]
Merge "Improved induction variable analysis and loop optimizations."
Treehugger Robot [Wed, 26 Oct 2016 17:43:38 +0000 (17:43 +0000)]
Merge "Reduce file descriptor limit for 151-OpenFileLimit."
Treehugger Robot [Wed, 26 Oct 2016 17:30:26 +0000 (17:30 +0000)]
Merge "ART: Change InstructionSetFeatures to return unique_ptr"
Roland Levillain [Wed, 26 Oct 2016 17:20:34 +0000 (17:20 +0000)]
Merge "ARM: VIXL32: Implement more codegen code to pass a few more tests."
Dan Willemsen [Wed, 26 Oct 2016 17:13:15 +0000 (10:13 -0700)]
Fix build on XCode 8 w/OSX 10.12 SDK
CLOCK_REALTIME (along with clock_gettime and friends) are now defined,
so the build fails with a redefinition error.
Test: m checkbuild (w/XCode 8 on 10.11 with 10.12 SDK)
Change-Id: Ic8a5cc872ded1766597fda5f098d0e044cd063ee
Nicolas Geoffray [Wed, 26 Oct 2016 15:56:42 +0000 (15:56 +0000)]
Merge "Forgot these files from previous VerifierDeps change."
Nicolas Geoffray [Wed, 26 Oct 2016 15:55:18 +0000 (16:55 +0100)]
Forgot these files from previous VerifierDeps change.
https://android-review.googlesource.com/#/c/294326/ was missing
these files.
bug:
30937355
test: m test-art-host
test: verifier_deps_test.cc
Change-Id: Ic17ee6c70d17e998a2835415a6e7b25a2473ac37
Andreas Gampe [Tue, 6 Jan 2015 23:17:07 +0000 (15:17 -0800)]
ART: Change InstructionSetFeatures to return unique_ptr
This makes clear the ownership of the object.
Test: m test-art-host
Change-Id: I55fa734f04bc3046d370f4dcf98ce6b17c59e234
Richard Uhler [Wed, 26 Oct 2016 15:33:31 +0000 (16:33 +0100)]
Reduce file descriptor limit for 151-OpenFileLimit.
Under the assumption it is failing on host in some cases because it
takes too long to reach the limit. This change reduces the time it
takes to run the test from 50s down to 2s.
Test: time ./test/run-test --host --prebuild --interpreter --relocate --runtime-option -Xcheck:jni --64 151-OpenFileLimit
Bug:
32302133
Change-Id: I833e3a7aa2164a3cee2744f8e8c7e02365844aa0
Nicolas Geoffray [Wed, 26 Oct 2016 14:24:43 +0000 (14:24 +0000)]
Merge "Save the non-verified classes in the VerifierDeps."
Roland Levillain [Wed, 26 Oct 2016 12:03:38 +0000 (13:03 +0100)]
Add support for Baker read barriers in UnsafeCASObject intrinsics.
Prior to doing the compare-and-swap operation, ensure the
expected reference stored in the holding object's field is
in the to-space by loading it, emitting a read barrier and
updating that field with a strong compare-and-set operation
with relaxed memory synchronization ordering (if needed).
Test: ART host and target tests and Nexus 5X boot test with Baker read barriers.
Bug:
29516905
Bug:
12687968
Change-Id: I480f6a9b59547f11d0a04777406b9bfeb905bfd2
Nicolas Geoffray [Tue, 25 Oct 2016 16:20:18 +0000 (17:20 +0100)]
Save the non-verified classes in the VerifierDeps.
We will need that information when taking an OTA to make sure
the same set of classes needs to be verified at runtime.
Currently, the vdex file will contain a list of unverified
classes. We could alternatively encode a bit vector of the size
of the type_id array, but the few experiments I did show that
the bit vector is actually larger. We can refine this later.
bug:
30937355
test: m test-art-host
test: verifier_deps_test.cc
Change-Id: I2670e4fd2e54ee7a148246baa705fda3a56617ff
Treehugger Robot [Wed, 26 Oct 2016 10:44:23 +0000 (10:44 +0000)]
Merge "Reduce number of physical pages used for DexCache's arrays"
Treehugger Robot [Wed, 26 Oct 2016 10:35:53 +0000 (10:35 +0000)]
Merge "Interpreter: Add support for method handle transforms [Part 1]."
Treehugger Robot [Wed, 26 Oct 2016 08:59:38 +0000 (08:59 +0000)]
Merge "Fall back to true anonymous mmap if out of file descriptors."
Narayan Kamath [Wed, 19 Oct 2016 10:05:04 +0000 (11:05 +0100)]
Interpreter: Add support for method handle transforms [Part 1].
Method handle transformations are implemented in Java by
subclasses of java.lang.invoke.Transformers.Transformer. Transformer
extends MethodHandle and provides a transformer method defined like so:
public static class TransformerImpl extends Transformer {
@Override
public void transform(EmulatedStackFrame emulatedStackFrame) throws Throwable {
}
}
An EmulatedStackFrame is synthesized by the runtime based on the
caller stack frame and arguments specified by the instruction. It will
contain all input arguments to the method their associated types. It
will also exactly match the method type specified by the target handle
(i.e, argument coversions are performed by the runtime).
The transformer method operates on supplied EmulatedStackFrame
and other instance state to synthesize the transformation. In some
cases, these transformations will end up calling other signature
polymorphic methods. In those cases, the transformer can construct
an EmulatedStackFrame and issue the invoke passing that through as
the single input argument. For e.g,
EmulatedStackFrame sf = EmulatedStackFrame.newInstance();
sf.pushArgument("foo", String.class);
sf.pushIntArgument(42);
// The callsite type for this polymorphic invoke is
// (Ldalvik/system/EmulatedStackFrame)V;
delegate.invoke(sf);
The runtime will treat such polymorphic invokes specially and unmarshal
this EmulatedStackFrame on to the callee stack frame based on the type
and number of arguments contained in the EmulatedStackFrame and the
declared type of the target method handle.
In this change :
Adds the basic plumbing for transformer invokes. In particular, the code
for marshaling and unmarshaling emulated stack frames isn't implemented
and will be added in a follow up method. This plumbing is sufficient to
implement a test case of a method handle transform that doesn't need any
input arguments, so is trivially implementable without proper
EmulatedStackFrame support.
bug:
30550796
Test: make test-art-host
Change-Id: Iafa29accaef26d0a33f8b83713bed5d929df547e
Treehugger Robot [Wed, 26 Oct 2016 08:46:20 +0000 (08:46 +0000)]
Merge "Remove unused std::ostringstream variable."
Treehugger Robot [Wed, 26 Oct 2016 00:21:33 +0000 (00:21 +0000)]
Merge "ART: Refactor class-linker methods"