OSDN Git Service
buzbee [Thu, 9 Mar 2017 21:51:23 +0000 (13:51 -0800)]
ART: String intrinsics for Mterp interpreter
Adds the most common java.lang.string intrinsics. Includes change
to jvalue handling to zero-exend setting of chars and booleans to
64 bits (aligns with current sign-extension of shorts and ints).
Bug:
30933338
Benchmarks:
2x boost for Caffeinemark String
11% improvement for Dhrystone
Test: ART_TEST_INTERPRETER=true m test-art-host
Test: ART_TEST_INTERPRETER=true m test-art-target (Bullhead)
Note: Added intrinsics have existing test coverage via
082-inline-execute and 123-inline-execute2.
Change-Id: I64b35b1d7bdfe14da0c662594c0edf5cde667277
Bill Buzbee [Wed, 8 Mar 2017 19:25:22 +0000 (19:25 +0000)]
Merge "Interpreter intrinsics"
Hiroshi Yamauchi [Wed, 8 Mar 2017 18:02:53 +0000 (18:02 +0000)]
Merge changes I16000c0c,I325003cb
* changes:
Add two locks to expected_mutexes_on_weak_ref_access_.
Revert "Add jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_."
buzbee [Wed, 1 Mar 2017 18:55:57 +0000 (10:55 -0800)]
Interpreter intrinsics
First of several intrinsic CLs. This one provides the basic
mechanism plus a handful of the most simple examples. Note that
Intrinsic support is limited to Mterp both to keep the switch
interpreter as a pure reference, and to avoid mixing debugging
and intrinsics.
Bug:
30933338
Test: ART_TEST_INTERPRETER m test-art-host
Test: Note: existing 082-inline-execute, 123-inline-execute2
Test: cover intrinsics enabled by this CL.
Change-Id: I9d79e23a84bf00cadb54e1db52d8ed193bbf8887
Aart Bik [Wed, 8 Mar 2017 16:56:07 +0000 (16:56 +0000)]
Merge "Improve isunit computation, some tests edits needed for SIMD."
Vladimir Marko [Wed, 8 Mar 2017 16:12:00 +0000 (16:12 +0000)]
Merge "Improve debugging output for a crash."
Nicolas Geoffray [Wed, 8 Mar 2017 14:52:24 +0000 (14:52 +0000)]
Merge "Forgot this line for blacklisting."
Nicolas Geoffray [Wed, 8 Mar 2017 14:51:43 +0000 (14:51 +0000)]
Forgot this line for blacklisting.
Test: test-art-host
Change-Id: I97d330b1898561c69d7cd02c64ea574f5dcaeffa
Vladimir Marko [Wed, 8 Mar 2017 14:40:47 +0000 (14:40 +0000)]
Improve debugging output for a crash.
Bug:
34839984
Test: m test-art-host-gtest
Test: testrunner.py --host
Change-Id: I7cf1e33c42cfae75d7a132d66a4d293173ed9b6c
Nicolas Geoffray [Wed, 8 Mar 2017 13:41:44 +0000 (13:41 +0000)]
Merge "Blacklist test for NON_BAKER_READ_BARRIER."
Nicolas Geoffray [Wed, 8 Mar 2017 13:40:23 +0000 (13:40 +0000)]
Blacklist test for NON_BAKER_READ_BARRIER.
Test: test-art-host
Change-Id: Ia1e82d8a951ab44e47c20345bf08f241893894d0
Richard Uhler [Wed, 8 Mar 2017 13:25:43 +0000 (13:25 +0000)]
Merge "Experiment with ulimit settings to see if it fixes test failure."
Nicolas Geoffray [Wed, 8 Mar 2017 10:14:54 +0000 (10:14 +0000)]
Merge "Invoke typed arraycopy for primitive arrays."
Nicolas Geoffray [Wed, 8 Mar 2017 10:07:42 +0000 (10:07 +0000)]
Merge "Return the right value in VerifyClass."
Richard Uhler [Tue, 7 Mar 2017 13:53:32 +0000 (13:53 +0000)]
Experiment with ulimit settings to see if it fixes test failure.
RELOCATE test is failing on a build bot with file size limit exceeded.
The suspicion is ANDROID_HOST_OUT is being set oddly on the build bot so
we don't find the right directory to use as the basis for setting the
ulimit on RELOCATE and end up with much too small a limit.
Test: test-art-host
Change-Id: I18bc6cf1888a4831a313aaaba6fab4f689825284
Treehugger Robot [Wed, 8 Mar 2017 01:41:10 +0000 (01:41 +0000)]
Merge "ART: Update LZ4 library to v1.7.5"
Calin Juravle [Tue, 7 Mar 2017 23:27:22 +0000 (23:27 +0000)]
Merge "Encode inline caches with missing types in the profile"
Hiroshi Yamauchi [Tue, 7 Mar 2017 22:39:22 +0000 (14:39 -0800)]
Add two locks to expected_mutexes_on_weak_ref_access_.
The ObjectRegistry lock and the jdwp event list lock to avoid DCHECK
failures.
Some cleanup.
Bug:
35360959
Bug:
35745310
Test: test-art-host
Test: jdwp test.
Test: angler boot.
Change-Id: I16000c0c7624b1271d40c4c1a01a4e249271b67e
Hiroshi Yamauchi [Tue, 28 Feb 2017 23:01:23 +0000 (15:01 -0800)]
Revert "Add jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_."
This reverts commit
35b456a05af864da6580dd01c033efb0ed3e3e44.
Will be superceded by aog/346324.
Bug:
35360959
Test: test-art-host.
Test: jdwp test.
Change-Id: I325003cb85b29c0245de6ba86b719b51201a840c
Mathieu Chartier [Tue, 7 Mar 2017 21:32:30 +0000 (21:32 +0000)]
Merge "Change "could not find class" to warning"
Aart Bik [Tue, 7 Mar 2017 21:28:51 +0000 (13:28 -0800)]
Improve isunit computation, some tests edits needed for SIMD.
Rationale:
Break-out CL of ART Vectorizer: number 4.
The purpose is making the original CL smaller
and easier to review.
Bug:
34083438
Test: test-art-host
Change-Id: I62a174944bbbe1e08f631f322c513eeaea14de26
Aart Bik [Tue, 7 Mar 2017 21:22:58 +0000 (21:22 +0000)]
Merge "Bug fix in overflow detection on pow. With regression test."
Calin Juravle [Tue, 7 Mar 2017 21:13:14 +0000 (21:13 +0000)]
Merge "ART: Clean up code related to foreign dex use"
Calin Juravle [Sat, 4 Mar 2017 02:04:02 +0000 (18:04 -0800)]
ART: Clean up code related to foreign dex use
We simplified the way we track whether or not a dex file is used by
other apps. DexManager in the framework keeps track of the data and we
no longer need file markers on disk.
Test: device boots, foreign dex markers are not created anymore
Bug:
32871170
(cherry picked from commit
868515e2606820ea96f8b9022b442f5bcc770867)
Change-Id: If51b3301c845a8c3bbaf87d0e35a12c700e1d0aa
Merged-In: I5a04d3bba29581dedf05e21b8b20d79afa9b405a
Nicolas Geoffray [Tue, 7 Mar 2017 14:33:37 +0000 (14:33 +0000)]
Return the right value in VerifyClass.
We used to return kNoFailure when a class was already processed.
But it could have had soft failures.
Also remove IsCompileTimeVerified to avoid future confusions and
introduce ShouldVerifyAtRuntime.
Add some more checks to make sure we record the right things in
the vdex file.
bug:
33845394
test: verifier_deps_test test-art-host
Change-Id: Iff11a96e825c85db416083413761981515f405b7
Aart Bik [Tue, 7 Mar 2017 02:29:39 +0000 (18:29 -0800)]
Bug fix in overflow detection on pow. With regression test.
Rationale:
Missed potential overflow in base update.
Test: test-art-host
Bug:
35706963
Change-Id: I117d96c1fa95dde37f5676f9dc750f0a71becafa
Nicolas Geoffray [Mon, 6 Mar 2017 14:38:52 +0000 (14:38 +0000)]
Invoke typed arraycopy for primitive arrays.
Apps will always call the Object version of arraycopy. When
we can infer the types of the passed arrays, replace the method
being called to be the typed System.arraycopy one.
10% improvement on ExoPlayerBench.
Test: 641-checker-arraycopy
bug:
7103825
Change-Id: I872d7a6e163a4614510ef04ae582eb90ec48b5fa
Treehugger Robot [Tue, 7 Mar 2017 11:59:31 +0000 (11:59 +0000)]
Merge "MIPS64: Removal of unnecessary null check"
Nicolas Geoffray [Tue, 7 Mar 2017 10:22:19 +0000 (10:22 +0000)]
Merge "Add the test name that is too long for diagnosing issues."
Nicolas Geoffray [Tue, 7 Mar 2017 09:59:05 +0000 (09:59 +0000)]
Add the test name that is too long for diagnosing issues.
Test: test-art-host
Change-Id: Id9256536ab665fbab1f9788f84cc5c805dfb40a0
Tijana Jakovljevic [Tue, 7 Mar 2017 08:43:31 +0000 (09:43 +0100)]
MIPS64: Removal of unnecessary null check
Unintentionally left in https://android-review.googlesource.com/#/c/321427/.
Test: booted MIPS64 in QEMU
Change-Id: Idf9c7301f1881ca4cd427a3ef4beffae6022f339
Treehugger Robot [Tue, 7 Mar 2017 02:02:52 +0000 (02:02 +0000)]
Merge "Fix dexlayout calculation of code item size."
Treehugger Robot [Tue, 7 Mar 2017 01:49:58 +0000 (01:49 +0000)]
Merge "Check IsModifiableClass earlier in redefineClasses and retransformClasses"
Treehugger Robot [Tue, 7 Mar 2017 01:01:43 +0000 (01:01 +0000)]
Merge "Pass driver to loop opt. Add new side_effects phase."
Jeff Hao [Mon, 6 Mar 2017 23:05:38 +0000 (15:05 -0800)]
Fix dexlayout calculation of code item size.
Calculation of code item size was based on looking for the latest catch
handler referenced by a try block, but there can be handlers that aren't
referenced by any try blocks. This fix manually reads all handlers to
ensure the end is actually reached.
Bug:
35978524
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: I33b30087845f806cd34b888f1ec457ee692f2af4
Alex Light [Mon, 6 Mar 2017 23:46:43 +0000 (15:46 -0800)]
Check IsModifiableClass earlier in redefineClasses and retransformClasses
We were not checking this until we actually tried to install the
definition. This meant that we could send dex file data to agents even
if there is no chance of it being used. We would also try to get the
dex file name for non-existant dex files causing crashes.
Bug:
31455788
Test: ./test/testrunner/testrunner.py --host -t 921-hello-failure
Change-Id: I647a057fe916861d555ae142a2961f449f1bc3a5
Aart Bik [Mon, 6 Mar 2017 19:13:43 +0000 (11:13 -0800)]
Pass driver to loop opt. Add new side_effects phase.
Rationale:
Break-out CL of ART Vectorizer: number 3.
The purpose is making the original CL smaller
and easier to review.
Bug:
34083438
Test: test-art-host
Change-Id: I7cece807ee4f5fcaeae41f1deed33ac263447b77
Treehugger Robot [Mon, 6 Mar 2017 20:58:09 +0000 (20:58 +0000)]
Merge "Disable test 154 for JIT"
Calin Juravle [Sat, 4 Mar 2017 00:05:05 +0000 (16:05 -0800)]
Encode inline caches with missing types in the profile
Not all runtime types can be encoded in the profile. For example if the
receiver type is in a dex file which is not tracked for profiling its
type cannot be encoded.
Previously we would just skip over these types but that can lead to
encode a polymorphic inline cache when in fact it should be megamorphic.
With this CL, inline caches for which types are missing are marked in
the profile with a special bit, kIsMissingTypesEncoding.
Also, extend profman to understand text lines which specify an inline
cache with missing types.
Test: test-art-host
Bug:
35927981
Bug:
32434870
Change-Id: I34528a39c227f3133771fd4454701c1ddc234f40
Mingyao Yang [Mon, 6 Mar 2017 20:05:03 +0000 (20:05 +0000)]
Merge "Array store/allocation elimination"
Mathieu Chartier [Mon, 6 Mar 2017 19:16:20 +0000 (11:16 -0800)]
Change "could not find class" to warning
Otherwise its too spammy during build.
Bug:
34929159
Bug:
34927277
Test: test-art-host
Change-Id: I94ab0ad4e3d4b8f4817c6ddadafa2576b415c746
Mathieu Chartier [Mon, 6 Mar 2017 18:07:59 +0000 (10:07 -0800)]
Disable test 154 for JIT
The compiler may cause too many GCs to occur.
Bug:
35917229
Test: test-art-host ART_TEST_JIT
Test: test/testrunner/testrunner.py --host --jit
Change-Id: I1c1fbd01e815b1f9117b45ab9a419c5824c17dad
Mingyao Yang [Wed, 1 Mar 2017 22:03:51 +0000 (14:03 -0800)]
Array store/allocation elimination
Allow array store/allocation elimination if it's only accessed
by constant index, so that there is no index-aliasing.
Bug:
35634932
Test: m -j20 test-art-host-run-test
Change-Id: Ief6e27f5bdbb30988ff4f318a34b4251c93865fa
Treehugger Robot [Mon, 6 Mar 2017 17:33:34 +0000 (17:33 +0000)]
Merge "MIPS64: Refactor implicit null checks in array/field get/set"
Nicolas Geoffray [Mon, 6 Mar 2017 10:16:30 +0000 (10:16 +0000)]
Merge "Disable 115-native-bridge in Makefile."
Nicolas Geoffray [Mon, 6 Mar 2017 10:13:39 +0000 (10:13 +0000)]
Disable 115-native-bridge in Makefile.
bug:
35984597
Change-Id: I26fc9db839ae5229c7f2d82603e1172bddd07470
Treehugger Robot [Sat, 4 Mar 2017 03:41:54 +0000 (03:41 +0000)]
Merge "Add GC critical section to GetObjectsAllocated"
Mathieu Chartier [Sat, 4 Mar 2017 02:02:18 +0000 (18:02 -0800)]
Add GC critical section to GetObjectsAllocated
Prevent GC running during GetObjectsAllocated since we may get a
checkpoint request that tells us to suspend while we are doing
SuspendAll. This can cause a deadlock.
Bug:
35232978
Test: test-art-host
Change-Id: I9c02415df0a0b9fa787d7ce449ec06a40dfaf624
Treehugger Robot [Fri, 3 Mar 2017 22:47:20 +0000 (22:47 +0000)]
Merge "Extend profman to generate profiles with inline caches"
Treehugger Robot [Fri, 3 Mar 2017 22:33:18 +0000 (22:33 +0000)]
Merge "Fix OUT_DIR usage"
Calin Juravle [Tue, 14 Feb 2017 03:03:47 +0000 (19:03 -0800)]
Extend profman to generate profiles with inline caches
Extend profman logic to generate profiles based on a simple textual
respresentation. This will help writing tests for profile guided
compilation.
Before this CL, profman was able to generate profiles based on a list of
classes like:
java.lang.Comparable
java.lang.Math
java.lang.Object
This CL, enables profman to understand methods and classes alike. The
new format is:
# Classes
Ljava/lang/Comparable;
Ljava/lang/Math;
# Methods with inline caches
LTestInline;->inlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;
LTestInline;->noInlineCache(LSuper;)I
"LTestInline;->inlinePolymorhic(LSuper;)I+LSubA;,LSubB;,LSubC;"
means that method `int inlineMonomorphicSubA(Super)` from class Main
will be added to the profile with the inline cache (SubA,SubB) for its
one and only invoke virtual.
@Main#noInlineCache:(LSuper;)I+;
meaning that method `int noInlineCache' from class Main will be added
to the profile with no inline cache.
Note that the methods are allowed to have a single invoke virtual in
their dex bytecode. That is to keep the parsing the file format
simple and easy to use.
Also, add a few more tests for profiles and fix an issue caused by
writing the dex files in a possibly wrong order.
Test: m run-test-host-gtest-profile_assistant_test
Bug:
32434870
Change-Id: I6b7340cf613007117d9818be206ccb3a27b815bf
Mathieu Chartier [Fri, 3 Mar 2017 20:52:33 +0000 (20:52 +0000)]
Merge "Fix dex location filtering in dex2oat"
Mathieu Chartier [Thu, 2 Mar 2017 01:16:22 +0000 (17:16 -0800)]
Fix dex location filtering in dex2oat
Previously we were filtering dex location against profile keys,
this meant qualified ones like /system/.../app.apk would not match
the profile key app.apk in the profile. This CL fixes changes the
behavior to filter based on the profile key of the dex file location.
Fixed OatWriter checksum for raw data case (also found by regression
test).
Added missing FlushCloseOutputFiles to CompileImage causing DCHECK
failures for File destructor.
All the fixes are regression tested by dex2oat_test.
Test: test-art-host-gtest-dex2oat_test
Bug:
34929159
Bug:
35761072
Change-Id: I1bdc949bd644bfab1c8fea0b737a132b487a653b
Dan Willemsen [Fri, 3 Mar 2017 20:35:30 +0000 (12:35 -0800)]
Fix OUT_DIR usage
OUT_DIR is not guaranteed to end with a /
Test: m -j test-art-host-run-test ART_TEST_RUN_TEST_NO_RELOCATE=true
Change-Id: Ic11f4be106b3c67eb22f442f7afaea92bcf46817
Treehugger Robot [Fri, 3 Mar 2017 18:55:46 +0000 (18:55 +0000)]
Merge "Clean up ZygoteHooks stack walking slightly."
Treehugger Robot [Fri, 3 Mar 2017 18:36:10 +0000 (18:36 +0000)]
Merge "Misc cleanup for class redefinition."
Treehugger Robot [Fri, 3 Mar 2017 18:25:32 +0000 (18:25 +0000)]
Merge changes I5be41da8,Ifa4aac02
* changes:
ART: Resolve <clinit> strings in compiler driver
ART: Resolve static field strings in compiler driver
Treehugger Robot [Fri, 3 Mar 2017 18:01:46 +0000 (18:01 +0000)]
Merge "Add nullptr and size check for opening a mem mapped dex file."
Roland Levillain [Fri, 3 Mar 2017 17:38:59 +0000 (17:38 +0000)]
Merge "Increase ulimit on host to fix test 103-string-append with art-debug-gc."
Andreas Gampe [Fri, 3 Mar 2017 00:41:35 +0000 (16:41 -0800)]
ART: Resolve <clinit> strings in compiler driver
Resolve strings for <clinit> in classes that fail initialization.
This will move the data from the zygote heap into the image heap,
creating clean memory.
Increases the image size by XXX. However, at the same time decreases
the zygote heap by the same amount.
Bug:
34956610
Test: m
Test: m test-art-host
Test: Device boots
Change-Id: I5be41da8424d5de65c02a2aed1ac4d6113741876
Alex Light [Thu, 2 Mar 2017 00:57:08 +0000 (16:57 -0800)]
Misc cleanup for class redefinition.
Added an iterator to access the RedefinitionData through and replaced
some code with scopes.
Bug:
31455788
Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: Id7a381ac2b942b47d67619cd1da11858f8c9b41b
Andreas Gampe [Thu, 2 Mar 2017 21:50:36 +0000 (13:50 -0800)]
ART: Resolve static field strings in compiler driver
Resolved strings for static final fields in classes that fail
initialization. This will move the data from the zygote heap into
the image heap, creating clean memory.
Increases the image size by ~100K. However, at the same time decreases
the zygote heap by the same amount.
Bug:
34956610
Test: m
Test: m test-art-host
Test: Device boots
Change-Id: Ifa4aac0209f2364488b164b04daa9539821bc12b
Alex Light [Wed, 1 Mar 2017 17:00:28 +0000 (09:00 -0800)]
Clean up ZygoteHooks stack walking slightly.
Test: Build and run marlin with libartd.so
Change-Id: I4a67935c5c7270636085c3ee12db0ebc1798a89e
Roland Levillain [Fri, 3 Mar 2017 15:39:51 +0000 (15:39 +0000)]
Increase ulimit on host to fix test 103-string-append with art-debug-gc.
Strace is turned on by default on the art-debug-gc configuration, and
was going over the file size limit for this test on host (x86).
Test: Run ART run-test 103-string-append on art-debug-gc configuration.
Change-Id: I5cf28f054468babcf4d9b614b8e64b365a5691c5
Roland Levillain [Fri, 3 Mar 2017 12:30:17 +0000 (12:30 +0000)]
Merge "Fix date on devices in setup-buildbot-device.sh."
Richard Uhler [Fri, 3 Mar 2017 08:52:23 +0000 (08:52 +0000)]
Merge "Clean up OatFileAssistant getting of image info."
Tijana Jakovljevic [Tue, 17 Jan 2017 15:59:03 +0000 (16:59 +0100)]
MIPS64: Refactor implicit null checks in array/field get/set
Rationale: on MIPS64 64-bit loads and stores may be performed
as pairs of 32-bit loads/stores. Implicit null checks must be
associated with the first 32-bit load/store in a pair and not
the last. This change ensures proper association of said checks
(a few were done after the last 32-bit load/store in a pair)
and lays ground for further improvements in array/field get/set.
Additionally ported to MIPS32.
Test: mma test-art-target-run-test in QEMU
Test: mma test-art-host-gtest
Change-Id: If2612df62c21522959e69c637a36cc4ea962a32e
Jeff Hao [Fri, 3 Mar 2017 00:36:31 +0000 (16:36 -0800)]
Add nullptr and size check for opening a mem mapped dex file.
The bug has an apk with 0 size classes.dex. When dex2oat tries to open
the file for layout, it crashes. This adds checks to ensure that the mem
map isn't null and has a sane size before opening it as a dex file.
Bug:
35892406
Test: mm test-art-host
Change-Id: I5f6b5a1e7bbccf4fe3483b68023d51436eb71805
Treehugger Robot [Fri, 3 Mar 2017 02:35:14 +0000 (02:35 +0000)]
Merge "Clear empty unevac regions in ClearFromSpace"
Treehugger Robot [Fri, 3 Mar 2017 01:56:38 +0000 (01:56 +0000)]
Merge "Fix dexlayout manual walking of 0 length catch handler."
Mathieu Chartier [Tue, 28 Feb 2017 00:37:21 +0000 (16:37 -0800)]
Clear empty unevac regions in ClearFromSpace
The motivation is to release RAM for empty unevac regions at the end
of the current GC instead of next GC.
Results on RitzPerf:
This optimization accounts for 2.33GB out of 53GB of freed bytes ~4%.
This also means that the average heap size is probably 4% smaller,
though it may not translate to RAM savings for actual apps.
Bug:
35800768
Bug:
12687968
Test: test-art-host
Change-Id: I38fa8dcda1aa6b439060ff170941b3a53022846f
Mathieu Chartier [Thu, 2 Mar 2017 23:08:08 +0000 (23:08 +0000)]
Merge "Don't fail for null dex elements in FlattenPathClassLoader"
Mathieu Chartier [Thu, 2 Mar 2017 21:35:14 +0000 (21:35 +0000)]
Merge "Add missing FlushCloseOutputFiles to CompileImage"
Mathieu Chartier [Thu, 2 Mar 2017 20:02:13 +0000 (12:02 -0800)]
Don't fail for null dex elements in FlattenPathClassLoader
Dex elements can be null for resource jars that do not contain any
dex files. This enables loading app images for the system server.
Bug:
34929159
Test: test-art-host
Change-Id: Iec663f8e19c9099e12902c9959b3a0ae32bb2ea7
Mathieu Chartier [Thu, 2 Mar 2017 20:57:01 +0000 (20:57 +0000)]
Merge "Increase gcloop threshold to 15"
Mathieu Chartier [Thu, 2 Mar 2017 20:00:31 +0000 (20:00 +0000)]
Merge "Fixed OatWriter checksum for raw data case"
Jeff Hao [Thu, 2 Mar 2017 18:59:43 +0000 (10:59 -0800)]
Fix dexlayout manual walking of 0 length catch handler.
This fails for 0 length handlers that are unreferenced by any try
blocks. Unreferenced handlers are handled differently and walked
manually, and there was an error in the 0 size case, when there is only
a single catch all handler.
Bug:
35874292
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: Ie061b4fd0e7e8be7e3e382b11d2606f5ffc0817a
Treehugger Robot [Thu, 2 Mar 2017 18:47:55 +0000 (18:47 +0000)]
Merge "Add dexlayout test where class data section precedes code items."
Mathieu Chartier [Thu, 2 Mar 2017 18:43:07 +0000 (10:43 -0800)]
Increase gcloop threshold to 15
12 seems to be flaky for the JIT configuration.
Bug:
35917229
Test: test-art-host
Change-Id: Ia3bcd542d58f1dce16d2bc21cbee9f5d2650035f
Mathieu Chartier [Thu, 2 Mar 2017 18:14:08 +0000 (10:14 -0800)]
Add missing FlushCloseOutputFiles to CompileImage
Was causing DCHECK failure for gtest that generate app image. Test
is in followup CL.
Test: clean-oat-host && test-art-host
Bug:
34929159
Change-Id: Ie5db008a71a6313ff7dc749f7cc1ac21255efdd7
Mathieu Chartier [Thu, 2 Mar 2017 17:49:03 +0000 (09:49 -0800)]
Fixed OatWriter checksum for raw data case
The checksum from the dex file seems to be incorrect, use the one
from the OatDexFile since it matches the original dex checksum.
Regression test in follow up CL.
Test: test-art-host-gtest -j32
Bug:
35761072
Change-Id: I79f0e720c9a2fc33286c4d4c1ef4ab9d194533a9
Aart Bik [Thu, 2 Mar 2017 17:07:01 +0000 (17:07 +0000)]
Merge "New utilities for induction variables."
Richard Uhler [Wed, 22 Feb 2017 11:37:41 +0000 (11:37 +0000)]
Clean up OatFileAssistant getting of image info.
* ImageInfo.oat_checksum is no longer unused.
* Don't abort if we can't read secondary isa images.
Test: m art-test-host
Bug:
34385298
Bug:
34800919
Change-Id: I4d1ad4e2435cc62d38cd7143bc71313e319e952d
Richard Uhler [Thu, 2 Mar 2017 09:18:16 +0000 (09:18 +0000)]
Merge "Don't include patch information when generating images."
Mathieu Chartier [Thu, 2 Mar 2017 01:16:16 +0000 (01:16 +0000)]
Merge "Add regression test for vdex + layout combination"
Jeff Hao [Thu, 2 Mar 2017 00:44:50 +0000 (16:44 -0800)]
Add dexlayout test where class data section precedes code items.
Bug:
35855748
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: I8365cb5699014d04dd7561758255802d811d58c6
Mathieu Chartier [Wed, 1 Mar 2017 23:20:30 +0000 (15:20 -0800)]
Add regression test for vdex + layout combination
Test compiling with vdex + layout.
Test failure example:
dex2oatd F 03-01 15:19:22 68522 68522 oat_writer.cc:2269] Check failed: oat_dex_file->source_.IsRawFile()
Bug:
35761072
Test: test-art-host-gtest-dex2oat_test
Change-Id: Ieefda4b2992cfc4eaf77c7c61062e825e3c5456f
Treehugger Robot [Wed, 1 Mar 2017 22:04:53 +0000 (22:04 +0000)]
Merge "Prevent dexlayout from moving code items if preceded by class data."
Treehugger Robot [Wed, 1 Mar 2017 21:04:00 +0000 (21:04 +0000)]
Merge "Handle RawData case for DexLayout"
Jeff Hao [Wed, 1 Mar 2017 20:18:19 +0000 (12:18 -0800)]
Prevent dexlayout from moving code items if preceded by class data.
Class data has uleb encoded offsets to the code item, and moving code
items will change the size of the class data, which would in turn affect
the code item offsets if they precede the code items.
For now, make it so that dexlayout does not move the code items at all
in this case. A better fix would be to swap the order of the sections in
dexlayout, but that can be done in a future CL.
Unit test to follow.
Bug:
35855748
Test: mm test-art-host
Change-Id: Ica6da1e5e951cf0003fc9793f13ad10b74004eb9
Mathieu Chartier [Wed, 1 Mar 2017 04:17:30 +0000 (20:17 -0800)]
Handle RawData case for DexLayout
For vdex, the RawData dex file source is used. This was not
compatible with the existing LayoutAndWriteDexFile code. Added
handling to support RawData sources.
Without the handing, it was incorrectly using GetRawFile and casting
the dex file header to a File* causing a bogus fd number.
Test: adb shell cmd package compile -a --reset
Test: adb shell cmd package compile -a -m speed-profile
Test: test-art-host
Bug:
35761072
Change-Id: I74bdd17295479058e9245d1defb132df40fff474
Aart Bik [Tue, 28 Feb 2017 22:41:55 +0000 (14:41 -0800)]
New utilities for induction variables.
Rationale:
Break-out CL of ART Vectorizer: 2 OF many.
The purpose is making the original CL smaller
and easier to review.
Bug:
34083438
Test: test-art-host
Change-Id: I46d297eba504af3850a5998ee279ea9f7b38bed8
Vladimir Marko [Wed, 1 Mar 2017 17:38:28 +0000 (17:38 +0000)]
Merge "MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code"
Treehugger Robot [Wed, 1 Mar 2017 16:52:09 +0000 (16:52 +0000)]
Merge "ART: Add correct field index to reference visiting"
Roland Levillain [Wed, 1 Mar 2017 14:14:10 +0000 (14:14 +0000)]
Fix date on devices in setup-buildbot-device.sh.
Update date on device if the difference with host is more than one hour.
Test: Set a bogus date on device, then run setup-buildbot-device.sh.
Change-Id: I9f5a3acdf699c1d04c838c8b156f59bf0f2c5550
Roland Levillain [Wed, 1 Mar 2017 13:16:48 +0000 (13:16 +0000)]
Merge "MIPS: Implement heap poisoning in ART's Optimizing compiler."
Nicolas Geoffray [Wed, 1 Mar 2017 13:13:45 +0000 (13:13 +0000)]
Merge "Revert "Revert "Intrinsify Integer.valueOf."""
Nicolas Geoffray [Wed, 1 Mar 2017 12:31:01 +0000 (12:31 +0000)]
Merge "Update run-tests script/dependencies to use -testdex jars."
Nicolas Geoffray [Wed, 1 Mar 2017 10:03:08 +0000 (10:03 +0000)]
Update run-tests script/dependencies to use -testdex jars.
run-tests run with --no-image need the dex files in the
bootclasspath to be available. The -testdex jars are guaranteed
unstripped, so use them instead.
This was always broken, but vmarko@ just added a test that
forces --no-image.
bug:
24535627
Test: test-art-target
Change-Id: I391573cffd0749d814fd81517e99dfc8f0fd59d5
Nicolas Geoffray [Wed, 1 Mar 2017 11:01:41 +0000 (11:01 +0000)]
Revert "Revert "Intrinsify Integer.valueOf.""
Fix heap poisoning.
LOG INFO instead of ERROR to avoid run-test failures with --no-image.
bug:
30933338
Test: ART_HEAP_POISONING=true test-art-host test-art-target
This reverts commit
db7b44ac3ea80a722aaed12e913ebc1661a57998.
Change-Id: I0b7d4f1eb11c62c9a3df8e0de0b1a5d8af760181