OSDN Git Service

android-x86/art.git
8 years agoMerge "Recognize for (int i = 0; i != x.length; i++) loops"
Aart Bik [Thu, 25 Feb 2016 18:48:50 +0000 (18:48 +0000)]
Merge "Recognize for (int i = 0; i != x.length; i++) loops"

8 years agoMerge "Disable test 097-duplicate-method for investigation"
Sebastien Hertz [Thu, 25 Feb 2016 18:36:09 +0000 (18:36 +0000)]
Merge "Disable test 097-duplicate-method for investigation"

8 years agoDisable test 097-duplicate-method for investigation
Sebastien Hertz [Thu, 25 Feb 2016 17:50:23 +0000 (18:50 +0100)]
Disable test 097-duplicate-method for investigation

Broekn by latest Jack release (1.2-a19)

Bug: 27358065
Change-Id: Ifd66522bde4c5b93435c6d9ab11ebb407f842df6

8 years agoMerge "Make sure constantIndexing2 is optimized with DEOPT."
Aart Bik [Thu, 25 Feb 2016 17:38:08 +0000 (17:38 +0000)]
Merge "Make sure constantIndexing2 is optimized with DEOPT."

8 years agoRecognize for (int i = 0; i != x.length; i++) loops
Aart Bik [Wed, 24 Feb 2016 22:17:53 +0000 (14:17 -0800)]
Recognize for (int i = 0; i != x.length; i++) loops

Rationale:
Idiom occurs in real-life and is very straightforwardly
recognized by existing induction/range machinery.

Change-Id: I965a16e9de72f3523ea5023d30ed1c4e47ed5010

8 years agoMerge "Dump the number of OSR compiled code."
Nicolas Geoffray [Thu, 25 Feb 2016 16:46:48 +0000 (16:46 +0000)]
Merge "Dump the number of OSR compiled code."

8 years agoMerge "Optimizing: ARM64 negated bitwise operations simplification"
Roland Levillain [Thu, 25 Feb 2016 16:36:21 +0000 (16:36 +0000)]
Merge "Optimizing: ARM64 negated bitwise operations simplification"

8 years agoOptimizing: ARM64 negated bitwise operations simplification
Kevin Brodsky [Mon, 11 Jan 2016 13:43:31 +0000 (13:43 +0000)]
Optimizing: ARM64 negated bitwise operations simplification

Use negated instructions on ARM64 to replace [bitwise operation + not]
patterns, that is:
a & ~b (BIC)
a | ~b (ORN)
a ^ ~b (EON)

The simplification only happens if the Not is only used by the bitwise
operation. It does not happen if both inputs are Not's (this should be
handled by a generic simplification applying De Morgan's laws).

Change-Id: I0e112b23fd8b8e10f09bfeff5994508a8ff96e9c

8 years agoMerge "ART: Profile all branches for on-stack replacement"
Bill Buzbee [Thu, 25 Feb 2016 15:54:27 +0000 (15:54 +0000)]
Merge "ART: Profile all branches for on-stack replacement"

8 years agoMerge "Verify encoded stack maps in debug builds."
David Srbecky [Thu, 25 Feb 2016 15:45:58 +0000 (15:45 +0000)]
Merge "Verify encoded stack maps in debug builds."

8 years agoMerge "Revert "Revert "ARM/ARM64: Extend support of instruction combining."""
Vladimir Marko [Thu, 25 Feb 2016 15:37:05 +0000 (15:37 +0000)]
Merge "Revert "Revert "ARM/ARM64: Extend support of instruction combining."""

8 years agoMerge "Implement << operator for DexRegisterLocation::Kind."
David Srbecky [Thu, 25 Feb 2016 15:15:58 +0000 (15:15 +0000)]
Merge "Implement << operator for DexRegisterLocation::Kind."

8 years agoVerify encoded stack maps in debug builds.
David Srbecky [Wed, 24 Feb 2016 16:39:26 +0000 (16:39 +0000)]
Verify encoded stack maps in debug builds.

Read all stack map data back after we write it and DCHECK the content.

Change-Id: Ia679594ac9e5805f6d4c56686030af153b45ea8b

8 years agoImplement << operator for DexRegisterLocation::Kind.
David Srbecky [Thu, 25 Feb 2016 13:23:56 +0000 (13:23 +0000)]
Implement << operator for DexRegisterLocation::Kind.

This makes it comparable in DCHECK_EQ and similar methods.

Change-Id: I6b5b237be89325850ae6860d011fd6741189ab01

8 years agoART: Profile all branches for on-stack replacement
buzbee [Wed, 24 Feb 2016 22:24:24 +0000 (14:24 -0800)]
ART: Profile all branches for on-stack replacement

Change the switch, goto and mterp interpreters to profile
not-taken as well as taken branches.  This allows for on-stack
replacement when the cfg has been rearranged such that the loop
header was originally the fallthrough of a Dalvik byte-code branch.

Note that this increases the already-heavy cost of branch profiling.
Measuring on a Nexus 6 using a very branchy benchmark (logic subtest
from Caffeinemark), we see:

            No profiling     Taken only     Taken & not-taken
mterp          9728            3434              2384
C++ goto       3914            2422              2037
C++ switch     2986            2411              2112

As measured, the cost of branch profiling is dominating execution
time.  This will be addressed in follow-up CLs.

Change-Id: Ibc858f317398dd991ed8e4f3c3d72bd4c9a60594

8 years agoMerge "Revert "ART: Support interpreter switching in x86 mterp""
Nicolas Geoffray [Thu, 25 Feb 2016 13:35:36 +0000 (13:35 +0000)]
Merge "Revert "ART: Support interpreter switching in x86 mterp""

8 years agoRevert "ART: Support interpreter switching in x86 mterp"
Nicolas Geoffray [Thu, 25 Feb 2016 13:34:18 +0000 (13:34 +0000)]
Revert "ART: Support interpreter switching in x86 mterp"

Fails:
test-art-host-run-test-ndebug-prebuild-interpreter-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-304-method-tracing32
test-art-host-run-test-ndebug-prebuild-interpreter-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-545-tracing-and-jit32
test-art-host-run-test-ndebug-prebuild-interpreter-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-570-checker-osr32
test-art-host-run-test-ndebug-prebuild-interpreter-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-802-deoptimization32

This reverts commit 4429b110c7b4d9bda2c31b4df257e840831d01f6.

Change-Id: I30c42e22b44bb9c9bbd6efaedbc97516d575bf11

8 years agoDump the number of OSR compiled code.
Nicolas Geoffray [Thu, 25 Feb 2016 13:27:47 +0000 (13:27 +0000)]
Dump the number of OSR compiled code.

Change-Id: I20efc80e8556da8220dab92c3a7947f883d48cf8

8 years agoMerge "Split 530-checker-loops to please our run-test file size limit."
Nicolas Geoffray [Thu, 25 Feb 2016 12:43:58 +0000 (12:43 +0000)]
Merge "Split 530-checker-loops to please our run-test file size limit."

8 years agoMerge "ART: Support interpreter switching in x86 mterp"
Bill Buzbee [Thu, 25 Feb 2016 12:43:23 +0000 (12:43 +0000)]
Merge "ART: Support interpreter switching in x86 mterp"

8 years agoSplit 530-checker-loops to please our run-test file size limit.
Nicolas Geoffray [Thu, 25 Feb 2016 12:40:27 +0000 (12:40 +0000)]
Split 530-checker-loops to please our run-test file size limit.

Change-Id: Ib03303435918b333691625f3999b937072f8ec31

8 years agoMerge "Forgot to initialize JIT memory use fields."
Nicolas Geoffray [Thu, 25 Feb 2016 10:21:34 +0000 (10:21 +0000)]
Merge "Forgot to initialize JIT memory use fields."

8 years agoRevert "Revert "ARM/ARM64: Extend support of instruction combining.""
Artem Udovichenko [Tue, 26 Jan 2016 09:28:31 +0000 (12:28 +0300)]
Revert "Revert "ARM/ARM64: Extend support of instruction combining.""

This reverts commit 6b5afdd144d2bb3bf994240797834b5666b2cf98.

Change-Id: Ic27a10f02e21109503edd64e6d73d1bb0c6a8ac6

8 years agoMerge "Revert "Preload public libraries on Runtime::Start()""
Nicolas Geoffray [Thu, 25 Feb 2016 08:51:04 +0000 (08:51 +0000)]
Merge "Revert "Preload public libraries on Runtime::Start()""

8 years agoRevert "Preload public libraries on Runtime::Start()"
Nicolas Geoffray [Thu, 25 Feb 2016 08:50:50 +0000 (08:50 +0000)]
Revert "Preload public libraries on Runtime::Start()"

Breaks anyone not working on up-to-date devices/trees. I'll work on a revert of the revert.

Bug: http://b/27245894

This reverts commit ea9fc5bd31781fb380ace74ccddf2137c7dcc5d9.

Change-Id: Ie8fc286a64de4db2c905502a528005022803ed94

8 years agoMerge "Revert "Disable test due to toybox update.""
Nicolas Geoffray [Thu, 25 Feb 2016 08:42:33 +0000 (08:42 +0000)]
Merge "Revert "Disable test due to toybox update.""

8 years agoRevert "Disable test due to toybox update."
Nicolas Geoffray [Thu, 25 Feb 2016 08:41:31 +0000 (08:41 +0000)]
Revert "Disable test due to toybox update."

Bug: 26395656

This reverts commit 3e9be9904a7a3dfce076ba64a5f27e87c38e027d.

Change-Id: Ia994d695fdcebf00d6663aec3943539ab1347f87

8 years agoMerge "Preload public libraries on Runtime::Start()"
Dimitry Ivanov [Thu, 25 Feb 2016 01:05:56 +0000 (01:05 +0000)]
Merge "Preload public libraries on Runtime::Start()"

8 years agoPreload public libraries on Runtime::Start()
Dimitry Ivanov [Mon, 22 Feb 2016 22:26:48 +0000 (14:26 -0800)]
Preload public libraries on Runtime::Start()

Preloading public libraries on Runtime::Start()
instead of doing it in native_loader c-tor
ensures that the libraries are loaded only for
binaries that are using Android Runtime, and not
just linking against libandroid_runtime or libart.

Loading public libraries on Runtime::Start()
also helps some apps to save startup time and space
by ensuring that all NDK libraries are loaded
and ready to use.

Bug: http://b/27245894
Change-Id: I15679a72450f3d18a7dd503d0ae977cebcfd7f52
(cherry picked from commit 7bca74e53d3665bcd243d4e0277f6561c0c80271)

8 years agoMerge "Avoid single expensive test in 530-checker-loops."
Aart Bik [Wed, 24 Feb 2016 23:35:08 +0000 (23:35 +0000)]
Merge "Avoid single expensive test in 530-checker-loops."

8 years agoAvoid single expensive test in 530-checker-loops.
Aart Bik [Wed, 24 Feb 2016 23:18:55 +0000 (15:18 -0800)]
Avoid single expensive test in 530-checker-loops.

Rationale:
All tests run in "no time", except one instance
that iterates over full iteration space before
going OOB. Protect that instance with a HEAVY
boolean to avoid timing out in interpretation mode.

Impact on interpreted runtime:

1m6.936s   ->   0m0.031s

Change-Id: I413939b683c76b7be0f1259da8533d4b069eac6d

8 years agoART: Support interpreter switching in x86 mterp
buzbee [Wed, 24 Feb 2016 23:16:46 +0000 (15:16 -0800)]
ART: Support interpreter switching in x86 mterp

Because mterp only supports a subset of special modes and
instrumentation, it needs to recognize when new instrumentation
is added and bail out to the reference interpreter if needed.

The arm and arm64 mterp targets do this.  This CL adds the
functionality to x86 mterp.

Change-Id: I72783577e6f26b2695677b07d8fa57fb887a36c8

8 years agoMerge "Made art/runtime/arch/stub_test.cc compile with -O2 again."
Andreas Gampe [Wed, 24 Feb 2016 21:37:29 +0000 (21:37 +0000)]
Merge "Made art/runtime/arch/stub_test.cc compile with -O2 again."

8 years agoMerge "image: Allow methods with code in another oat file to work correctly"
Igor Murashkin [Wed, 24 Feb 2016 21:35:31 +0000 (21:35 +0000)]
Merge "image: Allow methods with code in another oat file to work correctly"

8 years agoimage: Allow methods with code in another oat file to work correctly
Igor Murashkin [Sat, 20 Feb 2016 00:41:44 +0000 (16:41 -0800)]
image: Allow methods with code in another oat file to work correctly

This fixes an issue when classes with default methods are in the boot
image and are used by an app image.

(cherry picked from commit 6e2237d6615c8f7b09c99d196e5effcfd087943b)

Bug: 27315287
Change-Id: Iaa66848fc07a0c779bc6e047bd154e2a4b87e1c8

8 years agoMerge "Use range analysis for better trip count analysis"
Aart Bik [Wed, 24 Feb 2016 21:01:45 +0000 (21:01 +0000)]
Merge "Use range analysis for better trip count analysis"

8 years agoMerge "Add MapAnonymous handling for null error_str"
Mathieu Chartier [Wed, 24 Feb 2016 19:44:11 +0000 (19:44 +0000)]
Merge "Add MapAnonymous handling for null error_str"

8 years agoUse range analysis for better trip count analysis
Aart Bik [Sat, 20 Feb 2016 04:14:38 +0000 (20:14 -0800)]
Use range analysis for better trip count analysis

Rationale:
Marking more loops as always-taken avoids generating
unnecessary new top tests while marking more loops
are non-infinite enables more optimizations. This
CL helps with these improvements. Also, some more
code is shared between induction and range analysis
and a bug with refining ranges has been fixed.

Bug: 27151190

Change-Id: Iecc0d7f32ae4779ee5424cda9dcc20816220935e

8 years agoAdd MapAnonymous handling for null error_str
Mathieu Chartier [Wed, 24 Feb 2016 18:09:23 +0000 (10:09 -0800)]
Add MapAnonymous handling for null error_str

We use MapAnonymous with null error_str for app image loading when
we want to fail quickly. Also avoid doing CheckNonOverlapping in
CheckMapRequest if error_msg is null. The result from
CheckNonOverlapping is unused and CheckNonOverlapping is slow since
it creates a backtrace map.

Bug: 22858531
Bug: 26746779
Change-Id: I8605ec0b9d9ae554a4b74f2606fa7dd81ade9021

8 years agoMake sure constantIndexing2 is optimized with DEOPT.
Aart Bik [Wed, 24 Feb 2016 18:49:37 +0000 (10:49 -0800)]
Make sure constantIndexing2 is optimized with DEOPT.

Rationale:
This particular method is also used in foo() to see if
assertIsManaged() holds after going out of bounds.
During my last rewrite (which added a driver to make
sure more code is actually executed), I changed the
method to show a non-deopt case. However, that would
miss this test. I moved the non-deopt case into a new test.

Change-Id: Iaf3e77e33a82ff6cd300753f9e5211529353401c

8 years agoMerge "Don't make this script fail a buildbot run."
Nicolas Geoffray [Wed, 24 Feb 2016 17:59:37 +0000 (17:59 +0000)]
Merge "Don't make this script fail a buildbot run."

8 years agoDon't make this script fail a buildbot run.
Nicolas Geoffray [Wed, 24 Feb 2016 17:52:08 +0000 (17:52 +0000)]
Don't make this script fail a buildbot run.

Change-Id: I000d69c1a33eca6ca98f7fd1096bc9af7d22b4e8

8 years agoMerge "ARM: Implement Reverse bits and bytes intrinsic."
Vladimir Marko [Wed, 24 Feb 2016 17:34:41 +0000 (17:34 +0000)]
Merge "ARM: Implement Reverse bits and bytes intrinsic."

8 years agoForgot to initialize JIT memory use fields.
Nicolas Geoffray [Wed, 24 Feb 2016 17:18:25 +0000 (17:18 +0000)]
Forgot to initialize JIT memory use fields.

Change-Id: I82ae97adffd8e633de048f044cdbdb953b2f9763

8 years agoMerge "MIPS32: Implement intrinsics from java.lang.Math:"
Roland Levillain [Wed, 24 Feb 2016 16:05:37 +0000 (16:05 +0000)]
Merge "MIPS32: Implement intrinsics from java.lang.Math:"

8 years agoMerge "Remove unreachable code paths in constant folding."
Roland Levillain [Wed, 24 Feb 2016 15:46:01 +0000 (15:46 +0000)]
Merge "Remove unreachable code paths in constant folding."

8 years agoMerge "Fix indentation of copyright headers in some ART run-tests."
Roland Levillain [Wed, 24 Feb 2016 15:45:01 +0000 (15:45 +0000)]
Merge "Fix indentation of copyright headers in some ART run-tests."

8 years agoFix indentation of copyright headers in some ART run-tests.
Roland Levillain [Wed, 24 Feb 2016 15:41:20 +0000 (15:41 +0000)]
Fix indentation of copyright headers in some ART run-tests.

Reported by Kevin Brodsky <kevin.brodsky@linaro.org>.

Change-Id: Iec3d69aa33d3b6a31f1298607e0ee6bc4cb6d9c0

8 years agoMerge "ART: Enable JitProfiling for x86 Mterp"
Bill Buzbee [Wed, 24 Feb 2016 14:59:07 +0000 (14:59 +0000)]
Merge "ART: Enable JitProfiling for x86 Mterp"

8 years agoRemove unreachable code paths in constant folding.
Roland Levillain [Wed, 24 Feb 2016 14:54:18 +0000 (14:54 +0000)]
Remove unreachable code paths in constant folding.

Change-Id: I7ffb361711c87f6b1b98d172d2cfdf9b2ba65607

8 years agoMade art/runtime/arch/stub_test.cc compile with -O2 again.
Bilyan Borisov [Wed, 10 Feb 2016 11:51:17 +0000 (11:51 +0000)]
Made art/runtime/arch/stub_test.cc compile with -O2 again.

The test file art/runtime/arch/stub_test.cc wasn't compiling with -O2
as the optimisations interacted with -fstack-protector-strong. The
aarch64 _asm_ block in the Invoke3WithReferrerAndHidden function was
clobbering all possible registers, and clang requires at least one
register to be live across an _asm_ block to do the checking.

The fix was to remove a callee-saved register, x20, from the clobber
list of the aarch64 asm block of Invoke3WithReferrerAndHidden. The
block was also modified to save and restore x20 to ensure that it
won't be clobbered by the stubs invoked by the blr instruction. Also
added some comments above the clobber list.

Change-Id: I03597fd2d14cf2d6e32edf02835aee2eb68bab17

8 years agoARM: Implement Reverse bits and bytes intrinsic.
Artem Serov [Tue, 2 Feb 2016 13:49:43 +0000 (13:49 +0000)]
ARM: Implement Reverse bits and bytes intrinsic.

 - IntegerReverse
 - LongReverse
 - IntegerReverseBytes
 - LongReverseBytes
 - ShortReverseBytes

Change-Id: I3ec202696b245148a0237ff6e46ac3f1a3f8402a

8 years agoMerge "Add a script to symbolize buildbot crashes."
Nicolas Geoffray [Wed, 24 Feb 2016 12:14:35 +0000 (12:14 +0000)]
Merge "Add a script to symbolize buildbot crashes."

8 years agoAdd a script to symbolize buildbot crashes.
Nicolas Geoffray [Wed, 24 Feb 2016 12:04:23 +0000 (12:04 +0000)]
Add a script to symbolize buildbot crashes.

Change-Id: I6e85a2f37db84a8d06c7258de1c60eaffc78e44b

8 years agoMerge "ART: Allow method references across oat files for multi-image, 2nd attempt."
Vladimir Marko [Wed, 24 Feb 2016 11:52:14 +0000 (11:52 +0000)]
Merge "ART: Allow method references across oat files for multi-image, 2nd attempt."

8 years agoART: Allow method references across oat files for multi-image, 2nd attempt.
Vladimir Marko [Fri, 19 Feb 2016 12:27:55 +0000 (12:27 +0000)]
ART: Allow method references across oat files for multi-image, 2nd attempt.

These were disabled because we didn't have sufficient
information about the multi-image layout when processing
link-time patches in OatWriter. This CL refactors the
ELF file creation so that the information is available.

Also clean up ImageWriter to use oat file indexes instead
of filenames and avoid reopening the oat file to retrieve
the checksum.

Change-Id: Icc7b528deca29da1e473c8f079521a36d6c4892f

8 years agoMerge "Please Clang with respect to stack frame limits in dex2oat."
Roland Levillain [Wed, 24 Feb 2016 10:53:24 +0000 (10:53 +0000)]
Merge "Please Clang with respect to stack frame limits in dex2oat."

8 years agoMerge "Introduce partial code cache collection."
Nicolas Geoffray [Wed, 24 Feb 2016 10:35:01 +0000 (10:35 +0000)]
Merge "Introduce partial code cache collection."

8 years agoMerge "Associate slow paths with the instruction that they belong to."
David Srbecky [Wed, 24 Feb 2016 10:30:04 +0000 (10:30 +0000)]
Merge "Associate slow paths with the instruction that they belong to."

8 years agoAssociate slow paths with the instruction that they belong to.
David Srbecky [Tue, 9 Feb 2016 15:24:47 +0000 (15:24 +0000)]
Associate slow paths with the instruction that they belong to.

Almost all slow paths already know the instruction they belong to,
this CL just moves the knowledge to the base class as well.

This is needed to be be able to get the corresponding dex pc for
slow path, which allows us generate better native line numbers,
which in turn fixes some native debugging stepping issues.

Change-Id: I568dbe78a7cea6a43a4a71a014b3ad135782c270

8 years agoMerge "Remove HNativeDebugInfo from start of basic blocks."
David Srbecky [Wed, 24 Feb 2016 10:23:50 +0000 (10:23 +0000)]
Merge "Remove HNativeDebugInfo from start of basic blocks."

8 years agoRemove HNativeDebugInfo from start of basic blocks.
David Srbecky [Tue, 9 Feb 2016 14:30:11 +0000 (14:30 +0000)]
Remove HNativeDebugInfo from start of basic blocks.

We do not require full environment at the start of basic block.
The dex pc contained in basic block is sufficient for line mapping.

Change-Id: I5ba9e5f5acbc4a783ad544769f9a73bb33e2bafa

8 years agoMerge "Show battery level fo devices on buildbot."
Nicolas Geoffray [Wed, 24 Feb 2016 10:12:30 +0000 (10:12 +0000)]
Merge "Show battery level fo devices on buildbot."

8 years agoART: Enable JitProfiling for x86 Mterp
buzbee [Tue, 23 Feb 2016 21:25:00 +0000 (13:25 -0800)]
ART: Enable JitProfiling for x86 Mterp

Adds branch profiling and enables for x86.

Change-Id: I875034d5bc6b639df08a0236e415195521994238

8 years agoShow battery level fo devices on buildbot.
Nicolas Geoffray [Wed, 24 Feb 2016 09:53:09 +0000 (09:53 +0000)]
Show battery level fo devices on buildbot.

Change-Id: Ic8279d1905c8a6efe08ca190f1bb7332842e1904

8 years agoMerge "Make JNI work correctly with default methods."
Alex Light [Tue, 23 Feb 2016 22:33:55 +0000 (22:33 +0000)]
Merge "Make JNI work correctly with default methods."

8 years agoMake JNI work correctly with default methods.
Alex Light [Mon, 22 Feb 2016 21:43:29 +0000 (13:43 -0800)]
Make JNI work correctly with default methods.

Also adds some tests for JNI and DefaultMethods.

Bug: 27259142
Bug: 24618811

Change-Id: I31222e3e41059d803be1dbb0f40e1144ac4bf457

8 years agoMerge "Improved instruction + offset hunting."
Aart Bik [Tue, 23 Feb 2016 19:42:27 +0000 (19:42 +0000)]
Merge "Improved instruction + offset hunting."

8 years agoImproved instruction + offset hunting.
Aart Bik [Tue, 23 Feb 2016 00:22:33 +0000 (16:22 -0800)]
Improved instruction + offset hunting.

Rationale:
This is generally useful for anything using this method
but in particular for deopting something like

 bs[  off] = (byte)(n >>> 24);
 bs[++off] = (byte)(n >>> 16);
 bs[++off] = (byte)(n >>>  8);
 bs[++off] = (byte)(n       );

where the base + offset is hidden in the increments.
Occurs quite often in real-life code.

Change-Id: I3fa7d285a7368a179a26e590e8eee37f3b64c25d

8 years agoMerge "Fix allocation tracking race"
Mathieu Chartier [Tue, 23 Feb 2016 18:49:08 +0000 (18:49 +0000)]
Merge "Fix allocation tracking race"

8 years agoFix allocation tracking race
Mathieu Chartier [Tue, 23 Feb 2016 18:37:32 +0000 (10:37 -0800)]
Fix allocation tracking race

Need to instrument the stubs before calling
Heap::SetAlloctrackingEnabled or else we can get this DCHECK failing
DCHECK(!IsAllocTrackingEnabled())

Change-Id: I1fb5df217a2785baf22b4f57887cd323f13f0973

8 years agoMerge "Revert "Compile checker run-tests with Jack""
Nicolas Geoffray [Tue, 23 Feb 2016 18:17:59 +0000 (18:17 +0000)]
Merge "Revert "Compile checker run-tests with Jack""

8 years agoRevert "Compile checker run-tests with Jack"
Nicolas Geoffray [Tue, 23 Feb 2016 18:17:46 +0000 (18:17 +0000)]
Revert "Compile checker run-tests with Jack"

Tests still faill.

Bug: 25635944
Bug: 19467889

This reverts commit fbeeb47fc63ec85891198b51b2309bb15f26527e.

Change-Id: I8f49dc6e8d3eb5f0de10636ef2685b7a2e08f297

8 years agoPlease Clang with respect to stack frame limits in dex2oat.
Roland Levillain [Tue, 23 Feb 2016 18:08:53 +0000 (18:08 +0000)]
Please Clang with respect to stack frame limits in dex2oat.

This change enables Clang to compile dex2oat on MIPS64
without complaining about stack frames larger than what
`-Wframe-larger-than` allows.

Bug: 27310199
Change-Id: I441a4be499959a089d3c2eae1135eb0273c1e80b

8 years agoMerge "Compile checker run-tests with Jack"
Sebastien Hertz [Tue, 23 Feb 2016 16:56:50 +0000 (16:56 +0000)]
Merge "Compile checker run-tests with Jack"

8 years agoMerge "Fix profman path for the gtest."
Calin Juravle [Tue, 23 Feb 2016 16:54:48 +0000 (16:54 +0000)]
Merge "Fix profman path for the gtest."

8 years agoFix profman path for the gtest.
Calin Juravle [Tue, 23 Feb 2016 16:53:30 +0000 (16:53 +0000)]
Fix profman path for the gtest.

Change-Id: Id332c50658b7dc1eb1edf6a58fcbdde4c2887d27

8 years agoCompile checker run-tests with Jack
Sebastien Hertz [Fri, 19 Feb 2016 15:54:05 +0000 (16:54 +0100)]
Compile checker run-tests with Jack

Bug: 25635944
Bug: 19467889
Change-Id: I3c3fcbcbd2f6c142dbea279a9ecd9d372e79b3b9

8 years agoIntroduce partial code cache collection.
Nicolas Geoffray [Tue, 23 Feb 2016 13:56:43 +0000 (13:56 +0000)]
Introduce partial code cache collection.

It will collect code that is known unused (because it deoptimized),
and osr code.

bug:26846185

Change-Id: Ic27dfeb944efb2ca464039007ba365c1e0d4a040

8 years agoMerge "Revert "Revert "Add profman tool: responsible to process profiles"""
Calin Juravle [Tue, 23 Feb 2016 14:07:40 +0000 (14:07 +0000)]
Merge "Revert "Revert "Add profman tool: responsible to process profiles"""

8 years agoMerge "Re-enable tests that were causing TimeoutExceptions on x86/x86-64."
Roland Levillain [Tue, 23 Feb 2016 13:57:10 +0000 (13:57 +0000)]
Merge "Re-enable tests that were causing TimeoutExceptions on x86/x86-64."

8 years agoRe-enable tests that were causing TimeoutExceptions on x86/x86-64.
Roland Levillain [Tue, 23 Feb 2016 13:49:35 +0000 (13:49 +0000)]
Re-enable tests that were causing TimeoutExceptions on x86/x86-64.

Some libcore tests have been failing with a
java.util.concurrent.TimeoutException on ART Builbot's
x86/x86-64 concurrent collector configurations.  No longer
ignore these failures to see whether recent changes (namely
https://android-review.googlesource.com/#/c/204125) fixed
the issue.

Bug: 26507762
Change-Id: Ib188e194195fc11b539bd53a03db78ab80626f33

8 years agoMerge "Don't allocate mspaces of less than a page."
Nicolas Geoffray [Tue, 23 Feb 2016 13:53:11 +0000 (13:53 +0000)]
Merge "Don't allocate mspaces of less than a page."

8 years agoDon't allocate mspaces of less than a page.
Nicolas Geoffray [Tue, 23 Feb 2016 13:52:01 +0000 (13:52 +0000)]
Don't allocate mspaces of less than a page.

Fixes jit tests in debug mode.

Change-Id: I34565e03683cee063e26975a461d8e75ad4a205f

8 years agoRevert "Revert "Add profman tool: responsible to process profiles""
Calin Juravle [Tue, 23 Feb 2016 12:00:03 +0000 (12:00 +0000)]
Revert "Revert "Add profman tool: responsible to process profiles""

This reverts commit 3da74687e42de7d33a8e75df9bd64374e650f75e.

Change-Id: Id005096bd8063c6c602744d4476d5eb7e0d34e90

8 years agoMerge "Dex-wide ArenaPool scoping for AOT compilation"
Vladimir Marko [Tue, 23 Feb 2016 10:52:23 +0000 (10:52 +0000)]
Merge "Dex-wide ArenaPool scoping for AOT compilation"

8 years agoMerge "Add a new kReservedCapacity to decide when to start GC code."
Nicolas Geoffray [Tue, 23 Feb 2016 10:52:11 +0000 (10:52 +0000)]
Merge "Add a new kReservedCapacity to decide when to start GC code."

8 years agoMerge "Fix static dex2oat build"
Calin Juravle [Tue, 23 Feb 2016 10:41:25 +0000 (10:41 +0000)]
Merge "Fix static dex2oat  build"

8 years agoMerge "Revert "Force Jack to consider multidex annotations""
Delphine Martin [Tue, 23 Feb 2016 08:19:30 +0000 (08:19 +0000)]
Merge "Revert "Force Jack to consider multidex annotations""

8 years agoMerge "Add regression test for alloc stack trace and unloading"
Mathieu Chartier [Tue, 23 Feb 2016 01:21:13 +0000 (01:21 +0000)]
Merge "Add regression test for alloc stack trace and unloading"

8 years agoAdd regression test for alloc stack trace and unloading
Mathieu Chartier [Tue, 23 Feb 2016 00:56:54 +0000 (16:56 -0800)]
Add regression test for alloc stack trace and unloading

Test creates allocations in a different loader, then unloads it.
This would free the ArtMethod except that we now visit them as
roots.

Bug: 26849503
Change-Id: Ied9f5942ff9022b1cd39052363f119a630ffbaef

8 years agoMerge "Visit stack trace roots"
Mathieu Chartier [Tue, 23 Feb 2016 00:18:30 +0000 (00:18 +0000)]
Merge "Visit stack trace roots"

8 years agoVisit stack trace roots
Mathieu Chartier [Mon, 22 Feb 2016 22:49:04 +0000 (14:49 -0800)]
Visit stack trace roots

We need to visit the declaring classes of all the methods in the
allocation stack traces to prevent class unloading for these
methods. If the class gets unloaded, it will free the linear alloc
resulting in hprof crashing during dumping.

Also a bit of clean up.

Bug: 26849503

Change-Id: I5cc57436294e4399388cb497819148b8a3b973d9

8 years agoMerge "Revert "Add profman tool: responsible to process profiles""
Nicolas Geoffray [Mon, 22 Feb 2016 22:38:27 +0000 (22:38 +0000)]
Merge "Revert "Add profman tool: responsible to process profiles""

8 years agoRevert "Add profman tool: responsible to process profiles"
Nicolas Geoffray [Mon, 22 Feb 2016 22:37:52 +0000 (22:37 +0000)]
Revert "Add profman tool: responsible to process profiles"

Needs a profile_assistant_test fix.

Bug: 26719109
Bug: 26563023

This reverts commit 6caefd983a800a063b219f1d3ed71b1416cecd70.

Change-Id: Ibdeb7385737dd7846ed861e0a95f083abb9aa974

8 years agoMerge "Fix class_linker_test for valgrind."
Hiroshi Yamauchi [Mon, 22 Feb 2016 21:45:16 +0000 (21:45 +0000)]
Merge "Fix class_linker_test for valgrind."

8 years agoFix class_linker_test for valgrind.
Hiroshi Yamauchi [Mon, 22 Feb 2016 21:30:35 +0000 (13:30 -0800)]
Fix class_linker_test for valgrind.

Fix a memory leak.

Bug: 27156726
Change-Id: I4d9a2dc9cff447b6f2fd02432e018ae49766563a

8 years agoMerge "Fix CC collector thread flip and JNI critical section deadlocks."
Hiroshi Yamauchi [Mon, 22 Feb 2016 21:41:06 +0000 (21:41 +0000)]
Merge "Fix CC collector thread flip and JNI critical section deadlocks."

8 years agoMerge "ART: Add Class.getEnclosingClass() to UnstartedRuntime"
Andreas Gampe [Mon, 22 Feb 2016 20:50:35 +0000 (20:50 +0000)]
Merge "ART: Add Class.getEnclosingClass() to UnstartedRuntime"

8 years agoMIPS32: Implement intrinsics from java.lang.Math:
Chris Larsen [Fri, 20 Nov 2015 17:07:09 +0000 (09:07 -0800)]
MIPS32: Implement intrinsics from java.lang.Math:

- abs(double)           - abs(float)            - abs(int)
- abs(long)             - max(double, double)   - max(float, float)
- max(int, int)         - max(long, long)       - min(double, double)
- min(float, float)     - min(int, int)         - min(long, long)
- sqrt(double)

The math intrinsics:

- ceil(double)          - floor(double)         - rint(double)
- round(double)         - round(float)

aren't implemented because they require instructions which only exist
for MIPS64, or for MIPS32r6.

Change-Id: I943be3592b52a423fcb7ac40f46f38a5e2a58c50