OSDN Git Service

android-x86/art.git
8 years agounstarted_runtime: Add additional cutouts
Narayan Kamath [Wed, 30 Mar 2016 12:11:18 +0000 (13:11 +0100)]
unstarted_runtime: Add additional cutouts

These allow us to initialize a further 90 classes. getIntVolatile
was used by the static initializer for ThreadLocal, which is used
quite frequently. This class was compile time initializable for M.

java.lang.System.getSecurityManager : 5 classes
sun.misc.Unsafe.getIntVolatile : 85 classes

bug: 27265238
Change-Id: I7e9820112bc87aec47c9b1b40ec6ba4f56172916

8 years agoMerge "ART: Actually run tests cross arch for oatdump"
Andreas Gampe [Fri, 1 Apr 2016 01:13:17 +0000 (01:13 +0000)]
Merge "ART: Actually run tests cross arch for oatdump"

8 years agoMerge changes from topic 'image_verify'
Mathieu Chartier [Thu, 31 Mar 2016 23:03:07 +0000 (23:03 +0000)]
Merge changes from topic 'image_verify'

* changes:
  Disable checks for b/27493510
  Add verification for image ArtMethod declaring classes

8 years agoMerge "ART: Do not run verification under lock"
Andreas Gampe [Thu, 31 Mar 2016 22:55:31 +0000 (22:55 +0000)]
Merge "ART: Do not run verification under lock"

8 years agoDisable checks for b/27493510
Mathieu Chartier [Thu, 31 Mar 2016 22:05:45 +0000 (15:05 -0700)]
Disable checks for b/27493510

Disabled for performance now that the bug is fixed. Still enabled
for debug builds.

Bug: 27493510

(cherry picked from commit 8790c7f9f7d684bff40d5731b2d8e3462ef8ed90)

Change-Id: I049d4319bca1114bd11a35bb13fc9d80c993260c

8 years agoART: Do not run verification under lock
Andreas Gampe [Thu, 31 Mar 2016 02:52:58 +0000 (19:52 -0700)]
ART: Do not run verification under lock

Do not hold the object lock for the duration of the verification.
Instead, use the kStatusVerifying indicator to wait, similar to
resolution.

Bug: 27924355
Change-Id: Ie831f47dd830756a1b7002ca9c792f8ff67570dc

8 years agoAdd verification for image ArtMethod declaring classes
Mathieu Chartier [Tue, 8 Mar 2016 00:13:54 +0000 (16:13 -0800)]
Add verification for image ArtMethod declaring classes

Try and see if any ArtMethods in the image have declaring classes
that are not marked in the heap live bitmap. Trying to mark these
would cause a SIGSEGV since the bitmap is read only.

TODO: Disable for performance.

(cherry-picked from commit 03c1dd9858962071bf3f0c988abc39e0e6ed7a1e)

Bug: 27493510
Change-Id: I231b07b84d98dcd7ee1557c18956c86264058ee1

8 years agoMerge "ART: Add support for DexFile compiler filter function"
Andreas Gampe [Thu, 31 Mar 2016 22:52:51 +0000 (22:52 +0000)]
Merge "ART: Add support for DexFile compiler filter function"

8 years agoMerge "Remove obsolete ANDROID_COMPILE_WITH_JACK"
Ying Wang [Thu, 31 Mar 2016 22:05:04 +0000 (22:05 +0000)]
Merge "Remove obsolete ANDROID_COMPILE_WITH_JACK"

8 years agoMerge "Add way to disable resolving for stack walk"
Mathieu Chartier [Thu, 31 Mar 2016 21:59:35 +0000 (21:59 +0000)]
Merge "Add way to disable resolving for stack walk"

8 years agoAdd way to disable resolving for stack walk
Mathieu Chartier [Thu, 31 Mar 2016 18:07:09 +0000 (11:07 -0700)]
Add way to disable resolving for stack walk

Only occurs for walking the inlined frames case.

Bug: 27857910

(cherry picked from commit be2892bf771435eb451c74297b553f7dc9fea4ca)

Change-Id: Ied92be96f2f74ba02c02168f704443b95e7a4b04

8 years agoMerge "Obtain stack trace outside of critical section"
Mathieu Chartier [Thu, 31 Mar 2016 21:05:30 +0000 (21:05 +0000)]
Merge "Obtain stack trace outside of critical section"

8 years agoObtain stack trace outside of critical section
Mathieu Chartier [Tue, 29 Mar 2016 21:02:55 +0000 (14:02 -0700)]
Obtain stack trace outside of critical section

Fixes deadlock if the stack walk does allocations, changed stack
trace format to prevent slowdown.

Added missing GetInterfaceMethodIfProxy to fix a crash in maps.

Bug: 27857910

(cherry picked from commit 23428587d32361736d4c5e0ba7270c7602695a43)

Change-Id: I64373bcd87a68fdd1b58fb855db2b16c9f6ed36b

8 years agoMerge "Refine OatFileAssistant.MakeUpToDate failure result."
Richard Uhler [Thu, 31 Mar 2016 19:27:54 +0000 (19:27 +0000)]
Merge "Refine OatFileAssistant.MakeUpToDate failure result."

8 years agoART: Add support for DexFile compiler filter function
Andreas Gampe [Thu, 31 Mar 2016 00:19:48 +0000 (17:19 -0700)]
ART: Add support for DexFile compiler filter function

Add support for getting a non-profile-guided version of a given
compiler filter.

Bug: 27921071

(cherry picked from commit fd97429f258acde6ee24a6f74c9050b2343e40cd)

Change-Id: I54735b61732e6a5c9dc62425d04bc740dd365083

8 years agoMerge "Remove many `instrumentation` variables from goto interpreter."
Vladimir Marko [Thu, 31 Mar 2016 17:53:44 +0000 (17:53 +0000)]
Merge "Remove many `instrumentation` variables from goto interpreter."

8 years agoRemove many `instrumentation` variables from goto interpreter.
Vladimir Marko [Thu, 31 Mar 2016 17:38:23 +0000 (18:38 +0100)]
Remove many `instrumentation` variables from goto interpreter.

Clean up after
    https://android-review.googlesource.com/210440 .

Change-Id: I7e7b1863a5627365de8d9a74f559ffe56cb4fdfa

8 years agoMerge "Remove obsolete LOCAL_DX_FLAGS."
Ying Wang [Thu, 31 Mar 2016 16:52:56 +0000 (16:52 +0000)]
Merge "Remove obsolete LOCAL_DX_FLAGS."

8 years agoMerge "Only log excessive timeouts if those appear accidental"
Hans Boehm [Thu, 31 Mar 2016 16:41:46 +0000 (16:41 +0000)]
Merge "Only log excessive timeouts if those appear accidental"

8 years agoMerge "ART: Improve JitProfile perf in x86_64 mterp"
Bill Buzbee [Thu, 31 Mar 2016 14:21:18 +0000 (14:21 +0000)]
Merge "ART: Improve JitProfile perf in x86_64 mterp"

8 years agoMerge "ART: Improve JitProfile perf in x86 mterp"
Bill Buzbee [Thu, 31 Mar 2016 14:07:15 +0000 (14:07 +0000)]
Merge "ART: Improve JitProfile perf in x86 mterp"

8 years agoMerge "Fix silly gcc warning."
Vladimir Marko [Thu, 31 Mar 2016 13:24:15 +0000 (13:24 +0000)]
Merge "Fix silly gcc warning."

8 years agoFix silly gcc warning.
Vladimir Marko [Thu, 31 Mar 2016 11:34:48 +0000 (12:34 +0100)]
Fix silly gcc warning.

Explicitly specify the underlying type of LinkerPatch::Type
as uint8_t because gcc would select a bigger type and then
complain that
    'art::LinkerPatch::patch_type_' is too small to hold all
    values of 'enum class art::LinkerPatch::Type'
which is really ridiculous given that the enum contains only
a handful enumerators with default (small) values.

Change-Id: I4c4b21cde62e56b62488bae99d3690d900c3c29e

8 years agoMerge "Rename run-test 593-checker-boolean-to-integral-conversions."
Roland Levillain [Thu, 31 Mar 2016 11:39:53 +0000 (11:39 +0000)]
Merge "Rename run-test 593-checker-boolean-to-integral-conversions."

8 years agoRename run-test 593-checker-boolean-to-integral-conversions.
Roland Levillain [Thu, 31 Mar 2016 11:32:07 +0000 (12:32 +0100)]
Rename run-test 593-checker-boolean-to-integral-conversions.

Shorten its name to "593-checker-boolean-to-integral-conv"
as some build configurations choke on too long filenames.

Bug: 27616343
Change-Id: I43439d7283920539817511249c6c1b430b3c9c95

8 years agoMerge "Fix Boolean to integral types conversions."
Roland Levillain [Thu, 31 Mar 2016 10:39:52 +0000 (10:39 +0000)]
Merge "Fix Boolean to integral types conversions."

8 years agoMerge "ART: Save or erase the file even if I/O failed"
Vladimir Marko [Thu, 31 Mar 2016 10:10:07 +0000 (10:10 +0000)]
Merge "ART: Save or erase the file even if I/O failed"

8 years agoMerge "ART: Fix TypeConversion from long const to float on x86_64"
David Brazdil [Thu, 31 Mar 2016 10:00:41 +0000 (10:00 +0000)]
Merge "ART: Fix TypeConversion from long const to float on x86_64"

8 years agoART: Fix TypeConversion from long const to float on x86_64
Pavel Vyssotski [Wed, 16 Mar 2016 07:59:53 +0000 (13:59 +0600)]
ART: Fix TypeConversion from long const to float on x86_64

LocationsBuilderX86_64::VisitTypeConversion should load 32-bit
constant for float type.

Change-Id: I24335568af65e6b98bf07d36f90c8696497dd137
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
8 years agoART: Improve JitProfile perf in x86_64 mterp
Serguei Katkov [Tue, 29 Mar 2016 11:04:00 +0000 (17:04 +0600)]
ART: Improve JitProfile perf in x86_64 mterp

Change-Id: Ieae39e2cc8de8d381e6f9de0faa440c90e20a7a5
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
8 years agoART: Improve JitProfile perf in x86 mterp
Serguei Katkov [Tue, 29 Mar 2016 06:09:06 +0000 (12:09 +0600)]
ART: Improve JitProfile perf in x86 mterp

Change-Id: Id4c1e52352da8f6b7ce2008bc4adf52bc08847b2
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
8 years agoRemove obsolete ANDROID_COMPILE_WITH_JACK
Sebastien Hertz [Thu, 31 Mar 2016 07:22:50 +0000 (09:22 +0200)]
Remove obsolete ANDROID_COMPILE_WITH_JACK

Removes the checks on ANDROID_COMPILE_WITH_JACK since it is going
to disappear and build tests with Jack by default.

Bug: 27400061
Change-Id: I1c08796a946411070e2aab6fe8c3c0262dfb4c52

8 years agoART: Save or erase the file even if I/O failed
Serdjuk, Nikolay Y [Tue, 22 Mar 2016 04:06:33 +0000 (10:06 +0600)]
ART: Save or erase the file even if I/O failed

It should close the file in any case.

Change-Id: Idb7db15bfecb0ac47839be3544cc2dce91096d7b
Signed-off-by: Serdjuk, Nikolay Y <nikolay.y.serdjuk@intel.com>
8 years agoRemove obsolete LOCAL_DX_FLAGS.
Ying Wang [Wed, 30 Mar 2016 20:55:33 +0000 (13:55 -0700)]
Remove obsolete LOCAL_DX_FLAGS.

Bug: 27400061
Change-Id: Iff834b58b47f8e5759e868159f85bab0f5c544ee

8 years agoRefine OatFileAssistant.MakeUpToDate failure result.
Richard Uhler [Wed, 30 Mar 2016 19:17:55 +0000 (12:17 -0700)]
Refine OatFileAssistant.MakeUpToDate failure result.

Avoid misleading log messages if MakeUpToDate fails because we decided
not to compile dex code.

Bug: 27641809
Change-Id: I184f8e89648183cba4ebe7a1dc5e0e6c8774c15b

8 years agoMerge "Fix arm64 simplifier bug that tries to remove same statement twice. With fail...
Aart Bik [Wed, 30 Mar 2016 18:59:27 +0000 (18:59 +0000)]
Merge "Fix arm64 simplifier bug that tries to remove same statement twice. With fail-before/pass-after test (on arm64)."

8 years agoMerge "ART: Fix unstarted runtime for Security"
Andreas Gampe [Wed, 30 Mar 2016 18:20:01 +0000 (18:20 +0000)]
Merge "ART: Fix unstarted runtime for Security"

8 years agoFix arm64 simplifier bug that tries to remove same statement twice.
Aart Bik [Tue, 29 Mar 2016 20:54:53 +0000 (13:54 -0700)]
Fix arm64 simplifier bug that tries to remove same statement twice.
With fail-before/pass-after test (on arm64).

Rationale:
This visitor removes statement "forward", which is a bit unusual, and
exposes a bug if statement is revisited and qualifies for removal again.

BUG=27851582

Change-Id: Ia8cddba32b4dfe9fd480852deb358eaa977f0e1f

8 years agoFix Boolean to integral types conversions.
Roland Levillain [Wed, 30 Mar 2016 18:09:03 +0000 (19:09 +0100)]
Fix Boolean to integral types conversions.

Bug: 27616343
Change-Id: I050f92045bca1b8b5d6da53547cc617f17be84b1

8 years agoMerge "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""
Bill Buzbee [Wed, 30 Mar 2016 18:02:22 +0000 (18:02 +0000)]
Merge "Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp"""

8 years agoMerge "Optimizing: Clean up after const-string sharpening."
Vladimir Marko [Wed, 30 Mar 2016 17:29:44 +0000 (17:29 +0000)]
Merge "Optimizing: Clean up after const-string sharpening."

8 years agoOptimizing: Clean up after const-string sharpening.
Vladimir Marko [Wed, 30 Mar 2016 15:30:21 +0000 (16:30 +0100)]
Optimizing: Clean up after const-string sharpening.

Do not look up the String for JIT, just check if it's in the
dex cache. Strings on hot paths should already be resolved
and we don't want to unnecessarily increase JIT compile time
to have a chance of improving a cold path.

Also, change the enum LinkerPatchType to be an inner enum
class of LinkerPatch and clean up casts between pointers and
uint64_t.

Change-Id: Ia6e0513af1a84ce94a3b30edac0c592157d374ec

8 years agoMerge "Don't return kPatchOatNeeded if there is no patch info."
Richard Uhler [Wed, 30 Mar 2016 15:19:11 +0000 (15:19 +0000)]
Merge "Don't return kPatchOatNeeded if there is no patch info."

8 years agoMerge "Optimizing: Improve const-string code generation."
Vladimir Marko [Wed, 30 Mar 2016 13:47:59 +0000 (13:47 +0000)]
Merge "Optimizing: Improve const-string code generation."

8 years agoMerge "X86_64: Replace x86_64 xchg instruction use"
Vladimir Marko [Wed, 30 Mar 2016 09:58:54 +0000 (09:58 +0000)]
Merge "X86_64: Replace x86_64 xchg instruction use"

8 years agoMerge "ART: Flush ostream less frequently in GraphVisualizer"
David Brazdil [Wed, 30 Mar 2016 09:46:14 +0000 (09:46 +0000)]
Merge "ART: Flush ostream less frequently in GraphVisualizer"

8 years agoART: Flush ostream less frequently in GraphVisualizer
David Brazdil [Wed, 30 Mar 2016 08:41:02 +0000 (09:41 +0100)]
ART: Flush ostream less frequently in GraphVisualizer

We have seen Checker tests timing out on debug-GC configurations after
having switched to Optimizing because its GraphVisualizer makes too
many syscalls which the configuration keeps track of.

This patch replaces std::endl with "\n" across GraphVisualizer so as
to not flush the stream after every line of output.

Bug: 27826765
Change-Id: I5e3f1e92f8a84f36d324d56945e2d420b2d36a5d

8 years agoART: Fix unstarted runtime for Security
Andreas Gampe [Wed, 30 Mar 2016 02:33:56 +0000 (19:33 -0700)]
ART: Fix unstarted runtime for Security

Derive the path for the libcore jar from the boot classpath string
instead of from the dex file location.

Bug: 27899446
Change-Id: I22a9be76303edb2ec72f4cf2e7a4b3bfed37d9c7

8 years agoMerge "ART: Postpone interface-related dex failure to version 37"
Andreas Gampe [Wed, 30 Mar 2016 00:47:15 +0000 (00:47 +0000)]
Merge "ART: Postpone interface-related dex failure to version 37"

8 years agoART: Postpone interface-related dex failure to version 37
Andreas Gampe [Tue, 29 Mar 2016 01:31:29 +0000 (18:31 -0700)]
ART: Postpone interface-related dex failure to version 37

For app compat, at least for now make the check for public-final-static
of interface members not fail on dex file versions less than 37. This
may be changed in future releases.

Bug: 27831184
Change-Id: If8ee50321298b951d4a78062c8eb583fec27394f

8 years agoRevert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""
Bill Buzbee [Fri, 25 Mar 2016 13:16:55 +0000 (13:16 +0000)]
Revert "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""

Ready for review.

This reverts commit 6aef867f4d1a98a12bcdd65e9bf2ff894f0f2d7e.

Change-Id: I5d53ed2bedc7e429ce7d3cdf80b6696a9628740e

8 years agoDon't return kPatchOatNeeded if there is no patch info.
Richard Uhler [Tue, 29 Mar 2016 20:27:41 +0000 (13:27 -0700)]
Don't return kPatchOatNeeded if there is no patch info.

Bug: 27693977
Change-Id: Ie1f27cc45f3cb434108a375136480cb92fd95e26

8 years agoMerge "ART: Update DexFile for compiler-filter pass-down"
Andreas Gampe [Tue, 29 Mar 2016 21:24:18 +0000 (21:24 +0000)]
Merge "ART: Update DexFile for compiler-filter pass-down"

8 years agoMerge "Disable oatdump_test on mips due to timeouts."
Vladimir Marko [Tue, 29 Mar 2016 18:58:43 +0000 (18:58 +0000)]
Merge "Disable oatdump_test on mips due to timeouts."

8 years agoOptimizing: Improve const-string code generation.
Vladimir Marko [Mon, 22 Feb 2016 10:39:50 +0000 (10:39 +0000)]
Optimizing: Improve const-string code generation.

For strings in the boot image, use either direct pointers
or pc-relative addresses. For other strings, use PC-relative
access to the dex cache arrays for AOT and direct address of
the string's dex cache slot for JIT.

For aosp_flounder-userdebug:
  - 32-bit boot.oat: -692KiB (-0.9%)
  - 64-bit boot.oat: -948KiB (-1.1%)
  - 32-bit dalvik cache total: -900KiB (-0.9%)
  - 64-bit dalvik cache total: -3672KiB (-1.5%)
    (contains more files than the 32-bit dalvik cache)
For aosp_flounder-userdebug forced to compile PIC:
  - 32-bit boot.oat: -380KiB (-0.5%)
  - 64-bit boot.oat: -928KiB (-1.0%)
  - 32-bit dalvik cache total: -468KiB (-0.4%)
  - 64-bit dalvik cache total: -1928KiB (-0.8%)
    (contains more files than the 32-bit dalvik cache)

Bug: 26884697
Change-Id: Iec7266ce67e6fedc107be78fab2e742a8dab2696

8 years agoART: Update DexFile for compiler-filter pass-down
Andreas Gampe [Wed, 23 Mar 2016 22:03:46 +0000 (15:03 -0700)]
ART: Update DexFile for compiler-filter pass-down

Update getDexOptNeeded. Add implementations for isValidCompilerFilter
and isProfileGuidedCompilerFilter.

Bug: 27689078

(cherry picked from commit 1d23d43e29e41adb3d504332c8833acaacb49e50)

Change-Id: I06b9d75f58c59cb07ef5170f784ea6745168efaa

8 years agoDisable oatdump_test on mips due to timeouts.
Vladimir Marko [Tue, 29 Mar 2016 17:42:21 +0000 (18:42 +0100)]
Disable oatdump_test on mips due to timeouts.

Bug: 27824283
Change-Id: I8014471385fdfe0e98760af04507cd81338f9952

8 years agoMerge "Optimizing: Reduce arena memory used by GraphChecker."
Vladimir Marko [Tue, 29 Mar 2016 08:56:19 +0000 (08:56 +0000)]
Merge "Optimizing: Reduce arena memory used by GraphChecker."

8 years agoOnly log excessive timeouts if those appear accidental
Hans Boehm [Mon, 28 Mar 2016 21:36:23 +0000 (14:36 -0700)]
Only log excessive timeouts if those appear accidental

Do not generate a log message even when timeout would cause us to wake
up past the end of Linux time, if the timeout specification looks like
it was meant to wait forever.  Avoids log spam.

Bug: 27723547
Change-Id: I98d0fc1b1813a10ad906282957675b85bd933472

8 years agoMerge "ART: Make verifier fail log level adjustable"
Andreas Gampe [Tue, 29 Mar 2016 02:31:16 +0000 (02:31 +0000)]
Merge "ART: Make verifier fail log level adjustable"

8 years agoMerge "ART: Clean up verifier"
Andreas Gampe [Tue, 29 Mar 2016 01:38:19 +0000 (01:38 +0000)]
Merge "ART: Clean up verifier"

8 years agoART: Make verifier fail log level adjustable
Andreas Gampe [Fri, 25 Mar 2016 23:58:00 +0000 (16:58 -0700)]
ART: Make verifier fail log level adjustable

To help for build failures.

Change-Id: I6c94dfb50177daa7d89902d78715ccec31bf0e45

8 years agoART: Clean up verifier
Andreas Gampe [Fri, 25 Mar 2016 23:58:00 +0000 (16:58 -0700)]
ART: Clean up verifier

Clean up verifier post-Quick.

Change-Id: I0b05e10dd06edd228fe2068c8afffc4b7d7fdffa

8 years agoMerge "Add support for Dex version 37 in Runtime."
Alex Light [Mon, 28 Mar 2016 21:26:05 +0000 (21:26 +0000)]
Merge "Add support for Dex version 37 in Runtime."

8 years agoMerge "Fix bug not accounting for type in induction comparison. Extended unit tests."
Aart Bik [Sat, 26 Mar 2016 00:44:53 +0000 (00:44 +0000)]
Merge "Fix bug not accounting for type in induction comparison. Extended unit tests."

8 years agoMerge "ART: Relax verifier checks"
Andreas Gampe [Fri, 25 Mar 2016 23:53:20 +0000 (23:53 +0000)]
Merge "ART: Relax verifier checks"

8 years agoART: Relax verifier checks
Andreas Gampe [Fri, 25 Mar 2016 23:24:20 +0000 (16:24 -0700)]
ART: Relax verifier checks

Only bail for unresolved merge types in a couple of cases. Follow-up
to bb18a03c44d99b3cae232d445d56e80d8388cca9.

Bug: 27799205
Change-Id: If448e14036bc5e245677e0cd8cdddee02b320525

8 years agoFix bug not accounting for type in induction comparison.
Aart Bik [Fri, 25 Mar 2016 20:14:53 +0000 (13:14 -0700)]
Fix bug not accounting for type in induction comparison.
Extended unit tests.

Rationale:
Now that inductions are typed, comparisons should take
the type into account as well.

Change-Id: Ie533bb728d2006390646657573fa743e6fc37ff2

8 years agoMerge "Allow x86+arm multilib build."
Ying Wang [Fri, 25 Mar 2016 21:41:41 +0000 (21:41 +0000)]
Merge "Allow x86+arm multilib build."

8 years agoAllow x86+arm multilib build.
Ying Wang [Thu, 17 Mar 2016 02:40:00 +0000 (19:40 -0700)]
Allow x86+arm multilib build.

The explicit dependency of dex2oat on installed file of libart-compiler
isn't necessary: the build sets up the dependency automatically when
dex2oat links liblibart-compiler.
Also the way of the explicit dependency is incorrect if multilib is
involved: a 64-bit dex2oat may depend on 32-bit libart-compiler.

Bug: 27526885
Change-Id: I4a9d72b49f5712695ff5a32b88df5eab9df7c1e4
(cherry-pick from commit 5eec66ea27a2fa5bfa1b4f9bd203c76e2990d7a2)

8 years agoMerge "Avoid removing new-instance instruction twice. Includes a fail-before/pass...
Aart Bik [Fri, 25 Mar 2016 18:04:18 +0000 (18:04 +0000)]
Merge "Avoid removing new-instance instruction twice. Includes a fail-before/pass-after regression test."

8 years agoMerge "ART: Allow array-ness for unresolved merge types"
Andreas Gampe [Fri, 25 Mar 2016 17:45:31 +0000 (17:45 +0000)]
Merge "ART: Allow array-ness for unresolved merge types"

8 years agoART: Allow array-ness for unresolved merge types
Andreas Gampe [Wed, 23 Mar 2016 03:34:25 +0000 (20:34 -0700)]
ART: Allow array-ness for unresolved merge types

In case component types aren't resolvable, array types won't be
either. They then may be merged. The merge is still potentially
an array type.

Ensure that merging an unresolved array type with a primitive
array type or a non-array type will be resolved to java.lang.Object.

Added tests.

Bug: 27799205
Change-Id: I9beff75318814dddd842abd64ef9a5d2644d801e

8 years agoAvoid removing new-instance instruction twice.
Aart Bik [Thu, 24 Mar 2016 22:38:56 +0000 (15:38 -0700)]
Avoid removing new-instance instruction twice.
Includes a fail-before/pass-after regression test.

Rationale:
In some corner cases, one new instance reached more than one
java.lang.String.<init> method call. As a result, the new
instance instruction appeared multiple times in the vector
uninitialized_strings_. A second removal crashes the compiler.
This change list avoid the crash by simply skipping instructions
that are already removed.

BUG=27847265

Change-Id: I7f8a4f84ea3c184e1529ec3e90bd6749c83c445b

8 years agoOptimizing: Reduce arena memory used by GraphChecker.
Vladimir Marko [Fri, 25 Mar 2016 15:31:35 +0000 (15:31 +0000)]
Optimizing: Reduce arena memory used by GraphChecker.

Use member variables to reuse the storage instead of
repeatedly allocating new storage for local variables.

Bug: 27690481
Change-Id: I614db9b8614d585653cfbff62e9cf7d7f0c58810

8 years agoMerge "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""
Calin Juravle [Fri, 25 Mar 2016 11:30:27 +0000 (11:30 +0000)]
Merge "Revert "ART: Improve JitProfile perf in arm/arm64 mterp""

8 years agoMerge "Revert "ART: Ignore hotness updates if jit inactive""
Calin Juravle [Fri, 25 Mar 2016 11:29:55 +0000 (11:29 +0000)]
Merge "Revert "ART: Ignore hotness updates if jit inactive""

8 years agoRevert "ART: Improve JitProfile perf in arm/arm64 mterp"
Calin Juravle [Fri, 25 Mar 2016 11:27:48 +0000 (11:27 +0000)]
Revert "ART: Improve JitProfile perf in arm/arm64 mterp"

This reverts commit c1d6b341eed646e5adafc6c4fd4e3748f0292368.

8 years agoRevert "ART: Ignore hotness updates if jit inactive"
Calin Juravle [Fri, 25 Mar 2016 11:27:40 +0000 (11:27 +0000)]
Revert "ART: Ignore hotness updates if jit inactive"

This reverts commit 17bda200dc7e36ba4178501274f10df4c82bea11.

8 years agoART: Actually run tests cross arch for oatdump
Andreas Gampe [Fri, 25 Mar 2016 01:57:48 +0000 (18:57 -0700)]
ART: Actually run tests cross arch for oatdump

To test the "other" image, we need to give an --instruction-set
parameter. Without one, the current runtime architecture is
implicitly used.

Bug: 27824283
Change-Id: I9887fddee9f956ef40b40699cc6fe3378eb40808

8 years agoMerge "Only call jit_load after the zygote fork"
Mathieu Chartier [Fri, 25 Mar 2016 01:48:22 +0000 (01:48 +0000)]
Merge "Only call jit_load after the zygote fork"

8 years agoOnly call jit_load after the zygote fork
Mathieu Chartier [Fri, 25 Mar 2016 00:22:52 +0000 (17:22 -0700)]
Only call jit_load after the zygote fork

Otherwise we always get that enable_debug_features is false since
that flag passed as a compiler option post zygote fork.

No significant change to libart-compiler PSS on calculator.

Bug: 27810774

(cherry picked from commit b10cef442594dd0d6c5f1a5784643931a25cc431)

Change-Id: Ie50668ba05ad07a5cf046497959f6d27e09f8fe2

8 years agoAdd support for Dex version 37 in Runtime.
Alex Light [Wed, 23 Mar 2016 17:20:41 +0000 (10:20 -0700)]
Add support for Dex version 37 in Runtime.

We are skipping version 36 of the dex file format due to a bug in
Dalvik dating back to ICS where dex files marked version 036 would
erroneously be accepted.

Bug: 27538761
Bug: 27809626

Change-Id: Ic053f7e25f5a8c3df83ff34b6656528824b2df12

8 years agoMerge "ART: Ignore hotness updates if jit inactive"
Bill Buzbee [Thu, 24 Mar 2016 21:51:05 +0000 (21:51 +0000)]
Merge "ART: Ignore hotness updates if jit inactive"

8 years agoART: Ignore hotness updates if jit inactive
buzbee [Thu, 24 Mar 2016 20:41:14 +0000 (13:41 -0700)]
ART: Ignore hotness updates if jit inactive

The interpreters are hard-wired to collect hotness data for the
jit.  If the jit is in the process of shutting down, discard the
updates.

Change-Id: I0baf73bb2c591e9571964435f6cc45c062b85911

8 years agoMerge "Load jit compiler pre zygote fork"
Mathieu Chartier [Thu, 24 Mar 2016 20:48:17 +0000 (20:48 +0000)]
Merge "Load jit compiler pre zygote fork"

8 years agoLoad jit compiler pre zygote fork
Mathieu Chartier [Thu, 24 Mar 2016 18:07:06 +0000 (11:07 -0700)]
Load jit compiler pre zygote fork

Reduces PSS for libart-compiler.so from 115KB to 2KB per app.

Also some clean-up.

Bug: 27810774

(cherry picked from commit ff2376770c1c6d301778c41e5c27c808a38e6968)

Change-Id: Ic0077a07c21ed9f1952a6c29863a5c0e5bacc01a

8 years agoMerge "ART: Improve JitProfile perf in arm/arm64 mterp"
Bill Buzbee [Thu, 24 Mar 2016 16:16:59 +0000 (16:16 +0000)]
Merge "ART: Improve JitProfile perf in arm/arm64 mterp"

8 years agoMerge "ART: Fix order of operations in HBasicBlock::DisconnectAndDelete"
David Brazdil [Thu, 24 Mar 2016 15:35:10 +0000 (15:35 +0000)]
Merge "ART: Fix order of operations in HBasicBlock::DisconnectAndDelete"

8 years agoART: Fix order of operations in HBasicBlock::DisconnectAndDelete
David Brazdil [Thu, 24 Mar 2016 11:18:15 +0000 (11:18 +0000)]
ART: Fix order of operations in HBasicBlock::DisconnectAndDelete

The method would remove predecessors before successors. As a result,
instructions used by dead loop phis would see dangling uses, causing
a DCHECK to fail.

Steps were reordered to remove dependencies in post order.

Bug: 27683071
Change-Id: I8e0e976443fb410908321a065276f1340b757c41

8 years agoMerge "ART: Fix run-test"
David Brazdil [Thu, 24 Mar 2016 15:03:50 +0000 (15:03 +0000)]
Merge "ART: Fix run-test"

8 years agoART: Fix run-test
David Brazdil [Thu, 24 Mar 2016 15:01:33 +0000 (15:01 +0000)]
ART: Fix run-test

Follow-up to Ic61ea2193765b4578550538e965ca4f80fa4b287

Bug: 27625564
Change-Id: Ia8b128a05b473896ba9a55df0d2aaf34ae6d06f3

8 years agoMerge "Fix stub_test after semantic conflicting merge."
Nicolas Geoffray [Thu, 24 Mar 2016 14:33:39 +0000 (14:33 +0000)]
Merge "Fix stub_test after semantic conflicting merge."

8 years agoFix stub_test after semantic conflicting merge.
Nicolas Geoffray [Thu, 24 Mar 2016 14:31:30 +0000 (14:31 +0000)]
Fix stub_test after semantic conflicting merge.

https://android-review.googlesource.com/#/c/209881/ does
not set the ImtConflictTable when we're a AOT runtime, which the
stub test pretends to be.

Change-Id: I70e00b265e982b46b577ff19ac9272cfee45940d

8 years agoMerge "ART: Loosen a GraphChecker rule on Boolean inputs"
David Brazdil [Thu, 24 Mar 2016 14:22:27 +0000 (14:22 +0000)]
Merge "ART: Loosen a GraphChecker rule on Boolean inputs"

8 years agoART: Loosen a GraphChecker rule on Boolean inputs
David Brazdil [Thu, 24 Mar 2016 12:40:52 +0000 (12:40 +0000)]
ART: Loosen a GraphChecker rule on Boolean inputs

GraphChecker tries to verify that Boolean inputs are properly typed.
This is non-trivial in the presence of simplifying optimizations
which capitalize on the fact that a Boolean value is internally
represented as an integer.

This patch removes the test from GraphChecker.

Bug: 27625564
Change-Id: Ic61ea2193765b4578550538e965ca4f80fa4b287

8 years agoMerge "Post-Quick cleanup: Remove CompilationUnit."
Vladimir Marko [Thu, 24 Mar 2016 13:35:08 +0000 (13:35 +0000)]
Merge "Post-Quick cleanup: Remove CompilationUnit."

8 years agoMerge "Re-enable IMT stub test."
Nicolas Geoffray [Thu, 24 Mar 2016 13:34:16 +0000 (13:34 +0000)]
Merge "Re-enable IMT stub test."

8 years agoMerge "Clean up art::HConstant predicates."
Roland Levillain [Thu, 24 Mar 2016 10:25:51 +0000 (10:25 +0000)]
Merge "Clean up art::HConstant predicates."

8 years agoMerge "Do a null check on the sibling in the register allocator."
Nicolas Geoffray [Thu, 24 Mar 2016 09:56:00 +0000 (09:56 +0000)]
Merge "Do a null check on the sibling in the register allocator."