OSDN Git Service

android-x86/art.git
8 years agoMerge \\"Revert \\"Revert \\"ART: Add dex2oat swap usage test\\"\\"\\" am: edbecee66f
Andreas Gampe [Mon, 25 Jul 2016 17:41:31 +0000 (17:41 +0000)]
Merge \\"Revert \\"Revert \\"ART: Add dex2oat swap usage test\\"\\"\\" am: edbecee66f
am: 37d11c693a

Change-Id: Ia5b8bc6d23018bf14b9200ef74899ba7558b8449

8 years agoMerge \"Revert \"Revert \"ART: Add dex2oat swap usage test\"\"\"
Andreas Gampe [Mon, 25 Jul 2016 17:37:01 +0000 (17:37 +0000)]
Merge \"Revert \"Revert \"ART: Add dex2oat swap usage test\"\"\"
am: edbecee66f

Change-Id: I3321270cf3746b172208b628dbddc968db1c5482

8 years agoMerge "Revert "Revert "ART: Add dex2oat swap usage test"""
Treehugger Robot [Mon, 25 Jul 2016 17:27:55 +0000 (17:27 +0000)]
Merge "Revert "Revert "ART: Add dex2oat swap usage test"""

8 years agoMerge \\"Add fast path to arm64 READ_BARRIER macro\\" am: a71ad9a2d3
Mathieu Chartier [Mon, 25 Jul 2016 16:56:26 +0000 (16:56 +0000)]
Merge \\"Add fast path to arm64 READ_BARRIER macro\\" am: a71ad9a2d3
am: fb2092dab3

Change-Id: Ie0dedfae86f63ecfa0cf393d372070ea42fbfa0a

8 years agoMerge \"Add fast path to arm64 READ_BARRIER macro\"
Mathieu Chartier [Mon, 25 Jul 2016 16:52:59 +0000 (16:52 +0000)]
Merge \"Add fast path to arm64 READ_BARRIER macro\"
am: a71ad9a2d3

Change-Id: I0bebdeed40c436e59f294e2c2b94c7ac6085b374

8 years agoMerge "Add fast path to arm64 READ_BARRIER macro"
Mathieu Chartier [Mon, 25 Jul 2016 16:44:33 +0000 (16:44 +0000)]
Merge "Add fast path to arm64 READ_BARRIER macro"

8 years agoRevert "Revert "ART: Add dex2oat swap usage test""
Andreas Gampe [Mon, 25 Jul 2016 15:27:35 +0000 (08:27 -0700)]
Revert "Revert "ART: Add dex2oat swap usage test""

Now correctly ignores the target (but with enough infrastructure
to introduce this some day).

This reverts commit ec743ffd47ac9d3c10a449926d78c2eb51e5208e.

Bug: 29259363
Test: m test-art-host-gtest-dex2oat_test
Test: m test-art-target-gtest-dex2oat_test (shamu)
Change-Id: I11b4e755bc8cb1e2eea29cd006e8df67df632c00

8 years agoMerge \\"Do not emit stack maps for runtime calls to ReadBarrierMarkRegX.\\" am:...
Roland Levillain [Mon, 25 Jul 2016 15:00:49 +0000 (15:00 +0000)]
Merge \\"Do not emit stack maps for runtime calls to ReadBarrierMarkRegX.\\" am: de4cf16f46
am: 6c652d78ce

Change-Id: Ic398c02cb7e3a3ffb1029681b3ac6c36eaaaba0c

8 years agoMerge \"Do not emit stack maps for runtime calls to ReadBarrierMarkRegX.\"
Roland Levillain [Mon, 25 Jul 2016 14:57:22 +0000 (14:57 +0000)]
Merge \"Do not emit stack maps for runtime calls to ReadBarrierMarkRegX.\"
am: de4cf16f46

Change-Id: I58975c1fa1cdc2627b5fdee0d84322b8282a6411

8 years agoMerge "Do not emit stack maps for runtime calls to ReadBarrierMarkRegX."
Roland Levillain [Mon, 25 Jul 2016 14:49:51 +0000 (14:49 +0000)]
Merge "Do not emit stack maps for runtime calls to ReadBarrierMarkRegX."

8 years agoMerge \\"Revert \\"ART: Add dex2oat swap usage test\\"\\" am: c4aa896181
Andreas Gampe [Sat, 23 Jul 2016 06:14:45 +0000 (06:14 +0000)]
Merge \\"Revert \\"ART: Add dex2oat swap usage test\\"\\" am: c4aa896181
am: da07be90c5

Change-Id: I9744169d0d5f109f07d1c67f3ed55ee19ba645fb

8 years agoMerge \"Revert \"ART: Add dex2oat swap usage test\"\"
Andreas Gampe [Sat, 23 Jul 2016 06:11:47 +0000 (06:11 +0000)]
Merge \"Revert \"ART: Add dex2oat swap usage test\"\"
am: c4aa896181

Change-Id: I61c6aa7d5057a49639312262bc74f9162c827a70

8 years agoMerge "Revert "ART: Add dex2oat swap usage test""
Treehugger Robot [Sat, 23 Jul 2016 06:04:13 +0000 (06:04 +0000)]
Merge "Revert "ART: Add dex2oat swap usage test""

8 years agoRevert "ART: Add dex2oat swap usage test"
Andreas Gampe [Sat, 23 Jul 2016 05:17:18 +0000 (05:17 +0000)]
Revert "ART: Add dex2oat swap usage test"

The test doesn't correctly exclude the target, as it will only work
on the host.

This reverts commit ab2a54093386c85756fe78daedd11ff4408a5988.

Bug: 29259363
Change-Id: Ie50df2e6f0c63cb10359c3862ad44ee3c03d4e3b

8 years agoAdd fast path to arm64 READ_BARRIER macro
Mathieu Chartier [Thu, 21 Jul 2016 21:59:04 +0000 (14:59 -0700)]
Add fast path to arm64 READ_BARRIER macro

EAAC benchmark time from 978.7857143ms to 969.5714286ms on N9 based
on 42 samples. Reduces artReadBarrierSlow calls from 9M to 1M.

Not a huge improvement since we were already checking the lock word in
ReadBarrier::Barrier.

Test: N9 boots, test-art-host, EEAC runs. (All with CC enabled).

Bug: 30162165
Bug: 12687968

Change-Id: Ifb97b52ea84e21c7df83addfb91c5f05f41db32d

8 years agoMerge \\"ART: Change run-*-tests to ANDROID_{HOST|PRODUCT}_OUT\\" am: 115c1de1f8
Andreas Gampe [Fri, 22 Jul 2016 22:50:51 +0000 (22:50 +0000)]
Merge \\"ART: Change run-*-tests to ANDROID_{HOST|PRODUCT}_OUT\\" am: 115c1de1f8
am: 88b5cdb5be

Change-Id: Ic5a32cf1eba832fe189c720898185ae876479bc7

8 years agoMerge \\"ART: Add dex2oat swap usage test\\" am: da2b8dc3ed
Andreas Gampe [Fri, 22 Jul 2016 22:50:51 +0000 (22:50 +0000)]
Merge \\"ART: Add dex2oat swap usage test\\" am: da2b8dc3ed
am: f11b3aa623

Change-Id: I8164b21964584a3caeaee79689a0453ab6c9717a

8 years agoMerge \"ART: Change run-*-tests to ANDROID_{HOST|PRODUCT}_OUT\"
Andreas Gampe [Fri, 22 Jul 2016 22:47:55 +0000 (22:47 +0000)]
Merge \"ART: Change run-*-tests to ANDROID_{HOST|PRODUCT}_OUT\"
am: 115c1de1f8

Change-Id: I6a977a1a3ed81c25ce20c43ee55a55c2028d20b1

8 years agoMerge \"ART: Add dex2oat swap usage test\"
Andreas Gampe [Fri, 22 Jul 2016 22:47:53 +0000 (22:47 +0000)]
Merge \"ART: Add dex2oat swap usage test\"
am: da2b8dc3ed

Change-Id: I019cccda99f190384f57bf2e23909ed79a74dc2d

8 years agoMerge "ART: Change run-*-tests to ANDROID_{HOST|PRODUCT}_OUT"
Treehugger Robot [Fri, 22 Jul 2016 22:32:08 +0000 (22:32 +0000)]
Merge "ART: Change run-*-tests to ANDROID_{HOST|PRODUCT}_OUT"

8 years agoMerge "ART: Add dex2oat swap usage test"
Treehugger Robot [Fri, 22 Jul 2016 22:31:37 +0000 (22:31 +0000)]
Merge "ART: Add dex2oat swap usage test"

8 years agoMerge \\"Combine offsets in loop-based dynamic BCE.\\" am: 7b922ff88b
Aart Bik [Fri, 22 Jul 2016 18:55:06 +0000 (18:55 +0000)]
Merge \\"Combine offsets in loop-based dynamic BCE.\\" am: 7b922ff88b
am: f45e600ea6

Change-Id: Ied92881efb83a4a7dcd6238f459f8e5e5c96ead4

8 years agoMerge \"Combine offsets in loop-based dynamic BCE.\"
Aart Bik [Fri, 22 Jul 2016 18:52:07 +0000 (18:52 +0000)]
Merge \"Combine offsets in loop-based dynamic BCE.\"
am: 7b922ff88b

Change-Id: I6889e535ce4ea69404562c95451bf82d70c35a23

8 years agoMerge "Combine offsets in loop-based dynamic BCE."
Treehugger Robot [Fri, 22 Jul 2016 18:43:01 +0000 (18:43 +0000)]
Merge "Combine offsets in loop-based dynamic BCE."

8 years agoDo not emit stack maps for runtime calls to ReadBarrierMarkRegX.
Roland Levillain [Fri, 22 Jul 2016 16:10:06 +0000 (17:10 +0100)]
Do not emit stack maps for runtime calls to ReadBarrierMarkRegX.

* Boot image code size variation on Nexus 5X
  (aosp_bullhead-userdebug build):
  - total ARM64 framework Oat files size change:
    115584120 bytes -> 109124728 bytes (-5.59%)
  - total ARM framework Oat files size change:
    97387728 bytes -> 92517584 (-5.00%)

Test: ART host and target (ARM, ARM64) tests.
Bug: 29506760
Bug: 12687968
Change-Id: I979d9fb2b4e09f4c0c7bf33af2cd91750a67f989

8 years agoCombine offsets in loop-based dynamic BCE.
Aart Bik [Fri, 15 Jul 2016 00:19:43 +0000 (17:19 -0700)]
Combine offsets in loop-based dynamic BCE.

Rationale:
Similar to what I did recently for dom-based dynamic BCE, this
CL combines offsets for the tests generated for loop-based
dynamic BCE. For a set of n references, this reduces the
number of generated tests from 2*n+1 down to at most 4
(in some cases even less).

TEST: 530-checker-loops3

BUG=27430379

Change-Id: Ic80c2563eaae23f514c1fd52965dd83bccb9d190

8 years agoMerge \\"ARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation.\\"...
Vladimir Marko [Fri, 22 Jul 2016 17:09:00 +0000 (17:09 +0000)]
Merge \\"ARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation.\\" am: 9e27d02040
am: 6aec037d15

Change-Id: I48398d2bcb731b60ded4aeb6f4263f5c3152136a

8 years agoMerge \"ARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation.\"
Vladimir Marko [Fri, 22 Jul 2016 17:06:32 +0000 (17:06 +0000)]
Merge \"ARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation.\"
am: 9e27d02040

Change-Id: Ib9198592d068055b0caa2051072795cb77fc6a0f

8 years agoMerge "ARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation."
Treehugger Robot [Fri, 22 Jul 2016 16:53:29 +0000 (16:53 +0000)]
Merge "ARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation."

8 years agoARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation.
Vladimir Marko [Fri, 22 Jul 2016 09:52:24 +0000 (10:52 +0100)]
ARM64/x86-64: Fix mterp fill-array-data-payload pointer calculation.

Fix the pointer calculation to sign-extend the offset
instead of zero-extending it, just like we do for the switch
table pointer calculation. Clean up comments for the switch.

Test: Additional test in 412-new-array.
Change-Id: Ibb1d2d3fcb109f59280aca08de21e42edc4ce66b

8 years agoMerge \\"ARM64: Improve mterp cmpl/cmpg.\\" am: 41c7e2e6ac
Vladimir Marko [Fri, 22 Jul 2016 09:34:34 +0000 (09:34 +0000)]
Merge \\"ARM64: Improve mterp cmpl/cmpg.\\" am: 41c7e2e6ac
am: 1562d62bf2

Change-Id: I5596939b447cf2591c2197a12888c289a773e931

8 years agoMerge \"ARM64: Improve mterp cmpl/cmpg.\"
Vladimir Marko [Fri, 22 Jul 2016 09:31:36 +0000 (09:31 +0000)]
Merge \"ARM64: Improve mterp cmpl/cmpg.\"
am: 41c7e2e6ac

Change-Id: I8abfa3377a1e884e46f28ce413a67e97492335e2

8 years agoMerge "ARM64: Improve mterp cmpl/cmpg."
Vladimir Marko [Fri, 22 Jul 2016 09:24:41 +0000 (09:24 +0000)]
Merge "ARM64: Improve mterp cmpl/cmpg."

8 years agoJIT: Don\'t update the dex cache of another class loader.
Nicolas Geoffray [Fri, 22 Jul 2016 01:15:48 +0000 (01:15 +0000)]
JIT: Don\'t update the dex cache of another class loader.
am: e50a7b834b  -s ours

Change-Id: I0af74a19e19bc66fcca47aca21757136073a9161

8 years agoMerge changes I295c7876,Ib4b84b7b am: 84413a7617
Andreas Gampe [Fri, 22 Jul 2016 00:05:41 +0000 (00:05 +0000)]
Merge changes I295c7876,Ib4b84b7b am: 84413a7617
am: 7aee171992

Change-Id: Iccde165be1e432c9c3e86f03f07a1e2d45428d5f

8 years agoMerge changes I295c7876,Ib4b84b7b
Andreas Gampe [Fri, 22 Jul 2016 00:03:12 +0000 (00:03 +0000)]
Merge changes I295c7876,Ib4b84b7b
am: 84413a7617

Change-Id: I8b32598a46cb589cdefa1937ba4b9b69926f25b9

8 years agoMerge changes I295c7876,Ib4b84b7b
Treehugger Robot [Thu, 21 Jul 2016 23:58:00 +0000 (23:58 +0000)]
Merge changes I295c7876,Ib4b84b7b

* changes:
  ART: Remove PACKED from ArtMethod's ptr_sized_fields_
  ART: Rename ArtMethod JNI field

8 years agoMerge \\"Use non-CAS thread flip root visitor.\\" am: d4b7ad7135
Hiroshi Yamauchi [Thu, 21 Jul 2016 23:34:42 +0000 (23:34 +0000)]
Merge \\"Use non-CAS thread flip root visitor.\\" am: d4b7ad7135
am: 0cbcc8b076

Change-Id: I7ace21c998f00f53dd5e9d56703b385dc1457e26

8 years agoMerge \"Use non-CAS thread flip root visitor.\"
Hiroshi Yamauchi [Thu, 21 Jul 2016 23:32:13 +0000 (23:32 +0000)]
Merge \"Use non-CAS thread flip root visitor.\"
am: d4b7ad7135

Change-Id: I4c560952f5f4ed488d0a849feadf2a2d25e15a2b

8 years agoMerge "Use non-CAS thread flip root visitor."
Hiroshi Yamauchi [Thu, 21 Jul 2016 23:24:44 +0000 (23:24 +0000)]
Merge "Use non-CAS thread flip root visitor."

8 years agoART: Remove PACKED from ArtMethod's ptr_sized_fields_
Andreas Gampe [Wed, 20 Jul 2016 01:27:17 +0000 (18:27 -0700)]
ART: Remove PACKED from ArtMethod's ptr_sized_fields_

Remove the PACKED(4) hack, as it's highly annoying when debugging
a 64-bit process. Instead, fix the actual offset and size computation
for cross-size accesses.

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

8 years agoART: Add dex2oat swap usage test
Andreas Gampe [Thu, 21 Jul 2016 22:36:22 +0000 (15:36 -0700)]
ART: Add dex2oat swap usage test

Add a test that checks that native alloc size goes down when using
swap, as an indication that we're actually effectively using swap.

Bug: 29259363
Test: m test-art-host-gtest-dex2oat_test
Change-Id: Ifa5aef1b97696309283de78be08699a6399a4d1d

8 years agoUse non-CAS thread flip root visitor.
Hiroshi Yamauchi [Thu, 21 Jul 2016 03:25:27 +0000 (20:25 -0700)]
Use non-CAS thread flip root visitor.

We don't need to use CAS to update the thread-local GC roots for the
thread flip.

Bug: 12687968
Bug: 29517059
Test: libartd.so boot. ART tests. Ritzperf EAAC.
Change-Id: Ia2acab824f756bd7d2ad501b2040233e0d394356

8 years agoMerge \\"ART: Make run-test temp dir consistent\\" am: a8f4e9061a
Andreas Gampe [Thu, 21 Jul 2016 18:34:42 +0000 (18:34 +0000)]
Merge \\"ART: Make run-test temp dir consistent\\" am: a8f4e9061a
am: fd3b946eca

Change-Id: I35b5bf8d27d6eb9340c161a80befc30df90e5cb2

8 years agoMerge \"ART: Make run-test temp dir consistent\"
Andreas Gampe [Thu, 21 Jul 2016 18:32:42 +0000 (18:32 +0000)]
Merge \"ART: Make run-test temp dir consistent\"
am: a8f4e9061a

Change-Id: I1d785103a7e4df2884384b0b482552a8e163e9f3

8 years agoART: Rename ArtMethod JNI field
Andreas Gampe [Tue, 19 Jul 2016 15:06:07 +0000 (08:06 -0700)]
ART: Rename ArtMethod JNI field

The field is multi-purpose, rename it to data and clean up
accessors in preparation of more checks.

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

8 years agoMerge "ART: Make run-test temp dir consistent"
Treehugger Robot [Thu, 21 Jul 2016 18:26:27 +0000 (18:26 +0000)]
Merge "ART: Make run-test temp dir consistent"

8 years agoMerge \\"Add a way to measure read barrier slow paths\\" am: d8b668fbb6
Mathieu Chartier [Thu, 21 Jul 2016 17:12:34 +0000 (17:12 +0000)]
Merge \\"Add a way to measure read barrier slow paths\\" am: d8b668fbb6
am: 7cf6333832

Change-Id: I511a006bed571faceb739448687cee44afb0198f

8 years agoMerge \"Add a way to measure read barrier slow paths\"
Mathieu Chartier [Thu, 21 Jul 2016 17:10:02 +0000 (17:10 +0000)]
Merge \"Add a way to measure read barrier slow paths\"
am: d8b668fbb6

Change-Id: I010c834dc4c922e7986854cba12612823fa974b4

8 years agoART: Make run-test temp dir consistent
Andreas Gampe [Thu, 21 Jul 2016 04:09:29 +0000 (21:09 -0700)]
ART: Make run-test temp dir consistent

We use the username as a directory component in run-test. Use the
same when driven through the Makefile.

Drop the username in run-test when TMP_DIR is set.

Test: m test-art-host-run-test
Test: art/test/run-test --host 001-HelloWorld
Change-Id: I060997ffbd80cd4da30dd6ac8d3954641de3292b

8 years agoMerge "Add a way to measure read barrier slow paths"
Mathieu Chartier [Thu, 21 Jul 2016 16:52:44 +0000 (16:52 +0000)]
Merge "Add a way to measure read barrier slow paths"

8 years agoARM64: Improve mterp cmpl/cmpg.
Vladimir Marko [Thu, 21 Jul 2016 11:59:46 +0000 (12:59 +0100)]
ARM64: Improve mterp cmpl/cmpg.

Use CSET+CNEG instead of MOV+CNEG+CSEL. Prefer the
CNEG/CSET alias over the CSNEG/CSINC for readability.

Test: Run ART test suite on Nexus 9 with the interpreter.
Change-Id: I5c4fb0cf2c053904253e8e82f3e7e05c774b0583

8 years agoMerge \\"Change return type of artIsAssignableFromCode for MIPS64\\" am: b78b3a8d93
Goran Jakovljevic [Thu, 21 Jul 2016 14:27:23 +0000 (14:27 +0000)]
Merge \\"Change return type of artIsAssignableFromCode for MIPS64\\" am: b78b3a8d93
am: 56dc4f5349

Change-Id: I42be21594fe6dad907057e0342d568924642ff93

8 years agoMerge \\"Fix the definition of MACRO_LITERAL for OS X on x86-64.\\" am: ed33b7357c
Roland Levillain [Thu, 21 Jul 2016 14:27:22 +0000 (14:27 +0000)]
Merge \\"Fix the definition of MACRO_LITERAL for OS X on x86-64.\\" am: ed33b7357c
am: 37d65ef15f

Change-Id: I9f34ab8c1510c97aa22bbdd9c1c47395b31dfc56

8 years agoMerge \"Change return type of artIsAssignableFromCode for MIPS64\"
Goran Jakovljevic [Thu, 21 Jul 2016 14:24:26 +0000 (14:24 +0000)]
Merge \"Change return type of artIsAssignableFromCode for MIPS64\"
am: b78b3a8d93

Change-Id: Ifcc0f61101ab0a424273b97877fbb444864fdce9

8 years agoMerge \"Fix the definition of MACRO_LITERAL for OS X on x86-64.\"
Roland Levillain [Thu, 21 Jul 2016 14:24:23 +0000 (14:24 +0000)]
Merge \"Fix the definition of MACRO_LITERAL for OS X on x86-64.\"
am: ed33b7357c

Change-Id: Ida4c2fd8c2918b77c72423fdda7cd7fb52c10aab

8 years agoMerge "Change return type of artIsAssignableFromCode for MIPS64"
Treehugger Robot [Thu, 21 Jul 2016 14:19:33 +0000 (14:19 +0000)]
Merge "Change return type of artIsAssignableFromCode for MIPS64"

8 years agoMerge "Fix the definition of MACRO_LITERAL for OS X on x86-64."
Roland Levillain [Thu, 21 Jul 2016 14:17:40 +0000 (14:17 +0000)]
Merge "Fix the definition of MACRO_LITERAL for OS X on x86-64."

8 years agoFix the definition of MACRO_LITERAL for OS X on x86-64.
Roland Levillain [Tue, 5 Jul 2016 17:55:32 +0000 (18:55 +0100)]
Fix the definition of MACRO_LITERAL for OS X on x86-64.

Test: "ART_USE_READ_BARRIER=true mmma art" on OS X.
Change-Id: Ia2d4c7a3eb7fec346ddfa4c7b0f7b700f1137344

8 years agoChange return type of artIsAssignableFromCode for MIPS64
Goran Jakovljevic [Thu, 21 Jul 2016 12:21:46 +0000 (14:21 +0200)]
Change return type of artIsAssignableFromCode for MIPS64

This has been missed by Ic505befc6c94e2dccbc8abf2b13d4c2d662e68d1.
This fixes MIPS64 build.

Bug: 30232671
Test: make -j 32 out/target/product/generic_mips64/obj/SHARED_LIBRARIES/libart_intermediates/arch/mips64/entrypoints_init_mips64.o
Change-Id: Iec89d25e2d38c6efc0d1025767d0ac2a8bdb7dcd

8 years agoMerge \\"Move caller-saves saving/restoring to ReadBarrierMarkRegX.\\" am: 057361ca33
Roland Levillain [Thu, 21 Jul 2016 12:17:44 +0000 (12:17 +0000)]
Merge \\"Move caller-saves saving/restoring to ReadBarrierMarkRegX.\\" am: 057361ca33
am: cc25e86689

Change-Id: I615172164d2edf199f868dd6d3d0bd59a759d5a9

8 years agoMerge \"Move caller-saves saving/restoring to ReadBarrierMarkRegX.\"
Roland Levillain [Thu, 21 Jul 2016 12:15:16 +0000 (12:15 +0000)]
Merge \"Move caller-saves saving/restoring to ReadBarrierMarkRegX.\"
am: 057361ca33

Change-Id: I91d856a7d188afb7f770beb6eb799351bfe9333d

8 years agoMerge "Move caller-saves saving/restoring to ReadBarrierMarkRegX."
Roland Levillain [Thu, 21 Jul 2016 12:11:15 +0000 (12:11 +0000)]
Merge "Move caller-saves saving/restoring to ReadBarrierMarkRegX."

8 years agoMerge \\"Clean up Class::FindStaticField().\\" am: 65ad9b3516
Vladimir Marko [Thu, 21 Jul 2016 10:40:09 +0000 (10:40 +0000)]
Merge \\"Clean up Class::FindStaticField().\\" am: 65ad9b3516
am: 21b08980fb

Change-Id: Iae16ee91456c046fd11925bb582480245bf18f42

8 years agoMerge \"Clean up Class::FindStaticField().\"
Vladimir Marko [Thu, 21 Jul 2016 10:37:41 +0000 (10:37 +0000)]
Merge \"Clean up Class::FindStaticField().\"
am: 65ad9b3516

Change-Id: Ide965af3c183fe6f4bf1abd0c535ea2914522999

8 years agoMerge "Clean up Class::FindStaticField()."
Vladimir Marko [Thu, 21 Jul 2016 10:33:13 +0000 (10:33 +0000)]
Merge "Clean up Class::FindStaticField()."

8 years agoMove caller-saves saving/restoring to ReadBarrierMarkRegX.
Roland Levillain [Wed, 20 Jul 2016 10:32:19 +0000 (11:32 +0100)]
Move caller-saves saving/restoring to ReadBarrierMarkRegX.

Instead of saving/restoring live caller-save registers
before/after the call to read barrier mark entry points
ReadBarrierMarkRegX, have these entry points save/restore
all the caller-save registers themselves (except register
rX, which contains the return value).

Also refactor the assembly code of these entry points
using macros.

* Boot image code size variation on Nexus 5X
  (aosp_bullhead-userdebug build):
  - total ARM64 framework Oat files size change:
    119196792 bytes -> 115575920 bytes (-3.04%)
  - total ARM framework Oat files size change:
    100435212 bytes -> 97621188 bytes (-2.80%)

* Benchmarks (ARM64) score variations on Nexus 5X
  (aosp_bullhead-userdebug build):
  - RitzPerf (lower is better)
    - average score difference: -2.71%
  - CaffeineMark (higher is better)
    - no real difference for most tests
      (absolute variation lower than 1%)
    - better score on the "Method" benchmark:
      score variation 41253 -> 44891 (+8.82%)

Test: ART host and target (ARM, ARM64) tests.
Bug: 29506760
Bug: 12687968
Change-Id: I881bf73139a3f1c2bee9ffc6fc8c00f9a392afa6

8 years agoMerge \\"ARM: Port instr simplification of array accesses.\\" am: a92938a17b
Vladimir Marko [Thu, 21 Jul 2016 09:24:06 +0000 (09:24 +0000)]
Merge \\"ARM: Port instr simplification of array accesses.\\" am: a92938a17b
am: 030c9e6e58

Change-Id: I56fe574cc4200517d241939a458375feb38005af

8 years agoMerge changes Ibcc11ce7,I9867dc11 am: 89b03e0cfb
Vladimir Marko [Thu, 21 Jul 2016 09:24:06 +0000 (09:24 +0000)]
Merge changes Ibcc11ce7,I9867dc11 am: 89b03e0cfb
am: e2d6519d95

Change-Id: I7b6f88b4a8ec4ae6bb7458c30074fdb02d33efac

8 years agoMerge \"ARM: Port instr simplification of array accesses.\"
Artem Serov [Thu, 21 Jul 2016 09:22:09 +0000 (09:22 +0000)]
Merge \"ARM: Port instr simplification of array accesses.\"
am: a92938a17b

Change-Id: Ia08b62cc89dd2cfecf9c543ed75689f07baf8ced

8 years agoMerge changes Ibcc11ce7,I9867dc11
Vladimir Marko [Thu, 21 Jul 2016 09:22:06 +0000 (09:22 +0000)]
Merge changes Ibcc11ce7,I9867dc11
am: 89b03e0cfb

Change-Id: I841c764e1c9a69778ce840ec025815d20e1a06ab

8 years agoMerge "ARM: Port instr simplification of array accesses."
Vladimir Marko [Thu, 21 Jul 2016 09:17:15 +0000 (09:17 +0000)]
Merge "ARM: Port instr simplification of array accesses."

8 years agoARM: Port instr simplification of array accesses.
Artem Serov [Wed, 6 Jul 2016 15:23:04 +0000 (16:23 +0100)]
ARM: Port instr simplification of array accesses.

After changing the addressing mode for array accesses (in
https://android-review.googlesource.com/248406) the 'add'
instruction that calculates the base address for the array can be
shared across accesses to the same array.

Before https://android-review.googlesource.com/248406:
    add IP, r[Array], r[Index0], LSL #2
    ldr r0, [IP, #12]
    add IP, r[Array], r[Index1], LSL #2
    ldr r0, [IP, #12]

Before this CL:
    add IP. r[Array], #12
    ldr r0, [IP, r[Index0], LSL #2]
    add IP. r[Array], #12
    ldr r0, [IP, r[Index1], LSL #2]

After this CL:
    add IP. r[Array], #12
    ldr r0, [IP, r[Index0], LSL #2]
    ldr r0, [IP, r[Index1], LSL #2]

Link to the original optimization:
    https://android-review.googlesource.com/#/c/127310/

Test: Run ART test suite on Nexus 6.
Change-Id: Iee26f9a0a7ca46abb90e3f60d19d22dc8dee4d8f

8 years agoMerge changes Ibcc11ce7,I9867dc11
Vladimir Marko [Thu, 21 Jul 2016 09:15:23 +0000 (09:15 +0000)]
Merge changes Ibcc11ce7,I9867dc11

* changes:
  ARM64: Improve Mterp.
  ARM64: Fix mterp switch table pointer calculation.

8 years agoJIT: Don't update the dex cache of another class loader.
Nicolas Geoffray [Tue, 19 Jul 2016 16:06:23 +0000 (17:06 +0100)]
JIT: Don't update the dex cache of another class loader.

This only works for properly delegating class loaders. But Java allows
non-delegating ones :(

bug:29964720

test:612-jit-dex-cache

(cherry picked from commit 491617a612c8a1c890e72d8ba780a151ddee8e11)
(cherry picked from commit a2d7cbb44e570ec0a9064dc93f57441e6ab9e45a)

(cherry picked from commit ae093d69f58c2b6257c3e5b82a32c135a1f33641)

Change-Id: I73df55286a9bdb3f96963e0756e3a8b784aa9077

8 years agoAdd a way to measure read barrier slow paths
Mathieu Chartier [Thu, 14 Jul 2016 20:30:03 +0000 (13:30 -0700)]
Add a way to measure read barrier slow paths

If enabled, this option counts number of slow paths, measures the
total slow path time per GC and records the info into a histogram.
Also added support for systrace to see which threads are performing
slow paths.

Added runtime option -Xgc:measure to enable. The info is dumped
for SIGQUIT.

Test: Volantis boot with CC, test-art-host with CC, run EEAC with CC
and -Xgc:measure

Bug: 30162165

Change-Id: I3c2bdb4156065249c45695f13c77c0579bc8e57a

8 years agoMerge \\"Revert \\"Revert \\"Refactor GetIMTIndex\\"\\"\\" am: e4b1c86d13
Matthew Gharrity [Thu, 21 Jul 2016 00:18:32 +0000 (00:18 +0000)]
Merge \\"Revert \\"Revert \\"Refactor GetIMTIndex\\"\\"\\" am: e4b1c86d13
am: 8df507d68a

Change-Id: Ia2def807b2ccf60b6020da2760c94e7954c2700b

8 years agoMerge \"Revert \"Revert \"Refactor GetIMTIndex\"\"\"
Matthew Gharrity [Thu, 21 Jul 2016 00:14:11 +0000 (00:14 +0000)]
Merge \"Revert \"Revert \"Refactor GetIMTIndex\"\"\"
am: e4b1c86d13

Change-Id: I496ad384317e215aa09e1390079fdfe3f852723e

8 years agoMerge "Revert "Revert "Refactor GetIMTIndex"""
Treehugger Robot [Thu, 21 Jul 2016 00:04:52 +0000 (00:04 +0000)]
Merge "Revert "Revert "Refactor GetIMTIndex"""

8 years agoMerge \\"Make stream tracing have a higher thread count on host\\" am: ce1ba111bf
Alex Light [Wed, 20 Jul 2016 22:19:32 +0000 (22:19 +0000)]
Merge \\"Make stream tracing have a higher thread count on host\\" am: ce1ba111bf
am: 2aad9683a3

Change-Id: I54ba24e0222f734d131fe1c14310eb3ef806a357

8 years agoMerge \"Make stream tracing have a higher thread count on host\"
Alex Light [Wed, 20 Jul 2016 22:16:34 +0000 (22:16 +0000)]
Merge \"Make stream tracing have a higher thread count on host\"
am: ce1ba111bf

Change-Id: Ib482cc8e3eb49aac849a809fb4d47368abfffa77

8 years agoMerge "Make stream tracing have a higher thread count on host"
Treehugger Robot [Wed, 20 Jul 2016 22:08:47 +0000 (22:08 +0000)]
Merge "Make stream tracing have a higher thread count on host"

8 years agoMake stream tracing have a higher thread count on host
Alex Light [Wed, 20 Jul 2016 17:43:39 +0000 (10:43 -0700)]
Make stream tracing have a higher thread count on host

Test: mma ART_TEST_TRACE_STREAM=true -j40 test-art-host-run-test-debug-prebuild-optimizing-relocate-stream-cms-checkjni-image-npictest-ndebuggable-001-HelloWorld32
Bug: 30229615
Change-Id: Id396f569b9e21ff764562005624aabc964d4e95a

8 years agoMerge \\"Refactor register allocation to be pluggable\\" am: 8a759904d4
Matthew Gharrity [Wed, 20 Jul 2016 20:45:56 +0000 (20:45 +0000)]
Merge \\"Refactor register allocation to be pluggable\\" am: 8a759904d4
am: 90d0c8adb6

Change-Id: If03c38d2f9088828d90026a28a36c65b27e09bb0

8 years agoMerge \"Refactor register allocation to be pluggable\"
Matthew Gharrity [Wed, 20 Jul 2016 20:42:58 +0000 (20:42 +0000)]
Merge \"Refactor register allocation to be pluggable\"
am: 8a759904d4

Change-Id: I7dcf31e96d0eb23f794da94c4268804ab22d82dc

8 years agoMerge "Refactor register allocation to be pluggable"
Treehugger Robot [Wed, 20 Jul 2016 20:38:30 +0000 (20:38 +0000)]
Merge "Refactor register allocation to be pluggable"

8 years agoMerge \\"Fix accidental pass-by-value\\" am: 27d99ed243
Matthew Gharrity [Wed, 20 Jul 2016 19:50:52 +0000 (19:50 +0000)]
Merge \\"Fix accidental pass-by-value\\" am: 27d99ed243
am: 3fa237bc32

Change-Id: I5eaec7a7a98f6179e0bdb0aae1449ebbb4121075

8 years agoMerge \"Fix accidental pass-by-value\"
Matthew Gharrity [Wed, 20 Jul 2016 19:48:24 +0000 (19:48 +0000)]
Merge \"Fix accidental pass-by-value\"
am: 27d99ed243

Change-Id: Iab0f6c30f77a0764a11ce094d05a79e81d28685e

8 years agoMerge "Fix accidental pass-by-value"
Treehugger Robot [Wed, 20 Jul 2016 19:42:28 +0000 (19:42 +0000)]
Merge "Fix accidental pass-by-value"

8 years agoMerge changes I328ea51d,I577c5d02 am: 6c81dfeaef
Richard Uhler [Wed, 20 Jul 2016 18:30:50 +0000 (18:30 +0000)]
Merge changes I328ea51d,I577c5d02 am: 6c81dfeaef
am: f87c76d0dc

Change-Id: Id44ec9b26970ce22620975cbbdc4fa25204013cf

8 years agoMerge changes I328ea51d,I577c5d02
Richard Uhler [Wed, 20 Jul 2016 18:28:17 +0000 (18:28 +0000)]
Merge changes I328ea51d,I577c5d02
am: 6c81dfeaef

Change-Id: I18b7d076b1db11560f4ee4488a5c4f5f8093ffa5

8 years agoMerge changes I328ea51d,I577c5d02
Treehugger Robot [Wed, 20 Jul 2016 18:22:10 +0000 (18:22 +0000)]
Merge changes I328ea51d,I577c5d02

* changes:
  Compute oat and odex filenames eagerly.
  Make a static OatFileAssistant::DexLocationToOatFileName function.

8 years agoARM64: Improve Mterp.
Vladimir Marko [Wed, 20 Jul 2016 13:25:30 +0000 (14:25 +0100)]
ARM64: Improve Mterp.

Several straight-forward optimizations:
  - use ubfx instead of SHR+AND,
  - do not mask shifting distance,
  - use 64-bit LDRSH to avoid subsequent sign extension,
  - use CBNZ instead of CMP+BNE for null checks,
  - style: use SXTW alias instead of explicit SBFM.

Test: Run ART test suite on Nexus 9 with the interpreter.
Change-Id: Ibcc11ce7f455432ecb789f727da21f269f8370f0

8 years agoARM64: Fix mterp switch table pointer calculation.
Vladimir Marko [Wed, 20 Jul 2016 16:52:51 +0000 (17:52 +0100)]
ARM64: Fix mterp switch table pointer calculation.

Do not mix 32-bit and 64-bit registers with
    add     x0, xPC, w0, lsl #1
that ends up compiled as
    add     x0, xPC, w0, uxtx #1
instead of the required sxtx. Just sing-extend the offset
correctly in previous instructions.

Test: Additional test in 501-regression-packed-switch.
Change-Id: I9867dc1180743e98f9707a312241d2f5b726ca8c

8 years agoFix accidental pass-by-value
Matthew Gharrity [Wed, 20 Jul 2016 17:13:45 +0000 (10:13 -0700)]
Fix accidental pass-by-value

Change-Id: I245111eabb43368875c1215ca4f3a1f1918492fe

8 years agoRefactor register allocation to be pluggable
Matthew Gharrity [Thu, 14 Jul 2016 20:24:00 +0000 (13:24 -0700)]
Refactor register allocation to be pluggable

Allow alternate register allocation strategies to be implemented
in subclasses of a common register allocation base class.

Test: m test-art-host

Change-Id: I7c5866aa9ddff8f53fcaf721bad47654ab221b4f

8 years agoMerge \\"ART: Change return types of field access entrypoints\\" am: 360b4b0137
Vladimir Marko [Wed, 20 Jul 2016 12:10:51 +0000 (12:10 +0000)]
Merge \\"ART: Change return types of field access entrypoints\\" am: 360b4b0137
am: 127d900ccc

Change-Id: Ibb1d4ae96a3c6514cdd6a1d1f77d6f9f66f8cee1

8 years agoMerge \"ART: Change return types of field access entrypoints\"
Andreas Gampe [Wed, 20 Jul 2016 12:07:24 +0000 (12:07 +0000)]
Merge \"ART: Change return types of field access entrypoints\"
am: 360b4b0137

Change-Id: I98f4f6ea89d48f5405da245c94ff7bddb0b5d588

8 years agoMerge "ART: Change return types of field access entrypoints"
Vladimir Marko [Wed, 20 Jul 2016 12:01:15 +0000 (12:01 +0000)]
Merge "ART: Change return types of field access entrypoints"

8 years agoMerge \\"Fix test after rename.\\" am: 522da11a6c
Nicolas Geoffray [Wed, 20 Jul 2016 11:02:47 +0000 (11:02 +0000)]
Merge \\"Fix test after rename.\\" am: 522da11a6c
am: c8f60fd364

Change-Id: I445afbc70e5c0ba06f2d6687f1876e27e1a92d2e