OSDN Git Service

android-x86/art.git
7 years agoART: Fix underflow in codegen
Andreas Gampe [Sun, 26 Feb 2017 22:10:28 +0000 (14:10 -0800)]
ART: Fix underflow in codegen

Check for count == 0 first before accessing non-existent stack map.

Test: m ART_TEST_JIT=true test-art-host
Test: m ART_TEST_JIT=true test-art-host-run-test-913-heaps
Change-Id: Id4cad8e791d731147860b8a9a0d90cc893cc6972

7 years agoMerge "ART: Add debug code to test 913"
Treehugger Robot [Sun, 26 Feb 2017 19:49:12 +0000 (19:49 +0000)]
Merge "ART: Add debug code to test 913"

7 years agoART: Add debug code to test 913
Andreas Gampe [Sun, 26 Feb 2017 17:58:40 +0000 (09:58 -0800)]
ART: Add debug code to test 913

To find a flaky environment, dump the stack under error condition.

Bug: 31385354
Test: m test-art-host-run-test-913-heaps
Change-Id: Idfb2248e4ae8eda8bbcc221c5533d97ca737da2c

7 years agoMerge changes I60595a8f,Ia5d90286
Roland Levillain [Sat, 25 Feb 2017 11:11:18 +0000 (11:11 +0000)]
Merge changes I60595a8f,Ia5d90286

* changes:
  Use the holder's gray bit in Baker read barrier slow paths (ARM, ARM64).
  Use the "GC is marking" information in compiler read barriers (ARM, ARM64).

7 years agoMerge "ART: Fix tagging"
Treehugger Robot [Sat, 25 Feb 2017 02:36:20 +0000 (02:36 +0000)]
Merge "ART: Fix tagging"

7 years agoMerge "Put app image objects in HPROF_HEAP_APP instead of HPROF_HEAP_IMAGE"
Mathieu Chartier [Sat, 25 Feb 2017 00:47:23 +0000 (00:47 +0000)]
Merge "Put app image objects in HPROF_HEAP_APP instead of HPROF_HEAP_IMAGE"

7 years agoART: Fix tagging
Andreas Gampe [Sat, 25 Feb 2017 00:21:18 +0000 (16:21 -0800)]
ART: Fix tagging

Tagging is local to the jvmtiEnv. Move from a global object tag
table to a table local to the ArtJvmtiEnv.

Bug: 31385027
Test: m test-art-host-run-test-903-hello-tagging
Change-Id: I2faeed87fd0421631fee7cd97bb7d496bf4e6338

7 years agoMerge "Dexlayout fix for duplicate class data and preserving last code item."
Treehugger Robot [Fri, 24 Feb 2017 23:24:11 +0000 (23:24 +0000)]
Merge "Dexlayout fix for duplicate class data and preserving last code item."

7 years agoMerge "Add more DCHECK logging to Heap::CheckPreconditionsForAllocObject"
Treehugger Robot [Fri, 24 Feb 2017 23:18:45 +0000 (23:18 +0000)]
Merge "Add more DCHECK logging to Heap::CheckPreconditionsForAllocObject"

7 years agoPut app image objects in HPROF_HEAP_APP instead of HPROF_HEAP_IMAGE
Mathieu Chartier [Fri, 24 Feb 2017 22:47:08 +0000 (14:47 -0800)]
Put app image objects in HPROF_HEAP_APP instead of HPROF_HEAP_IMAGE

Tools usually hide HPROF_HEAP_IMAGE and HPROF_HEAP_ZYGOTE classes,
so we probably don't want app classes in there.

Regression test is infeasible since we don't have a way to parse
hprof files from run-tests.

Test: test-art-host

Bug: 35762934
Change-Id: I56f4feb010a2e6cd290dfabdd8118e476098e40d

7 years agoMerge "ART: Remove stale TODOs"
Andreas Gampe [Fri, 24 Feb 2017 22:09:37 +0000 (22:09 +0000)]
Merge "ART: Remove stale TODOs"

7 years agoAdd more DCHECK logging to Heap::CheckPreconditionsForAllocObject
Mathieu Chartier [Fri, 24 Feb 2017 20:39:53 +0000 (12:39 -0800)]
Add more DCHECK logging to Heap::CheckPreconditionsForAllocObject

Print out relevant info about why the DCHECK failed.

Bug: 35746587

Test: test-art-host
Change-Id: If09ad7d050126647abc16a02c5e9a596634e285c

7 years agoMerge "Revert^2 "ART: Add heap filter support""
Andreas Gampe [Fri, 24 Feb 2017 21:08:05 +0000 (21:08 +0000)]
Merge "Revert^2 "ART: Add heap filter support""

7 years agoRevert^2 "ART: Add heap filter support"
Andreas Gampe [Fri, 24 Feb 2017 18:01:19 +0000 (18:01 +0000)]
Revert^2 "ART: Add heap filter support"

This reverts commit 2cb576c9b98a8ac637fac7dca76eeba8dac87599.

Bug: 31385354
Change-Id: I249fdee43bd871eaef6a288c9296a57d42de1fd5
Test: m ART_TEST_JIT=true test-art-host-run-test-913-heaps
Test: m ART_TEST_JIT=true ART_TEST_GC_STRESS=true ART_DEFAULT_GC_TYPE=SS ART_USE_READ_BARRIER=false test-art-host-run-test-913-heaps

7 years agoDexlayout fix for duplicate class data and preserving last code item.
Jeff Hao [Fri, 24 Feb 2017 00:14:04 +0000 (16:14 -0800)]
Dexlayout fix for duplicate class data and preserving last code item.

This change fixes a dexlayout issue when multiple class defs reference
the same class data. A set is used to tell what class data has already
been visited.

This change also makes dexlayout preserve the offset of the last code
item in the dex file if the following section is not 4-byte aligned.
Due to limitations in dexlayout, it is difficult to adjust the offsets
of sections if more space is needed. An overhaul of dexlayout should
be done to properly fix this.

Bug: 35451910
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: I8d066c2151a1a57c382ce35f12bf53a519da89f6

7 years agoMerge "Fix initialization of OptimizingCompilerStats."
Vladimir Marko [Fri, 24 Feb 2017 15:38:14 +0000 (15:38 +0000)]
Merge "Fix initialization of OptimizingCompilerStats."

7 years agoFix initialization of OptimizingCompilerStats.
Vladimir Marko [Fri, 24 Feb 2017 15:01:41 +0000 (15:01 +0000)]
Fix initialization of OptimizingCompilerStats.

This is a follow-up to
    https://android-review.googlesource.com/343265
where we replaced Atomic<> with std::atomic<> because
Atomic<> was hiding std::atomic<>::operator=(). However,
while the default constructor of Atomic<> initializes the
value, the default constructor of std::atomic<> does not.

Test: m valgrind-test-art-host
Bug: 34053922
Change-Id: Iff2b38a7b28ee2d114991b60e3c40a33425bfc48

7 years agoMerge "Revert^2 "Enable String compression.""
Treehugger Robot [Fri, 24 Feb 2017 12:50:24 +0000 (12:50 +0000)]
Merge "Revert^2 "Enable String compression.""

7 years agoRevert^2 "Enable String compression."
Vladimir Marko [Thu, 23 Feb 2017 10:43:09 +0000 (10:43 +0000)]
Revert^2 "Enable String compression."

Test: m test-art-host (interpreter, JIT, AOT)
Test: m test-art-target on Nexus 6P (interpreter, JIT, AOT)
Test: Nexus 6P boots
Test: m ahat-test
Bug: 31040547

This reverts commit afcb365b2d3ae152989826c2afb0d98a9cf3f6be.

Change-Id: Id7e27d717c8e36d3c7abdde59ca2c8fd4fc221c9

7 years agoMerge "ART: add exynos-m2 to a53 #835769 & #843419 erratum exception list"
Treehugger Robot [Fri, 24 Feb 2017 10:30:14 +0000 (10:30 +0000)]
Merge "ART: add exynos-m2 to a53 #835769 & #843419 erratum exception list"

7 years agoMerge "Fix compilation statistics collection in inliner."
Vladimir Marko [Fri, 24 Feb 2017 10:15:20 +0000 (10:15 +0000)]
Merge "Fix compilation statistics collection in inliner."

7 years agoMerge "Revert "ART: Add heap filter support""
Nicolas Geoffray [Fri, 24 Feb 2017 09:40:54 +0000 (09:40 +0000)]
Merge "Revert "ART: Add heap filter support""

7 years agoRevert "ART: Add heap filter support"
Nicolas Geoffray [Fri, 24 Feb 2017 09:40:37 +0000 (09:40 +0000)]
Revert "ART: Add heap filter support"

Test is flaky.

Bug: 31385354

This reverts commit 4beab68986101d85d878491558bab34c9687beb0.

Change-Id: Id22e5b1c5cd3ca7b0e58037ecf3625f7239c5a7c

7 years agoMerge "Update entrypoint directly when doing JIT code cache GC."
Nicolas Geoffray [Fri, 24 Feb 2017 09:02:57 +0000 (09:02 +0000)]
Merge "Update entrypoint directly when doing JIT code cache GC."

7 years agoMerge "Fix testrunner.py reporting"
Treehugger Robot [Fri, 24 Feb 2017 02:38:50 +0000 (02:38 +0000)]
Merge "Fix testrunner.py reporting"

7 years agoART: Remove stale TODOs
Andreas Gampe [Fri, 24 Feb 2017 01:31:42 +0000 (17:31 -0800)]
ART: Remove stale TODOs

Remove a number of now stale TODOs.

Bug: 31455788
Test: m
Change-Id: I2ec22604b71817f34427bbc8e996ba01b686191b

7 years agoART: add exynos-m2 to a53 #835769 & #843419 erratum exception list
Junmo Park [Wed, 3 Aug 2016 07:51:22 +0000 (16:51 +0900)]
ART: add exynos-m2 to a53 #835769 & #843419 erratum exception list

Exynos-M2 is custom-designed 64-bit ARM CPU and does not need this A53
erratum handling.

Change-Id: I2a72a0cb84d6cffe45a87ac23ff3164806bb7a7a
Signed-off-by: Junmo Park <junmoz.park@samsung.com>
7 years agoFix testrunner.py reporting
Alex Light [Fri, 24 Feb 2017 01:02:46 +0000 (17:02 -0800)]
Fix testrunner.py reporting

Bad indentation meant we wouldn't print status updates if the terminal
is wide enough to print the entire target name.

Test: with a wide terminal ./test/testrunner/testrunner.py --host -j48
Change-Id: I7e618a25e42fe2d5ac740565afec201265e47ecb

7 years agoMerge "ART: Add heap filter support"
Treehugger Robot [Fri, 24 Feb 2017 00:35:23 +0000 (00:35 +0000)]
Merge "ART: Add heap filter support"

7 years agoMerge "ART: Add klass filter support"
Treehugger Robot [Fri, 24 Feb 2017 00:09:53 +0000 (00:09 +0000)]
Merge "ART: Add klass filter support"

7 years agoMerge "ART: Ignore vreg=-1 in test 913"
Treehugger Robot [Thu, 23 Feb 2017 23:48:46 +0000 (23:48 +0000)]
Merge "ART: Ignore vreg=-1 in test 913"

7 years agoMerge "Check stacks for unmodifiable frames"
Treehugger Robot [Thu, 23 Feb 2017 23:24:22 +0000 (23:24 +0000)]
Merge "Check stacks for unmodifiable frames"

7 years agoMerge "ART: Add flag for ArtMethod class state checks"
Treehugger Robot [Thu, 23 Feb 2017 22:41:18 +0000 (22:41 +0000)]
Merge "ART: Add flag for ArtMethod class state checks"

7 years agoART: Add heap filter support
Andreas Gampe [Mon, 20 Feb 2017 22:38:55 +0000 (14:38 -0800)]
ART: Add heap filter support

Add support for heap filter to FollowReferences. Update test.

Bug: 31385354
Test: m test-art-host-run-test-913-heaps
Change-Id: I09aa2076532c5fd2afecc77bf2e31e07174df0b2

7 years agoART: Add klass filter support
Andreas Gampe [Mon, 20 Feb 2017 21:35:36 +0000 (13:35 -0800)]
ART: Add klass filter support

Add support for klass filter to FollowReferences. Update test.

Bug: 31385354
Test: m test-art-host-run-test-913-heaps
Change-Id: If8f0fb67a931fb358d99b49e774a197388796b6e

7 years agoART: Ignore vreg=-1 in test 913
Andreas Gampe [Thu, 23 Feb 2017 21:53:19 +0000 (13:53 -0800)]
ART: Ignore vreg=-1 in test 913

Compiled code may have references that do not originate from a
dalvik register, e.g., when caching values from LSE. Do not print
these roots to make the test robust wrt/ compiler changes.

Bug: 31385354
Test: m test-art-host-run-test-913-heaps
Change-Id: I804faa4cdbfd7140d0faeab877bd4fe96748a302

7 years agoCheck stacks for unmodifiable frames
Alex Light [Wed, 22 Feb 2017 19:08:06 +0000 (11:08 -0800)]
Check stacks for unmodifiable frames

We keep a generate a list of classes that have unmodifiable frames
during the zygote fork and check for them in IsModifiableClass.

Test: Start apps on aosp_marlin-userdebug phone with libartd.so

Change-Id: I6bbaa20d307c3803a5808fb4108638365895e802

7 years agoMerge "Add more comments in GetProfiledMethods"
Treehugger Robot [Thu, 23 Feb 2017 20:39:12 +0000 (20:39 +0000)]
Merge "Add more comments in GetProfiledMethods"

7 years agoMerge "Improve aarch64 MonitorEntry/Exit assembly code"
Hans Boehm [Thu, 23 Feb 2017 19:42:27 +0000 (19:42 +0000)]
Merge "Improve aarch64 MonitorEntry/Exit assembly code"

7 years agoART: Add flag for ArtMethod class state checks
Andreas Gampe [Thu, 23 Feb 2017 19:34:48 +0000 (11:34 -0800)]
ART: Add flag for ArtMethod class state checks

The checks, especially in GetAccessFlags, is expensive. To help
with running a debug build on devices, add a flag to be able to
turn the checks off.

Bug: 35644369
Test: m
Change-Id: I2a3db1a56986df8f4a8b2dc5bcb26e1bcaea0a24

7 years agoMerge "Disallow modifying java.lang.String"
Treehugger Robot [Thu, 23 Feb 2017 19:33:20 +0000 (19:33 +0000)]
Merge "Disallow modifying java.lang.String"

7 years agoFix compilation statistics collection in inliner.
Vladimir Marko [Thu, 23 Feb 2017 18:56:13 +0000 (18:56 +0000)]
Fix compilation statistics collection in inliner.

Stats from callee graph builder were not merged into main
stats and stats for callee graph optimizations were counted
even when the callee graph was eventually rejected.

Allocate the callee graph statistics on the arena.
Measured compilation of a big app using heaptrack:
  bytes allocated in total (ignoring deallocations): 3.77GB -> 3.37GB
  calls to allocation functions: 10650510 -> 8203129

Test: testrunner.py --host
Test: Stats change in the expected direction for an app.
Bug: 34053922
Change-Id: I605280d262b86af14b847acf3bb6dc077b749cc0

7 years agoMerge "ART: Add primitive array reporting"
Treehugger Robot [Thu, 23 Feb 2017 17:53:54 +0000 (17:53 +0000)]
Merge "ART: Add primitive array reporting"

7 years agoMerge "Add jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_."
Hiroshi Yamauchi [Thu, 23 Feb 2017 17:47:16 +0000 (17:47 +0000)]
Merge "Add jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_."

7 years agoUse the holder's gray bit in Baker read barrier slow paths (ARM, ARM64).
Roland Levillain [Tue, 17 Jan 2017 16:56:34 +0000 (16:56 +0000)]
Use the holder's gray bit in Baker read barrier slow paths (ARM, ARM64).

In compiler-generated code, when deciding whether to mark
a heap reference or not in a read barrier, after checking
whether the GC is currently marking, also check (in the
slow path) whether the lock word of the reference's holder
is gray, before actually marking the reference.

This change is only for ARM and ARM64, as it does not
benefit x86 nor x86-64.

Test: Run ART tests in Baker read barrier configuration.
Test: Boot a device in Baker read barrier configuration.
Bug: 29516974
Change-Id: I60595a8f4987747faeaa359ad873e9758c1ded75

7 years agoUse the "GC is marking" information in compiler read barriers (ARM, ARM64).
Roland Levillain [Fri, 13 Jan 2017 11:47:39 +0000 (11:47 +0000)]
Use the "GC is marking" information in compiler read barriers (ARM, ARM64).

In compiler-generated code, when deciding whether to mark
a heap reference or not in a read barrier, check whether
the GC is currently marking, instead of checking the gray
bit in the reference's holder's lock word.

This change is only for ARM and ARM64, as it does not
benefit x86 nor x86-64.

Test: Run ART tests in Baker read barrier configuration.
Test: Boot a device in Baker read barrier configuration.
Bug: 29516974
Change-Id: Ia5d90286bb9f753f3bbcb3a6254eb166523a2ff5

7 years agoUpdate entrypoint directly when doing JIT code cache GC.
Nicolas Geoffray [Wed, 22 Feb 2017 10:21:00 +0000 (10:21 +0000)]
Update entrypoint directly when doing JIT code cache GC.

Otherwise, the Instrumentation::UpdateMethodsCode might access
the declaring class while the GC is concurrently processing
references.

bug:35598395
test: run-libcore-tests.sh --mode=host --variant=X64
Change-Id: I0f059b1823e81672d43cf1f7eed64482f8927232

7 years agoART: Add primitive array reporting
Andreas Gampe [Thu, 23 Feb 2017 03:20:37 +0000 (19:20 -0800)]
ART: Add primitive array reporting

Add support for array_primitive_value_callback.

Bug: 31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: I2d615295bc5ad3d2579170d152e5778f56bf12cb

7 years agoAdd jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_.
Hiroshi Yamauchi [Thu, 23 Feb 2017 02:06:55 +0000 (18:06 -0800)]
Add jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_.

To avoid a DCHECK failure where event_list_lock_ is unexpectedly held
during a weak ref access.

Also move event_list_lock to Locks.

Bug: 35360959
Test: test-art-host.
Test: jdwp test.
Change-Id: I6315e1f7152058656f2479ad7b4e4f3defd15555

7 years agoMerge "Make dexlayout parse exception handlers not referenced by try blocks."
Treehugger Robot [Thu, 23 Feb 2017 01:48:52 +0000 (01:48 +0000)]
Merge "Make dexlayout parse exception handlers not referenced by try blocks."

7 years agoMerge "Check for null profile in ShouldCompileBasedOnProfile"
Mathieu Chartier [Thu, 23 Feb 2017 00:55:43 +0000 (00:55 +0000)]
Merge "Check for null profile in ShouldCompileBasedOnProfile"

7 years agoMake dexlayout parse exception handlers not referenced by try blocks.
Jeff Hao [Wed, 22 Feb 2017 22:20:41 +0000 (14:20 -0800)]
Make dexlayout parse exception handlers not referenced by try blocks.

Bug: 35451910
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: If278d16747cfb4a88f7d7312931b3f4b5ee5e058

7 years agoMerge "Fix mac build"
Mathieu Chartier [Thu, 23 Feb 2017 00:18:50 +0000 (00:18 +0000)]
Merge "Fix mac build"

7 years agoMerge "ART: Fix clean-oat-host rule"
Andreas Gampe [Thu, 23 Feb 2017 00:17:27 +0000 (00:17 +0000)]
Merge "ART: Fix clean-oat-host rule"

7 years agoFix mac build
Mathieu Chartier [Thu, 23 Feb 2017 00:07:23 +0000 (16:07 -0800)]
Fix mac build

Add some #if to accomplish this.

Test: mm
Change-Id: I934e805a0b41e172cb419a3648935c6db789ad57

7 years agoMerge "ART: Remove forced invariant checks"
Andreas Gampe [Wed, 22 Feb 2017 23:48:55 +0000 (23:48 +0000)]
Merge "ART: Remove forced invariant checks"

7 years agoMerge "dex2oat: Watchdog uses CLOCK_MONOTONIC instead of CLOCK_REALTIME"
Mathieu Chartier [Wed, 22 Feb 2017 23:15:40 +0000 (23:15 +0000)]
Merge "dex2oat: Watchdog uses CLOCK_MONOTONIC instead of CLOCK_REALTIME"

7 years agoDisallow modifying java.lang.String
Alex Light [Tue, 21 Feb 2017 23:00:48 +0000 (15:00 -0800)]
Disallow modifying java.lang.String

The optimizations we do for j.l.String mean that if agents put
profiling code j.l.String they will see a lot of surprising behaviors
(for example the String constructor is never called).

Bug: 35396224
Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: I30df68186f30f7311e2a5e36b18d807d8e91a596

7 years agoMerge "Revert "Revert "Add missing card mark verification to CC"""
Mathieu Chartier [Wed, 22 Feb 2017 22:57:04 +0000 (22:57 +0000)]
Merge "Revert "Revert "Add missing card mark verification to CC"""

7 years agoCheck for null profile in ShouldCompileBasedOnProfile
Mathieu Chartier [Wed, 22 Feb 2017 21:35:44 +0000 (13:35 -0800)]
Check for null profile in ShouldCompileBasedOnProfile

It may be null if speed-profile is passed to dex2oat without a
profile. In this case, compile nothing.

Test: mm test-art-host-gtest-dex2oat_test -j32

Bug: 35665292
Bug: 35420088

Change-Id: I2da3258492d1f6b86bba6b4bb5a86d378f0a9227

7 years agoART: Remove forced invariant checks
Andreas Gampe [Wed, 22 Feb 2017 21:36:21 +0000 (13:36 -0800)]
ART: Remove forced invariant checks

Remove 'kX || kIsDebugBuild.' Rely solely on the flag. Refactor
only, does not change default behavior.

Bug: 35644369
Test: m
Change-Id: Ieddc6c77f3fc885a0556fac6d10a5bcf06548e52

7 years agoMerge "Avoid excessive allocation of std::set<> nodes in SwapSpace."
Treehugger Robot [Wed, 22 Feb 2017 19:52:51 +0000 (19:52 +0000)]
Merge "Avoid excessive allocation of std::set<> nodes in SwapSpace."

7 years agoMerge "ART: Add string reporting"
Treehugger Robot [Wed, 22 Feb 2017 19:52:37 +0000 (19:52 +0000)]
Merge "ART: Add string reporting"

7 years agoART: Fix clean-oat-host rule
Andreas Gampe [Tue, 21 Feb 2017 19:44:04 +0000 (11:44 -0800)]
ART: Fix clean-oat-host rule

Add vdex to the rule.

Test: m && m clean-oat-host && find $OUT -name '*.vdex'
Change-Id: If04f1006b16a46b7a63955867669b2de44d9fbc8

7 years agoAdd more comments in GetProfiledMethods
Calin Juravle [Wed, 22 Feb 2017 19:49:43 +0000 (11:49 -0800)]
Add more comments in GetProfiledMethods

Explain why we are looking in the method dex file for array types.

Test: m test-art-host
Change-Id: Ib94475f79844968591f72f46a2c714f9971778ba

7 years agoMerge "ART: Remove ObjPtr kPoison template parameter"
Treehugger Robot [Wed, 22 Feb 2017 19:48:44 +0000 (19:48 +0000)]
Merge "ART: Remove ObjPtr kPoison template parameter"

7 years agoRevert "Revert "Add missing card mark verification to CC""
Mathieu Chartier [Wed, 22 Feb 2017 17:22:50 +0000 (09:22 -0800)]
Revert "Revert "Add missing card mark verification to CC""

Add missing write barrier for AddStrongRoot on the dex cache.

Test: test-art-host-run-test ART_TEST_INTERPRETER=true ART_TEST_OPTIMIZING=true ART_TEST_GC_STRESS=true

Bug: 12687968

This reverts commit 50805e747cbb7e9c8d30bd3b49e27ab0741f3cf8.

Change-Id: I72c6de2120d8e0ddc2512dd41010776aecfc9e2c

7 years agoMerge "Fix profile merges of megamorphic inline caches."
Calin Juravle [Wed, 22 Feb 2017 19:42:46 +0000 (19:42 +0000)]
Merge "Fix profile merges of megamorphic inline caches."

7 years agoART: Remove ObjPtr kPoison template parameter
Andreas Gampe [Wed, 22 Feb 2017 18:11:30 +0000 (10:11 -0800)]
ART: Remove ObjPtr kPoison template parameter

Move to a global constexpr, so that object pointer poisoning can
be explicitly turned off for lower debug build overhead.

Bug: 35644797
Test: m
Test: m test-art-host
Change-Id: I2412b67cbec144f2aee206fb48591abe581fd00a

7 years agoAvoid excessive allocation of std::set<> nodes in SwapSpace.
Vladimir Marko [Wed, 22 Feb 2017 10:57:03 +0000 (10:57 +0000)]
Avoid excessive allocation of std::set<> nodes in SwapSpace.

This does not affect the overall memory usage but avoids
a lot of deallocations followed by allocation.

Measured compilation of a big app using heap track:
  bytes allocated in total (ignoring deallocations): 4.14GB -> 4.04GB
  calls to allocation functions: 21662554 -> 19545823

Test: m test-art-host-gtest
Test: Manually check that oat file for the big app remains identical.
Bug: 34053922
Change-Id: I00568422ba5510550986e29f30bace9ae6245269

7 years agoMerge "Move StackMapStream deduplication maps to arena."
Treehugger Robot [Wed, 22 Feb 2017 14:41:46 +0000 (14:41 +0000)]
Merge "Move StackMapStream deduplication maps to arena."

7 years agoMove StackMapStream deduplication maps to arena.
Vladimir Marko [Wed, 22 Feb 2017 11:59:57 +0000 (11:59 +0000)]
Move StackMapStream deduplication maps to arena.

Measured compilation of a big app using heap track:
  bytes allocated in total (ignoring deallocations): 4.14GB -> 3.98GB
  calls to allocation functions: 21662554 -> 1016606

Test: testrunner.py --host
Bug: 34053922
Change-Id: I0b1c4b5273daa2bc35e039df246bafad417b9b2b

7 years agoMerge "Remove suppression of fixed test."
Adam Vartanian [Wed, 22 Feb 2017 12:22:31 +0000 (12:22 +0000)]
Merge "Remove suppression of fixed test."

7 years agoMerge ""Revert^4 "Remove unused code for patching oat files.""
Treehugger Robot [Wed, 22 Feb 2017 11:42:16 +0000 (11:42 +0000)]
Merge ""Revert^4 "Remove unused code for patching oat files.""

7 years agoMerge "ahat: update README and manifest for release 1.1"
Treehugger Robot [Wed, 22 Feb 2017 10:47:57 +0000 (10:47 +0000)]
Merge "ahat: update README and manifest for release 1.1"

7 years agoMerge "Revert "Add missing card mark verification to CC""
Nicolas Geoffray [Wed, 22 Feb 2017 10:12:12 +0000 (10:12 +0000)]
Merge "Revert "Add missing card mark verification to CC""

7 years agoRevert "Add missing card mark verification to CC"
Nicolas Geoffray [Wed, 22 Feb 2017 10:11:12 +0000 (10:11 +0000)]
Revert "Add missing card mark verification to CC"

Fails in read-barrier-gcstress for 944-transform-classloaders

Bug: 12687968

This reverts commit 49ba69667ce70f8efbed7d68814ab184bee53486.

Change-Id: Ie91eaa034cea77918235766983661efa14fb1a14

7 years agoFix profile merges of megamorphic inline caches.
Calin Juravle [Wed, 22 Feb 2017 03:00:33 +0000 (19:00 -0800)]
Fix profile merges of megamorphic inline caches.

Test: m test-art-host-gtest-profile_compiltion_info_test
Bug: 35644850
Change-Id: Ib213715e263869c3aa6d4f81f0b7fe17f13b84c4

7 years agoMerge "Fix handling of array types when extracting the offline inline caches"
Calin Juravle [Wed, 22 Feb 2017 02:55:36 +0000 (02:55 +0000)]
Merge "Fix handling of array types when extracting the offline inline caches"

7 years agoMerge "Add test for null set ref list item in dex layout."
Treehugger Robot [Wed, 22 Feb 2017 02:54:35 +0000 (02:54 +0000)]
Merge "Add test for null set ref list item in dex layout."

7 years agoART: Add string reporting
Andreas Gampe [Tue, 21 Feb 2017 23:49:53 +0000 (15:49 -0800)]
ART: Add string reporting

Add support for string_primitive_value_callback.

Bug: 31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: I69f68fd07869ba3a156a84fcb806821fce1d7c03

7 years agoAdd test for null set ref list item in dex layout.
Jeff Hao [Wed, 22 Feb 2017 00:14:23 +0000 (16:14 -0800)]
Add test for null set ref list item in dex layout.

Bug: 35408418
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: Ia9ac897a27dac27405f6838aaab625257c150e07

7 years agoFix handling of array types when extracting the offline inline caches
Calin Juravle [Wed, 22 Feb 2017 00:22:24 +0000 (16:22 -0800)]
Fix handling of array types when extracting the offline inline caches

Test: m test-art-host
      regression test is being worked out
Bug: 35621933

Change-Id: If762db76cc0493db8c8babab62035e915b660da5

7 years agoMerge "Fix dex2oat to handle dexlayout with non profile filters"
Mathieu Chartier [Wed, 22 Feb 2017 00:46:09 +0000 (00:46 +0000)]
Merge "Fix dex2oat to handle dexlayout with non profile filters"

7 years agoMerge "Remove obsolete TODOs"
Treehugger Robot [Wed, 22 Feb 2017 00:35:46 +0000 (00:35 +0000)]
Merge "Remove obsolete TODOs"

7 years agoMerge "Always mark reference referents in transaction mode."
Hiroshi Yamauchi [Tue, 21 Feb 2017 23:51:03 +0000 (23:51 +0000)]
Merge "Always mark reference referents in transaction mode."

7 years agoMerge "ART: Refactor test 913"
Treehugger Robot [Tue, 21 Feb 2017 23:45:19 +0000 (23:45 +0000)]
Merge "ART: Refactor test 913"

7 years agoMerge "jni: Switch to @FastNative for all JNI functions. Deprecate !bang JNI."
Treehugger Robot [Tue, 21 Feb 2017 23:42:20 +0000 (23:42 +0000)]
Merge "jni: Switch to @FastNative for all JNI functions. Deprecate !bang JNI."

7 years agoMerge "Add regression test for b/35305951"
Treehugger Robot [Tue, 21 Feb 2017 23:34:47 +0000 (23:34 +0000)]
Merge "Add regression test for b/35305951"

7 years agoMerge "Make 946 print stacktrace to System.out"
Treehugger Robot [Tue, 21 Feb 2017 23:04:33 +0000 (23:04 +0000)]
Merge "Make 946 print stacktrace to System.out"

7 years agoImprove aarch64 MonitorEntry/Exit assembly code
Hans Boehm [Tue, 17 Jan 2017 23:03:38 +0000 (15:03 -0800)]
Improve aarch64 MonitorEntry/Exit assembly code

We make two kinds of changes:

1) We remove some redundant moves, which appeared to have been copied
from some architecture with a 2 address instruction format.

2) We avoid the use of dmb barrier instructions, and instead use
acquire/release instructions for the actual lock loads/updates.

(2) is a clear win on A53/A57, where there seems to be very little
additional cost associated with acquire/release when
used with "exclusive" memory operations, as they are here.
On the cores used in 2016 Pixel phones, the story is more mixed.
But the addition of acquire/release to a pair of exclusive load/store
operations still seems to cost enough less than 2 dmb's, so that
even if 10% of lock acquisitions are nested and unnecessarily
enforce ordering, we come out slightly ahead. ARM's advice for
the future is also to move in this direction.

Test: AOSP boots. AOSP art test failures seem attributable to other
issues.

Change-Id: I2399baeab3df93196471e65612c00d95ad4e2b62

7 years agoMerge "Move testrunner.py to argparse"
Treehugger Robot [Tue, 21 Feb 2017 22:50:23 +0000 (22:50 +0000)]
Merge "Move testrunner.py to argparse"

7 years agoMerge "Add missing card mark verification to CC"
Treehugger Robot [Tue, 21 Feb 2017 22:38:36 +0000 (22:38 +0000)]
Merge "Add missing card mark verification to CC"

7 years agoMerge "ART: Rewrite JvmtiUniquePtr"
Treehugger Robot [Tue, 21 Feb 2017 22:25:57 +0000 (22:25 +0000)]
Merge "ART: Rewrite JvmtiUniquePtr"

7 years agoRemove obsolete TODOs
Alex Light [Tue, 21 Feb 2017 22:16:31 +0000 (14:16 -0800)]
Remove obsolete TODOs

There were a bunch of TODOs that are obsolete but were never removed.
Get rid of them.

Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: Icfc6a27b7e8a6423ecb56fa2ad99b54f33a7cdb5

7 years agoFix dex2oat to handle dexlayout with non profile filters
Mathieu Chartier [Tue, 21 Feb 2017 21:41:54 +0000 (13:41 -0800)]
Fix dex2oat to handle dexlayout with non profile filters

Check for the existence of a profile and not being verify-profile
instead of kSpeed.

Test: test-art-host, speed compile with filter.

Bug: 34927277
Change-Id: Id3b21c31a7a4426196aa72d73efe2e83b71cc010

7 years agoMerge "Reduce dex2oat memory usage from VariableHandleScope."
Treehugger Robot [Tue, 21 Feb 2017 21:52:52 +0000 (21:52 +0000)]
Merge "Reduce dex2oat memory usage from VariableHandleScope."

7 years agoAlways mark reference referents in transaction mode.
Hiroshi Yamauchi [Fri, 17 Feb 2017 23:33:23 +0000 (15:33 -0800)]
Always mark reference referents in transaction mode.

Fix a to-space invariant check failure in EnqueueFinalizerReferences.

Reference processing can be a problem and useless during transaction
because it's not easy to roll back what reference processing does and
there's no daemon threads running (in the unstarted runtime). To avoid
issues, always mark reference referents.

Add a do_atomic_update parameter to MarkHeapReference.

Bug: 35417063
Test: test-art-host with CC/CMS/SS.
Change-Id: If32eba8fca19ef86e5d13f7925d179c8aecb9e27

7 years agoAdd regression test for b/35305951
Mathieu Chartier [Tue, 21 Feb 2017 20:45:30 +0000 (12:45 -0800)]
Add regression test for b/35305951

Ensure that dexlayout can handle a dex file that has the same
debug_info_off_ for multiple methods.

Test: test-art-host-gtest-dexlayout_test

Bug: 35305951
Change-Id: I1283910009fec07095c99ea2288167da3766329f

7 years agoMerge "Make testrunner.py check ART_TEST_RUN_TEST_SKIP"
Treehugger Robot [Tue, 21 Feb 2017 20:43:05 +0000 (20:43 +0000)]
Merge "Make testrunner.py check ART_TEST_RUN_TEST_SKIP"