OSDN Git Service

android-x86/art.git
7 years agoMerge "ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch."
Nicolas Geoffray [Tue, 6 Dec 2016 10:12:17 +0000 (10:12 +0000)]
Merge "ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch."
am: 5677d9a815

Change-Id: Ife1ac1c4a4fd33bac190911e3f2694d0e4214ebf

7 years agoMerge "Create empty VerifiedMethod after vdex verification."
Nicolas Geoffray [Tue, 6 Dec 2016 10:11:57 +0000 (10:11 +0000)]
Merge "Create empty VerifiedMethod after vdex verification."
am: 2eace9c132

Change-Id: I234895ba7cbff5b760275a2e2ba4581b47aba4e8

7 years agoMerge "ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch."
Nicolas Geoffray [Tue, 6 Dec 2016 10:06:49 +0000 (10:06 +0000)]
Merge "ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch."

7 years agoMerge "Create empty VerifiedMethod after vdex verification."
Nicolas Geoffray [Tue, 6 Dec 2016 10:06:13 +0000 (10:06 +0000)]
Merge "Create empty VerifiedMethod after vdex verification."

7 years agoMerge "Address comments I missed on a previous CL"
Alex Light [Mon, 5 Dec 2016 21:17:09 +0000 (21:17 +0000)]
Merge "Address comments I missed on a previous CL"
am: e4cdd4dbcb

Change-Id: I088e2c8dbfc750f35c11b90f35ec2bb7cff7e478

7 years agoMerge "Address comments I missed on a previous CL"
Treehugger Robot [Mon, 5 Dec 2016 21:08:20 +0000 (21:08 +0000)]
Merge "Address comments I missed on a previous CL"

7 years agoMerge "Dump more debug info for b/33006388."
Hiroshi Yamauchi [Mon, 5 Dec 2016 19:08:30 +0000 (19:08 +0000)]
Merge "Dump more debug info for b/33006388."
am: ab1b1c06a7

Change-Id: I0022558d790e1f12b02dcf6d7a0fdd84e2d6612f

7 years agoMerge "Dump more debug info for b/33006388."
Hiroshi Yamauchi [Mon, 5 Dec 2016 19:00:37 +0000 (19:00 +0000)]
Merge "Dump more debug info for b/33006388."

7 years agoMerge "ART: Clean up Thread"
Andreas Gampe [Mon, 5 Dec 2016 17:51:55 +0000 (17:51 +0000)]
Merge "ART: Clean up Thread"
am: 8205d17159

Change-Id: I2b8c53bf300ae245161a3a1f5654b56fb4e961ef

7 years agoMerge "ART: Clean up Thread"
Treehugger Robot [Mon, 5 Dec 2016 17:49:35 +0000 (17:49 +0000)]
Merge "ART: Clean up Thread"

7 years agoAddress comments I missed on a previous CL
Alex Light [Sat, 3 Dec 2016 01:27:31 +0000 (17:27 -0800)]
Address comments I missed on a previous CL

I accidentally missed some comments on
android-review.googlesource.com/c/305518 when I submitted it. This
addresses those comments.

Test: mma -j40 test-art-host
Change-Id: Icd8ff65dee1730d10489f25e75bddbd455c68413

7 years agoMerge "ART: Weaken boot classpath initialization check"
Andreas Gampe [Mon, 5 Dec 2016 16:13:21 +0000 (16:13 +0000)]
Merge "ART: Weaken boot classpath initialization check"
am: a8db0a9599

Change-Id: I08b87543fca0e75b18fe348e8ad05f9212306869

7 years agoMerge "ART: Weaken boot classpath initialization check"
Treehugger Robot [Mon, 5 Dec 2016 16:08:58 +0000 (16:08 +0000)]
Merge "ART: Weaken boot classpath initialization check"

7 years agoCreate empty VerifiedMethod after vdex verification.
Nicolas Geoffray [Fri, 25 Nov 2016 15:56:12 +0000 (15:56 +0000)]
Create empty VerifiedMethod after vdex verification.

The compiler and quicken require the existence of a
VerifiedMethod for compiling a method.

This fixes the regression of not doing any compilation when
passed --input-vdex.

Test: 629-vdex-speed

Change-Id: Ie65578eadd09099df1c1a403d96c15e5da78a901

7 years agoARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch.
Artem Serov [Fri, 4 Nov 2016 11:19:09 +0000 (11:19 +0000)]
ARM: VIXL32: Implement Invoke, LoadClass, LoadString dispatch.

Implemented dispatch optimizations for InvokeStaticOrDirect,
LoadClass, LoadString (excluding cases that use Literals).
Performed a cleanup of VIXL backend.

Test: export ART_USE_VIXL_ARM_BACKEND=true && \
      mma test-art-host dist && mma test-art-target dist

Change-Id: Ib37a6b7e7657196b13caec999d190be747857c1d

7 years agoMerge "Re-enable libcore test WeakHashMapTest#test_keySet."
Roland Levillain [Mon, 5 Dec 2016 11:49:08 +0000 (11:49 +0000)]
Merge "Re-enable libcore test WeakHashMapTest#test_keySet."
am: be5d0cdb38

Change-Id: I19a21552361eea0110109093db28391ada462f39

7 years agoMerge "Re-enable libcore test WeakHashMapTest#test_keySet."
Roland Levillain [Mon, 5 Dec 2016 11:45:13 +0000 (11:45 +0000)]
Merge "Re-enable libcore test WeakHashMapTest#test_keySet."

7 years agoMerge "Don't use an internal timeout, rely on the test harness one."
Nicolas Geoffray [Mon, 5 Dec 2016 11:23:06 +0000 (11:23 +0000)]
Merge "Don't use an internal timeout, rely on the test harness one."
am: 3d32bf0b1e

Change-Id: Ib30b33778da6d4d27f3c98ff0c6f22b86ce566c3

7 years agoMerge "Set the root table size when allocating."
Nicolas Geoffray [Mon, 5 Dec 2016 11:19:39 +0000 (11:19 +0000)]
Merge "Set the root table size when allocating."
am: 2bafa0e575

Change-Id: Ib9a14d963790c0233bbfa416da8ad811fd8503d1

7 years agoMerge "Don't use an internal timeout, rely on the test harness one."
Nicolas Geoffray [Mon, 5 Dec 2016 11:16:59 +0000 (11:16 +0000)]
Merge "Don't use an internal timeout, rely on the test harness one."

7 years agoMerge "Set the root table size when allocating."
Nicolas Geoffray [Mon, 5 Dec 2016 11:15:04 +0000 (11:15 +0000)]
Merge "Set the root table size when allocating."

7 years agoMerge "Set the location checksum in vdex."
Nicolas Geoffray [Mon, 5 Dec 2016 10:12:02 +0000 (10:12 +0000)]
Merge "Set the location checksum in vdex."
am: 3acf361425

Change-Id: If6650c2962be548c47f635500c18563df2cff5dc

7 years agoMerge "Set the location checksum in vdex."
Nicolas Geoffray [Mon, 5 Dec 2016 10:08:07 +0000 (10:08 +0000)]
Merge "Set the location checksum in vdex."

7 years agoSet the root table size when allocating.
Nicolas Geoffray [Mon, 5 Dec 2016 00:10:09 +0000 (00:10 +0000)]
Set the root table size when allocating.

In order to deallocate it at any point.

test: ART_TEST_JIT=true m test-art-host-run-test-jit
Change-Id: I36574fd1a34c9d67800a164fa801db7a17c827bf

7 years agoDon't use an internal timeout, rely on the test harness one.
Nicolas Geoffray [Sun, 4 Dec 2016 22:32:24 +0000 (22:32 +0000)]
Don't use an internal timeout, rely on the test harness one.

test: 522-checker-regression-monitor-exit
Change-Id: Ida2ebd609f2902908476f1061459838f0c181f1a

7 years agoMerge "Disable test 080 for GSS"
Mathieu Chartier [Sat, 3 Dec 2016 07:40:01 +0000 (07:40 +0000)]
Merge "Disable test 080 for GSS"
am: 3bdc662e71

Change-Id: I9d5e60a1597c11effb36df50b6936c9aab1f16e8

7 years agoMerge "Disable test 080 for GSS"
Treehugger Robot [Sat, 3 Dec 2016 07:36:24 +0000 (07:36 +0000)]
Merge "Disable test 080 for GSS"

7 years agoDisable test 080 for GSS
Mathieu Chartier [Sat, 3 Dec 2016 02:35:16 +0000 (18:35 -0800)]
Disable test 080 for GSS

Failing due to space sizing.

Test: test-art-host-run-test ART_DEFAULT_GC_TYPE=GSS ART_USE_TLAB=true ART_TEST_OPTIMIZING=true ART_TEST_INTERPRETER=true ART_TEST_JIT=true ART_USE_READ_BARRIER=false

Change-Id: I7a899395b547f3c49b7edba3500e18674aecda24

7 years agoMerge "Cleanup of redefinition testing"
Alex Light [Sat, 3 Dec 2016 02:53:13 +0000 (02:53 +0000)]
Merge "Cleanup of redefinition testing"
am: b53347ee64

Change-Id: Id292feb565060ff59196dd98ba392eab93890423

7 years agoMerge "Cleanup of redefinition testing"
Treehugger Robot [Sat, 3 Dec 2016 02:49:23 +0000 (02:49 +0000)]
Merge "Cleanup of redefinition testing"

7 years agoDump more debug info for b/33006388.
Hiroshi Yamauchi [Sat, 3 Dec 2016 01:01:51 +0000 (17:01 -0800)]
Dump more debug info for b/33006388.

Bug: 33006388
Bug: 12687968
Test: test-art-host with CC.
Change-Id: Id9d67bc603c6ff7bc8e346e181e3e09ffbda43b3

7 years agoMerge "ART: Clean up ClassLinker"
Andreas Gampe [Sat, 3 Dec 2016 01:25:08 +0000 (01:25 +0000)]
Merge "ART: Clean up ClassLinker"
am: 0480523e01

Change-Id: I30752bcdd1d48e3f9a0cc031b2c74255f4973bca

7 years agoART: Clean up Thread
Andreas Gampe [Mon, 28 Nov 2016 16:10:18 +0000 (08:10 -0800)]
ART: Clean up Thread

Move debug code to .cc, simplify includes.

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

7 years agoMerge "ART: Clean up ClassLinker"
Treehugger Robot [Sat, 3 Dec 2016 01:20:05 +0000 (01:20 +0000)]
Merge "ART: Clean up ClassLinker"

7 years agoMerge "Add more detail to rosalloc fragmentation OOME"
Mathieu Chartier [Fri, 2 Dec 2016 22:48:27 +0000 (22:48 +0000)]
Merge "Add more detail to rosalloc fragmentation OOME"
am: b487af4fc8

Change-Id: Ieb283bb39a973a2b44b8df67f3449deea5a8f1c4

7 years agoMerge "Add more detail to rosalloc fragmentation OOME"
Mathieu Chartier [Fri, 2 Dec 2016 22:44:34 +0000 (22:44 +0000)]
Merge "Add more detail to rosalloc fragmentation OOME"

7 years agoCleanup of redefinition testing
Alex Light [Fri, 2 Dec 2016 19:40:56 +0000 (11:40 -0800)]
Cleanup of redefinition testing

Move redefine logic into a single common function and perform some
other cleanup.

Test: mma -j40 test-art-host
Change-Id: I8618bda4f392b683ce198374066e356b87578e7b

7 years agoART: Clean up ClassLinker
Andreas Gampe [Fri, 2 Dec 2016 00:58:38 +0000 (16:58 -0800)]
ART: Clean up ClassLinker

Try to clean up and simplify ClassLinker.

Move dex_lock to Locks. Remove dead code. Move single-use
code to user. Hide implementation details from header.

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

7 years agoAdd more detail to rosalloc fragmentation OOME
Mathieu Chartier [Fri, 2 Dec 2016 01:41:17 +0000 (17:41 -0800)]
Add more detail to rosalloc fragmentation OOME

Also include total number of free page bytes, space footprint, and
space max capacity.

Sample output:
Throwing OutOfMemoryError "Failed to allocate a 7012 byte allocation
with 103464 free bytes and 101KB until OOM; failed due to
fragmentation (required continguous free 8192 bytes, largest
contiguous free 4096 bytes, total free pages 4096 bytes, space
footprint 268435456 bytes, space max capacity 268435456 bytes)

Added a basic test to ensure the allocator coalesces properly.

Bug: 32997082

Test: test-art-host

Change-Id: I642b6ad34b98f6d98c10f242a6f6e926e0b42acc

7 years agoMerge "ART: Fix typo in IsCallerSave"
Matthew Gharrity [Fri, 2 Dec 2016 16:39:54 +0000 (16:39 +0000)]
Merge "ART: Fix typo in IsCallerSave"
am: 5d0c3009fc

Change-Id: I0cbdf5251244865019287d42d8aa1711127b11f5

7 years agoMerge "ART: Delete unnecessary ScopedObjectAccess"
Andreas Gampe [Fri, 2 Dec 2016 16:39:35 +0000 (16:39 +0000)]
Merge "ART: Delete unnecessary ScopedObjectAccess"
am: 9d7ae2eaa2

Change-Id: I969245e17d709add1bb39ec124e300f7c54001d4

7 years agoMerge "ART: Fix typo in IsCallerSave"
Treehugger Robot [Fri, 2 Dec 2016 16:32:43 +0000 (16:32 +0000)]
Merge "ART: Fix typo in IsCallerSave"

7 years agoART: Fix typo in IsCallerSave
Matthew Gharrity [Mon, 15 Aug 2016 14:56:41 +0000 (07:56 -0700)]
ART: Fix typo in IsCallerSave

Correctly refer to floating point registers, if necessary. This
ensures that we correctly start allocating caller-save FPRs.

Bug: 31275200
Test: ART_TEST_OPTIMIZING_GRAPH_COLOR=true m test-art-host
Change-Id: I420b66f0a000636e8370c739003de3cf53af3e30

7 years agoMerge "ART: Delete unnecessary ScopedObjectAccess"
Treehugger Robot [Fri, 2 Dec 2016 16:30:41 +0000 (16:30 +0000)]
Merge "ART: Delete unnecessary ScopedObjectAccess"

7 years agoMerge "ART: Add verifier support for invoke-polymorphic."
Orion Hodson [Fri, 2 Dec 2016 12:01:48 +0000 (12:01 +0000)]
Merge "ART: Add verifier support for invoke-polymorphic."
am: c571e73e21

Change-Id: Ib0baa5116c56cde81f404a7c3a6064e2387a4e0e

7 years agoMerge "ART: Add verifier support for invoke-polymorphic."
Treehugger Robot [Fri, 2 Dec 2016 11:52:14 +0000 (11:52 +0000)]
Merge "ART: Add verifier support for invoke-polymorphic."

7 years agoART: Add verifier support for invoke-polymorphic.
Orion Hodson [Thu, 13 Oct 2016 09:25:54 +0000 (10:25 +0100)]
ART: Add verifier support for invoke-polymorphic.

Change-Id: I1e1860cad80db46320c3ef5a9eaceb7529ea68d7
Bug: 30550796,33099829,33191712
Test: make test-art-host

7 years agoART: Delete unnecessary ScopedObjectAccess
Andreas Gampe [Fri, 2 Dec 2016 03:32:26 +0000 (19:32 -0800)]
ART: Delete unnecessary ScopedObjectAccess

This isn't protecting or serializing anything. Reduces
dex2oatd compile time.

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

7 years agoMerge "Fix PACKED for jvalue"
Mathieu Chartier [Fri, 2 Dec 2016 01:01:07 +0000 (01:01 +0000)]
Merge "Fix PACKED for jvalue"
am: edcd7929e2

Change-Id: I2d9fcec1b9cdc36fa48ec572dc3580173c99ca22

7 years agoMerge "Fix PACKED for jvalue"
Mathieu Chartier [Fri, 2 Dec 2016 00:51:49 +0000 (00:51 +0000)]
Merge "Fix PACKED for jvalue"

7 years agoMerge "Class Hierarchy Analysis (CHA)"
Mingyao Yang [Thu, 1 Dec 2016 23:38:03 +0000 (23:38 +0000)]
Merge "Class Hierarchy Analysis (CHA)"
am: 141c6f68d4

Change-Id: I7811780d767d2d3a70584b2fb6f207e1acd52119

7 years agoMerge "Class Hierarchy Analysis (CHA)"
Mingyao Yang [Thu, 1 Dec 2016 23:28:54 +0000 (23:28 +0000)]
Merge "Class Hierarchy Analysis (CHA)"

7 years agoFix PACKED for jvalue
Mathieu Chartier [Thu, 1 Dec 2016 22:54:38 +0000 (14:54 -0800)]
Fix PACKED for jvalue

Make it only as packed as alignof(mirror::Object*).

Bug: 31532493

Test: mm test-art-host

Change-Id: I242c549bcc9203d3173f204264b0dc2f2f8e3441

7 years agoMerge "ART: Cache sections for sanity check"
Andreas Gampe [Thu, 1 Dec 2016 23:07:31 +0000 (23:07 +0000)]
Merge "ART: Cache sections for sanity check"
am: e20fe27a28

Change-Id: Ia7e9e5c5394c88792032a43f3c4e049ddd9cf6ea

7 years agoMerge "ART: Cache sections for sanity check"
Treehugger Robot [Thu, 1 Dec 2016 23:00:43 +0000 (23:00 +0000)]
Merge "ART: Cache sections for sanity check"

7 years agoSet the location checksum in vdex.
Nicolas Geoffray [Thu, 1 Dec 2016 10:45:08 +0000 (10:45 +0000)]
Set the location checksum in vdex.

The checksum we check against at runtime isn't the dex checksum
if we are compiling a jar/apk, but the crc32 of the entry.

This is to optimize the check at startup and avoid reading the
contents of the zip file.

Because with vdex we do not want to open the zip file, (the test
has been done already in getDexOptNeeded), and cannot rely
on the .oat file for fetching it, put the location checksum in
the vdex directly.

Note for later refactorings: the dex checksum location is now
in the vdex file, but also in the oat file. This can be revisited
after we eventually cleanup OatDexFile.

Test: 629-vdex
bug: 30937355
Change-Id: I7af8ca63b889370c660d694dd4eb95e78f566a1c

7 years agoMerge "Add LoadString kind of kJitTableAddress for dump-cfg."
Mingyao Yang [Thu, 1 Dec 2016 20:17:19 +0000 (20:17 +0000)]
Merge "Add LoadString kind of kJitTableAddress for dump-cfg."
am: 5eb1e1e734

Change-Id: I9b03785fc992884ad04c8daaec7d03c2b87ff8dd

7 years agoMerge "Add LoadString kind of kJitTableAddress for dump-cfg."
Mingyao Yang [Thu, 1 Dec 2016 19:59:50 +0000 (19:59 +0000)]
Merge "Add LoadString kind of kJitTableAddress for dump-cfg."

7 years agoART: Cache sections for sanity check
Andreas Gampe [Thu, 1 Dec 2016 19:37:33 +0000 (11:37 -0800)]
ART: Cache sections for sanity check

Cache image sections for ArtMethod image sanity checks. Reduces
executed instructions in debug builds.

$ perf stat -e instructions:u -B dex2oatd ... HelloWorld.dex
Before: 36,024,262,237      instructions:u
After:  20,351,917,735      instructions:u

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

7 years agoMerge "Change Dex2oatLayoutTest to generate profile itself."
Jeff Hao [Thu, 1 Dec 2016 19:25:46 +0000 (19:25 +0000)]
Merge "Change Dex2oatLayoutTest to generate profile itself."
am: 48d08a4233

Change-Id: I5687718db1f0ceb10b88a34db907c3220e77bcde

7 years agoClass Hierarchy Analysis (CHA)
Mingyao Yang [Tue, 2 Aug 2016 18:02:54 +0000 (11:02 -0700)]
Class Hierarchy Analysis (CHA)

The class linker now tracks whether a method has a single implementation
and if so, the JIT compiler will try to devirtualize a virtual call for
the method into a direct call. If the single-implementation assumption
is violated due to additional class linking, compiled code that makes the
assumption is invalidated. Deoptimization is triggered for compiled code
live on stack. Instead of patching return pc's on stack, a CHA guard is
added which checks a hidden should_deoptimize flag for deoptimization.
This approach limits the number of deoptimization points.

This CL does not devirtualize abstract/interface method invocation.

Slides on CHA:
https://docs.google.com/a/google.com/presentation/d/1Ax6cabP1vM44aLOaJU3B26n5fTE9w5YU-1CRevIDsBc/edit?usp=sharing

Change-Id: I18bf716a601b6413b46312e925a6ad9e4008efa4
Test: ART_TEST_JIT=true m test-art-host/target-run-test test-art-host-gtest

7 years agoMerge "Change Dex2oatLayoutTest to generate profile itself."
Treehugger Robot [Thu, 1 Dec 2016 19:09:15 +0000 (19:09 +0000)]
Merge "Change Dex2oatLayoutTest to generate profile itself."

7 years agoMerge "Revert "Make sure that const-class linkage is preserved, try again.""
Vladimir Marko [Thu, 1 Dec 2016 17:59:42 +0000 (17:59 +0000)]
Merge "Revert "Make sure that const-class linkage is preserved, try again.""
am: 75d564e450

Change-Id: I401c0bf194fe814a34996055c2e4d150556245cc

7 years agoMerge "Revert "Make sure that const-class linkage is preserved, try again.""
Vladimir Marko [Thu, 1 Dec 2016 17:49:08 +0000 (17:49 +0000)]
Merge "Revert "Make sure that const-class linkage is preserved, try again.""

7 years agoRevert "Make sure that const-class linkage is preserved, try again."
Vladimir Marko [Thu, 1 Dec 2016 17:42:00 +0000 (17:42 +0000)]
Revert "Make sure that const-class linkage is preserved, try again."

Reverting due to test failures as expected.

Bug: 30627598
Bug: 33231647

This reverts commit cb5ab35980a86b05586c402924d2e7ca9df25758.
Squashed revert "Additional debug logging for bug 33231647."
    This reverts commit 00a441033db28d243fc33692d30eb2755fa81728.

Change-Id: I0c0ee1f70d47540fec99f8a797ce13571c16147c

7 years agoART: Weaken boot classpath initialization check
Andreas Gampe [Wed, 30 Nov 2016 18:13:19 +0000 (10:13 -0800)]
ART: Weaken boot classpath initialization check

Only abort in debug builds. Warn in non-debug mode.

Bug: 33265291
Test: m test-art-host
Change-Id: I288303cd7790a8b796f8b0717170861ea65e1f8c

7 years agoMerge "Additional debug logging for bug 33231647."
Vladimir Marko [Thu, 1 Dec 2016 16:11:34 +0000 (16:11 +0000)]
Merge "Additional debug logging for bug 33231647."
am: 6afaa42f50

Change-Id: Ia828c033c0dc304ed95f27caf233a494fbfa92b4

7 years agoMerge "Additional debug logging for bug 33231647."
Vladimir Marko [Thu, 1 Dec 2016 16:00:56 +0000 (16:00 +0000)]
Merge "Additional debug logging for bug 33231647."

7 years agoAdditional debug logging for bug 33231647.
Vladimir Marko [Thu, 1 Dec 2016 14:40:02 +0000 (14:40 +0000)]
Additional debug logging for bug 33231647.

Bug: 33231647
Test: m test-art-host
Change-Id: I5847ce92be5f588852e04ff44fe6eca19f363b93

7 years agoMerge "Mterp/arm64: Add CFI directives."
Vladimir Marko [Thu, 1 Dec 2016 15:01:01 +0000 (15:01 +0000)]
Merge "Mterp/arm64: Add CFI directives."
am: 4e1a19b2e2

Change-Id: Ic153b79632b1a7304a220b9a248f1def324a9d16

7 years agoMerge "Mterp/arm64: Add CFI directives."
Vladimir Marko [Thu, 1 Dec 2016 14:53:54 +0000 (14:53 +0000)]
Merge "Mterp/arm64: Add CFI directives."

7 years agoMterp/arm64: Add CFI directives.
Vladimir Marko [Thu, 1 Dec 2016 11:53:54 +0000 (11:53 +0000)]
Mterp/arm64: Add CFI directives.

Also add two bug 31975598 workarounds to arm64 entrypoints.

Test: m ART_TEST_INTERPRETER=true test-art-target
Bug: 31456348
Bug: 31975598
Change-Id: Ibf64160cf3b3f1ef644ff8f051ab7dc89643acf3

7 years agoMerge "Make sure that const-class linkage is preserved, try again."
Vladimir Marko [Thu, 1 Dec 2016 12:19:22 +0000 (12:19 +0000)]
Merge "Make sure that const-class linkage is preserved, try again."
am: 9036914553

Change-Id: I28498fa06cfcb2a75ce7f87fc60d5ea0f63ef193

7 years agoMerge "Make sure that const-class linkage is preserved, try again."
Treehugger Robot [Thu, 1 Dec 2016 12:11:07 +0000 (12:11 +0000)]
Merge "Make sure that const-class linkage is preserved, try again."

7 years agoMake sure that const-class linkage is preserved, try again.
Vladimir Marko [Wed, 30 Nov 2016 15:31:13 +0000 (15:31 +0000)]
Make sure that const-class linkage is preserved, try again.

This CL causes occasional test failures on the build servers
which we were not able to reproduce locally. So we add some
some additional debug output to help pinpoint the cause.

Bug: 30627598
Bug: 33231647
Test: m test-art-host

This reverts commit 171cf811a1cdf8b1cbc5151505d8630741ce4cf3.

Change-Id: Id56a3f0e86e8212fd547e09c61794401bff47fb0

7 years agoMerge "ARM: VIXL32: A couple of fixes to have more tests passing."
Nicolas Geoffray [Thu, 1 Dec 2016 09:15:58 +0000 (09:15 +0000)]
Merge "ARM: VIXL32: A couple of fixes to have more tests passing."
am: 982e0bf9ed

Change-Id: I57c2634b6508ced3b095aad2a60ca7db0fac9162

7 years agoMerge "Remove the fast path in art_quick_resolve_string."
Nicolas Geoffray [Thu, 1 Dec 2016 09:15:41 +0000 (09:15 +0000)]
Merge "Remove the fast path in art_quick_resolve_string."
am: 85b38bd1fd

Change-Id: I16a4aadc2f34516580d018b0fef8fa5b12a100d5

7 years agoMerge "ARM: VIXL32: A couple of fixes to have more tests passing."
Nicolas Geoffray [Thu, 1 Dec 2016 09:12:31 +0000 (09:12 +0000)]
Merge "ARM: VIXL32: A couple of fixes to have more tests passing."

7 years agoMerge "Remove the fast path in art_quick_resolve_string."
Nicolas Geoffray [Thu, 1 Dec 2016 09:07:35 +0000 (09:07 +0000)]
Merge "Remove the fast path in art_quick_resolve_string."

7 years agoMerge "Move compiled methods to use AtomicMethodRefMap"
Mathieu Chartier [Thu, 1 Dec 2016 02:09:43 +0000 (02:09 +0000)]
Merge "Move compiled methods to use AtomicMethodRefMap"
am: 2ba0c377ec

Change-Id: Ifeb213ca7ca1e27fda641e0b0e537e3d3076a4ef

7 years agoMerge "Move compiled methods to use AtomicMethodRefMap"
Mathieu Chartier [Thu, 1 Dec 2016 02:02:43 +0000 (02:02 +0000)]
Merge "Move compiled methods to use AtomicMethodRefMap"

7 years agoMerge "Optimizations around escape analysis. With tests."
Aart Bik [Thu, 1 Dec 2016 00:53:10 +0000 (00:53 +0000)]
Merge "Optimizations around escape analysis. With tests."
am: 679ba8d5d5

Change-Id: I78b8d4d3da19997158f45d9f2fd75578de87842f

7 years agoMerge "Optimizations around escape analysis. With tests."
Treehugger Robot [Thu, 1 Dec 2016 00:45:27 +0000 (00:45 +0000)]
Merge "Optimizations around escape analysis. With tests."

7 years agoMerge "Infrastructure for obsolete methods"
Alex Light [Wed, 30 Nov 2016 23:12:08 +0000 (23:12 +0000)]
Merge "Infrastructure for obsolete methods"
am: 0fd9a7d678

Change-Id: I1cf9630b5f5363334bc37e6f81b1dc733efa1c66

7 years agoMerge "Infrastructure for obsolete methods"
Alex Light [Wed, 30 Nov 2016 23:01:31 +0000 (23:01 +0000)]
Merge "Infrastructure for obsolete methods"

7 years agoAdd LoadString kind of kJitTableAddress for dump-cfg.
Mingyao Yang [Wed, 30 Nov 2016 22:17:32 +0000 (14:17 -0800)]
Add LoadString kind of kJitTableAddress for dump-cfg.

Test: manual

Change-Id: Ifcae7b26f666930766635d8b3ed7a495494cddf7

7 years agoOptimizations around escape analysis. With tests.
Aart Bik [Wed, 16 Nov 2016 18:17:46 +0000 (10:17 -0800)]
Optimizations around escape analysis. With tests.

Details:
(1) added new intrinsics
(2) implemented optimizations
      more !can be null information
      more null check removals
      replace return-this uses with incoming parameter
      remove dead StringBuffer/Builder calls (with escape analysis)
(3) Fixed exposed bug in CanBeMoved()

Performance gain:
This improves CafeineString by about 360%
(removes null check from first loop, eliminates second loop completely)

Test: test-art-host

Change-Id: Iaf16a1b9cab6a7386f43d71c6b51dd59600e81c1

7 years agoMove compiled methods to use AtomicMethodRefMap
Mathieu Chartier [Wed, 23 Nov 2016 21:45:58 +0000 (13:45 -0800)]
Move compiled methods to use AtomicMethodRefMap

Use AtomicMethodRefMap to avoid locking and map costs.

Native RAM usage for interpret-only compile FB:
71270192B -> 64117168B

Perf:
CompilerDriver::GetCompiledMethod: 0.88% -> 0.04%
Mutex::ExclusiveLock: 1.55% -> 1.05%

Bug: 32641252

Test: test-art-host-run-test

Change-Id: I146e7bf2f3328b4fa84f2cc19d591f4da82dccfc

7 years agoMerge "Revert "Revert CC related changes.""
Mathieu Chartier [Wed, 30 Nov 2016 21:08:55 +0000 (21:08 +0000)]
Merge "Revert "Revert CC related changes.""
am: 07ab8831ff

Change-Id: Ibd61ac9cbce9269f084a60eed6b2f71a74c8320f

7 years agoMerge "Revert "Revert CC related changes.""
Mathieu Chartier [Wed, 30 Nov 2016 21:02:25 +0000 (21:02 +0000)]
Merge "Revert "Revert CC related changes.""

7 years agoMerge "Add release fence after copying object"
Mathieu Chartier [Wed, 30 Nov 2016 20:58:24 +0000 (20:58 +0000)]
Merge "Add release fence after copying object"
am: 7874c0c926

Change-Id: Ibf553d90eac400406cb32ba66f6e5be94fb6bf73

7 years agoMerge "Add release fence after copying object"
Mathieu Chartier [Wed, 30 Nov 2016 20:44:42 +0000 (20:44 +0000)]
Merge "Add release fence after copying object"

7 years agoMerge "Add atomic method reference map"
Mathieu Chartier [Wed, 30 Nov 2016 19:55:21 +0000 (19:55 +0000)]
Merge "Add atomic method reference map"
am: 392fb010a7

Change-Id: I29b36b6868d52fb197cfcde7804fd417251a3238

7 years agoMerge "Add atomic method reference map"
Mathieu Chartier [Wed, 30 Nov 2016 19:40:48 +0000 (19:40 +0000)]
Merge "Add atomic method reference map"

7 years agoAdd atomic method reference map
Mathieu Chartier [Wed, 23 Nov 2016 21:28:16 +0000 (13:28 -0800)]
Add atomic method reference map

Less RAM usage and faster than using a normal map with
MethodReference. Speed is faster by avoiding locking and tree
traversal. RAM usage is lower since the map usually had a value
for most method references.

Plan on using for marking methods for dex2dex, storing compiled
methods. Also use the new map for VerifiedMethods (refactoring).

Added test.

Bug: 32641252

Test: test-art-host-run-test

Change-Id: I46268031b8e0daf9be3597145cf6ecf579a039e2

7 years agoRevert "Revert CC related changes."
Mathieu Chartier [Wed, 30 Nov 2016 18:15:41 +0000 (10:15 -0800)]
Revert "Revert CC related changes."

Disable entrypoint switching in ResetQuickAllocEntryPointsForThread
instead of callers. Fixes bug where instrumentation would switch
to non CC entrypoints for non X86_64 architectures causing aborts.

Bug: 31018974

Test: test-art-host
Test: test/run-test 099

This reverts commit 96172e0172c5fca6e9a5ad4b857a24d8c7b064e5.

Change-Id: If206694ae35ff4446c6a8a97bfbcbf2dac35e3f9

7 years agoChange Dex2oatLayoutTest to generate profile itself.
Jeff Hao [Mon, 28 Nov 2016 19:53:33 +0000 (11:53 -0800)]
Change Dex2oatLayoutTest to generate profile itself.

Changed from a pre-generated base64 profile. This makes the test work
even if the dex file differs due to Jack changes.

Bug: 33091768
Test: mm test-art-host-gtest-dex2oat_test

Change-Id: I22b8c20ae1ab57efe66684ba38f5c128e6c089fd

7 years agoMerge "ART: Add dex::StringIndex"
Andreas Gampe [Wed, 30 Nov 2016 18:30:45 +0000 (18:30 +0000)]
Merge "ART: Add dex::StringIndex"
am: 211fd80290

Change-Id: Ic693797b08729ba2e400657a8106bec1f8c22190

7 years agoInfrastructure for obsolete methods
Alex Light [Tue, 15 Nov 2016 18:43:06 +0000 (10:43 -0800)]
Infrastructure for obsolete methods

This adds some of the structures and functions needed to eventually
support obsolete methods. Specifically this adds the code to create
and iterate through the obsolete dex-cache maps of classes and
re-organizes the redefinition code to be more sensible and extensible.

Bug: 32369913
Test: ./test/run-test --host 902
Test: mma -j40 test-art-host

Change-Id: I93d60fa66e7512e8b059cdf42af8a56e93ef4bd7

7 years agoMerge "ART: Add dex::StringIndex"
Treehugger Robot [Wed, 30 Nov 2016 18:21:22 +0000 (18:21 +0000)]
Merge "ART: Add dex::StringIndex"