OSDN Git Service
Aart Bik [Wed, 25 May 2016 23:02:39 +0000 (23:02 +0000)]
Merge "ART: Print jit memory use only if we have samples"
Treehugger Robot [Wed, 25 May 2016 19:26:43 +0000 (19:26 +0000)]
Merge "Fix oat_writer to use WriteData which updates checksum."
Richard Uhler [Wed, 25 May 2016 18:17:53 +0000 (18:17 +0000)]
Merge changes I5c891dc1,Ie717089d
* changes:
Base isDexOptNeeded result on OatFileAssistant::IsUpToDate.
Only compile dex files if they are not up to date.
Jeff Hao [Mon, 23 May 2016 21:30:44 +0000 (14:30 -0700)]
Fix oat_writer to use WriteData which updates checksum.
OatWriter was using WriteFully in some places instead.
Bug:
28874264
(cherry-picked from commit
5e7cbde3100b0bfb58277accc9d71a94636ea727)
Change-Id: I7dac3ad0597c210ba6e12e0cc1670277d7a28fc7
Treehugger Robot [Wed, 25 May 2016 16:26:51 +0000 (16:26 +0000)]
Merge "Avoid long sleep in ProfileSaver"
Brian Carlstrom [Wed, 25 May 2016 02:45:30 +0000 (19:45 -0700)]
Avoid long sleep in ProfileSaver
This was due to subtracting a >20s number of nanos from the constant for 20s.
Bug:
28880120
(cherry picked from commit
8f15335d96eef7a3bcdd4f2b309a727791b67e68)
Change-Id: Ied5f2a4264e4e0035e1ce8719eda9c57c8482443
Treehugger Robot [Wed, 25 May 2016 15:05:01 +0000 (15:05 +0000)]
Merge "Remove bogus DCHECK."
Nicolas Geoffray [Wed, 25 May 2016 13:52:37 +0000 (14:52 +0100)]
Remove bogus DCHECK.
bug:
28771056
Change-Id: I43a1d99623adc2393d7004927ef1651654ef137c
Treehugger Robot [Wed, 25 May 2016 13:00:17 +0000 (13:00 +0000)]
Merge "Put boot class loader classes and strings in dex cache of app images."
Nicolas Geoffray [Tue, 26 Apr 2016 17:30:31 +0000 (18:30 +0100)]
Put boot class loader classes and strings in dex cache of app images.
The reason for b/
28295348 was that an ArtMethod of the boot image was
in the app image dex cache, but the declaring class of that
boot image method was not.
Since objects of boot images don't need fixups, the comparisons for
FixupStrings and FixupResolvedTypes was always false for them.
bug:
28295348
(cherry picked from commit
1df3b55abea375671b79e3f4e6851be757a2d8a7)
Change-Id: I257b68089878ac9ab9f6fc78f726f9fb322dd884
Treehugger Robot [Wed, 25 May 2016 11:39:28 +0000 (11:39 +0000)]
Merge "Apply String.equals() optimizations on arm, arm64 and x86-64."
Vladimir Marko [Tue, 24 May 2016 18:30:45 +0000 (19:30 +0100)]
Apply String.equals() optimizations on arm, arm64 and x86-64.
This is a follow-up to
https://android-review.googlesource.com/174192
Change-Id: Ie71197df22548d6eb0ca773de6f19fcbb975f065
Mathieu Chartier [Wed, 25 May 2016 01:27:59 +0000 (01:27 +0000)]
Merge "Fix broken DCHECK"
Mathieu Chartier [Wed, 25 May 2016 00:41:21 +0000 (17:41 -0700)]
Fix broken DCHECK
Dex cache may now contain references into boot image. Only check
classes that are actually in the application image.
Bug:
28295348
(cherry picked from commit
55accd5725442026c8c32dc773b1cd12a65f90f6)
Change-Id: Ic585e444f60734768a5499ccaf14d68bf3685d50
Richard Uhler [Tue, 24 May 2016 22:42:37 +0000 (15:42 -0700)]
Base isDexOptNeeded result on OatFileAssistant::IsUpToDate.
So that it is consistent with when ART will try to run dex2oat.
Bug:
28826195
(cherry picked from commit
10267549f5ea8acc07ea6163a87c9b4b8ea62be4)
Change-Id: I5c891dc1a5a42ff7e0a4d3e66e9ecca37da743f2
Richard Uhler [Tue, 17 May 2016 17:34:52 +0000 (10:34 -0700)]
Only compile dex files if they are not up to date.
Instead of trying to compile them all the time, and relying on file
permissions to keep us from overwriting up-to-date dex files with
different compiler filters.
Bug:
27641809
Bug:
28639246
Bug:
28826195
Change-Id: Ie717089d58517427b6f9a522b48146761c57a1a9
Mathieu Chartier [Wed, 25 May 2016 00:07:39 +0000 (00:07 +0000)]
Merge "Add methods with samples during launch to profile"
Mathieu Chartier [Wed, 18 May 2016 15:51:52 +0000 (08:51 -0700)]
Add methods with samples during launch to profile
For the snapshot taken after application launch we look at all of
the methods with one or more samples.
Bug:
28750506
(cherry picked from commit
c600eaa1089342db81ac1869437199efc1f6053b)
Change-Id: Id8de4ee61c3f0b7594e638049fdd9d0848b49684
Treehugger Robot [Tue, 24 May 2016 22:51:14 +0000 (22:51 +0000)]
Merge "Don't update checksum if data ptr is null."
Jeff Hao [Tue, 24 May 2016 02:17:04 +0000 (19:17 -0700)]
Don't update checksum if data ptr is null.
Passing a nullptr to adler32 resets it to its initial value.
Bug:
28874264
(cherry-picked from commit
2c6b49498e2f084ce217fcd3327103eadc1e0c37)
Change-Id: I9ac1b66004d4028a67aca18057c03ba9fb494041
Mathieu Chartier [Tue, 24 May 2016 20:38:52 +0000 (20:38 +0000)]
Merge "Increase test timeouts"
Aart Bik [Tue, 24 May 2016 19:48:56 +0000 (19:48 +0000)]
Merge "Fix minor issues that prevented DexFuzz to run on host."
Treehugger Robot [Tue, 24 May 2016 18:19:35 +0000 (18:19 +0000)]
Merge "Fix misc-macro-parentheses warnings."
Aart Bik [Tue, 24 May 2016 17:54:11 +0000 (17:54 +0000)]
Merge "Fix bug in verifier: soft fail was hiding hard fail."
Mathieu Chartier [Tue, 24 May 2016 17:24:53 +0000 (10:24 -0700)]
Increase test timeouts
Increased for strace to 30 min. Increased other places by 100% to
help prevent random timeouts on overloaded machines.
Change-Id: I9dd4def34513062723ae6744eabc2bacc68b4e0f
Treehugger Robot [Tue, 24 May 2016 17:37:34 +0000 (17:37 +0000)]
Merge "Remove no-op call to android_update_LD_LIBRARY_PATH"
Treehugger Robot [Tue, 24 May 2016 17:30:07 +0000 (17:30 +0000)]
Merge "Compile JNI stubs for verify-profile and interpret-only."
Aart Bik [Fri, 20 May 2016 17:45:57 +0000 (10:45 -0700)]
Fix minor issues that prevented DexFuzz to run on host.
BUG=
27036745
Change-Id: I8715efb9219f25c6b8ae2d14c5bdcfd83f881d40
Aart Bik [Mon, 23 May 2016 21:58:49 +0000 (14:58 -0700)]
Fix bug in verifier: soft fail was hiding hard fail.
Rationale:
Dexfuzzing found a situation where a soft fail (modifying
a final field) was hiding a hard fail (type error on that
field), which caused a crash in the compiler later on.
Also added a crash-before/pass-after regression test,
so we don't add the return by accident later.
BUG=
28908555
Change-Id: I0cdc400be22a2d9eb00db8c8c6b25a85fbdac993
Dimitry Ivanov [Tue, 24 May 2016 00:16:55 +0000 (17:16 -0700)]
Remove no-op call to android_update_LD_LIBRARY_PATH
With linker-namespaces enabled for all target sdk versions
the call to android_update_LD_LIBRARY_PATH is no longer needed.
Bug: http://b/
26040253
Bug: http://b/
27702070
Change-Id: I77c27c10a435e223824e1b69f727d0bc37a26306
(cherry picked from commit
1bd15f0311b6d7c5b28cf70914831006a9ef64c3)
Vladimir Marko [Mon, 23 May 2016 14:32:42 +0000 (15:32 +0100)]
Compile JNI stubs for verify-profile and interpret-only.
This is the intended behavior to have a good JNI transition
performance.
Bug:
28902384
(cherry picked from commit
8c185bf0c6f18a5349bc87a7e3751ba06d90f461)
Change-Id: I52767909b916ada3c619206c8838b85bff5ac316
Roland Levillain [Tue, 24 May 2016 10:26:42 +0000 (10:26 +0000)]
Merge "Enforce class definition ordering rules in v37 Dex files."
Pavel Vyssotski [Tue, 17 May 2016 10:37:53 +0000 (16:37 +0600)]
ART: Print jit memory use only if we have samples
Otherwise we got crashes on sigquit/shutdown trying to dump
JIT statistics when the histograms are empty.
Change-Id: Iac3ab5b51121f9bb5656f6ef71af785706541288
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
Treehugger Robot [Mon, 23 May 2016 18:52:23 +0000 (18:52 +0000)]
Merge "Avoid the need for the black color for the baker-style read barrier."
Hiroshi Yamauchi [Tue, 22 Dec 2015 19:09:18 +0000 (11:09 -0800)]
Avoid the need for the black color for the baker-style read barrier.
We used to set marked-through non-moving objects to black to
distinguish between an unmarked object and a marked-through
object (both would be white without black). This was to avoid a rare
case where a marked-through (white) object would be incorrectly set to
gray for a second time (and left gray) after it's marked
through (white/unmarked -> gray/marked -> white/marked-through ->
gray/incorrect). If an object is left gray, the invariant would be
broken that all objects are white when GC isn't running. Also, we
needed to have an extra pass over non-moving objects to change them
from black to white after the marking phase.
To avoid the need for the black color, we use a 'false gray' stack to
detect such rare cases and register affected objects on it and change
the objects to white at the end of the marking phase. This saves some
GC time because we can avoid the gray-to-black CAS per non-moving
object as well as the extra pass over non-moving objects.
Ritzperf EAAC (N6):
Avg GC time: 232 -> 183 ms (-21%)
Total GC time: 15.3 -> 14.1 s (-7.7%)
Bug:
12687968
Change-Id: Idb29c3dcb745b094bcf6abc4db646dac9cbd1f71
Mingyao Yang [Mon, 23 May 2016 16:50:47 +0000 (16:50 +0000)]
Merge "Revert "Revert "Move rewritten StringFactory call results into dex registers for deopt"""
Treehugger Robot [Mon, 23 May 2016 09:22:31 +0000 (09:22 +0000)]
Merge "Do not set property jpda.settings.syncPort in JDWP tests."
Mathieu Chartier [Sat, 21 May 2016 00:03:41 +0000 (00:03 +0000)]
Merge "Only fill methods with 0xFE on debug builds"
Mathieu Chartier [Thu, 19 May 2016 17:13:04 +0000 (10:13 -0700)]
Only fill methods with 0xFE on debug builds
The GC scans classes without holding any locks, we can not fill
the methods if it is running. Added a GC critical section to address
this. Fixes random crash when scanning classes' methods.
Only for debug builds to not hurt performance.
(cherry picked from commit
22bd2a1b5ec2a5038cc3ae1964781f30aef0315f)
Bug:
28699001
Change-Id: If96155eaf3fc0e6df31f57dcf32fbd4063b09345
Mingyao Yang [Thu, 19 May 2016 17:48:40 +0000 (10:48 -0700)]
Revert "Revert "Move rewritten StringFactory call results into dex registers for deopt""
Potential gc points can make the result value stale. We now set the result value
to null proactively once it's moved to shadow frame registers. IsStringInit()
is written in a way that does string comparison instead of requiring method
resolution so that it doesn't have a gc point. Also we don't cache the callee
method during frame unwinding since the method may be rewritten already.
Bug:
28555675
Change-Id: Ic51511a4a0fc84a852d8d907f91e7835f49ac478
Roland Levillain [Fri, 20 May 2016 17:16:54 +0000 (18:16 +0100)]
Do not set property jpda.settings.syncPort in JDWP tests.
Let the OS choose the port automatically.
Bug:
28869570
Change-Id: I79775f9e72f7f8d0f9ec3d68c6f0bdb057ca13ff
Vladimir Marko [Fri, 20 May 2016 13:55:13 +0000 (13:55 +0000)]
Merge "ARM: Add new String.compareTo intrinsic."
Scott Wakeling [Mon, 18 Apr 2016 08:00:11 +0000 (09:00 +0100)]
ARM: Add new String.compareTo intrinsic.
Benchmarked on Nexus6P big, little, and all cores. The new intrinsic is
faster than pStringCompareTo for compare lengths on [1,512], so the
runtime call is no longer needed.
Change-Id: If853b592dfc5e561ea3389b51729f37a2c89c18e
Vladimir Marko [Fri, 20 May 2016 10:53:11 +0000 (10:53 +0000)]
Merge "ARM64: Move BIC after branch in StringCompareTo intrinsic."
Scott Wakeling [Fri, 20 May 2016 09:41:38 +0000 (10:41 +0100)]
ARM64: Move BIC after branch in StringCompareTo intrinsic.
Change-Id: Ic785dd93daab73b4b37917097c8c8ea2de797ed2
Treehugger Robot [Fri, 20 May 2016 02:26:43 +0000 (02:26 +0000)]
Merge "Add missing check for IsShuttingDown in profile saver"
Treehugger Robot [Fri, 20 May 2016 01:37:46 +0000 (01:37 +0000)]
Merge "ART: Check whether an oat file exists before opening"
Calin Juravle [Wed, 18 May 2016 22:49:36 +0000 (15:49 -0700)]
Add missing check for IsShuttingDown in profile saver
Bug:
28814718
(cherry picked from commit
0233a413ba42aa34a92c357c8dcfbe48871788b9)
Change-Id: I709fc30147047c7a420cd6ff2f0c3b57c54c2021
Andreas Gampe [Thu, 19 May 2016 04:10:42 +0000 (21:10 -0700)]
ART: Check whether an oat file exists before opening
The two-stage process of dlopen and our own loader is expensive.
Considering that the OatFileAssistant needs to check two locations,
one of which is unlikely to have a file for the common case of apps
installed in data, do a file existence check before attempting to
load the file.
Remove an unused variable.
Saves about 0.25ms on a N6P.
Bug:
28801010
(cherry picked from commit
d9a720bcb5df2c135f161c7c6da2d25db4400dca)
Change-Id: I0aff9c276c0f539723f8a92663f14ce72160c44d
Aart Bik [Thu, 19 May 2016 20:30:19 +0000 (20:30 +0000)]
Merge "Do not allow OSR jump while debugging is active."
Treehugger Robot [Thu, 19 May 2016 19:02:16 +0000 (19:02 +0000)]
Merge changes I0bbdf83d,I70156f98
* changes:
ART: Fix Mac build
ART: Optimize PreSetup pass for oat-file open
Aart Bik [Wed, 18 May 2016 22:44:07 +0000 (15:44 -0700)]
Do not allow OSR jump while debugging is active.
Rationale:
This prevents dangerous transitions between interpreter
and osr compiled code while e.g. single stepping through
a method that is becoming hot.
BUG=
28672961
Change-Id: Ife8e641c05b3e3eb01284212270595c8677d6673
Vladimir Marko [Thu, 19 May 2016 17:37:39 +0000 (17:37 +0000)]
Merge "Clean up JNI calling convention callee saves."
Aart Bik [Thu, 19 May 2016 17:25:26 +0000 (17:25 +0000)]
Merge "MIPS32: java.lang.Math.round(float)"
Mathieu Chartier [Thu, 19 May 2016 17:17:54 +0000 (17:17 +0000)]
Merge "Fix profile saver initial wait"
Vladimir Marko [Thu, 19 May 2016 09:37:24 +0000 (10:37 +0100)]
Clean up JNI calling convention callee saves.
Precalculate callee saves at compile time and return them
as ArrayRef<> instead of keeping then in a std::vector<>.
Change-Id: I4fd7d2bbf6138dc31b0fe8554eac35b0777ec9ef
Nicolas Geoffray [Thu, 19 May 2016 17:11:23 +0000 (17:11 +0000)]
Merge "Revert "Revert "ART: Reference.getReferent intrinsic for x86 and x86_64"""
Mathieu Chartier [Thu, 19 May 2016 02:51:23 +0000 (19:51 -0700)]
Fix profile saver initial wait
Was using TimedWait for the initial wait, but this can return
early if the process receives any interrupt (due to futex). The
solution is to use a wait loop. If the wait returned early, not
enough classes were including in the profile. This negatively
affected application launch times in some scenarios.
Sample wait times before the change:
Waited 2.002s
Waited 97.808ms
Waited 182.676ms
Waited 2.000s
Waited 1.678s
Bug:
27688727
(cherry picked from commit
0ec065d55ccc4eb0956b0a2231bcc8c1a6d1d273)
Change-Id: I7cfdda9dcff942c7618d6022a0c31f872fb76fcf
Andreas Gampe [Thu, 19 May 2016 04:27:00 +0000 (21:27 -0700)]
ART: Fix Mac build
Follow-up to
9821cceebf077cb747aed543582b3d740a03ea7f.
Bug:
28801010
(cherry picked from commit
17fc4bda7987654709dcc24ea5a7bd6a859e0966)
Change-Id: I0bbdf83d64ea81e56824aa19bfae3baa341a2b73
Andreas Gampe [Wed, 18 May 2016 20:09:54 +0000 (13:09 -0700)]
ART: Optimize PreSetup pass for oat-file open
The PreSetup pass for opening an oatfile with dlopen parses all
shared objects and tries to retrieve the corresponding mem map
(so as to have a fake MemMap to reserve the space for any scanning
operations and so on). Optimistically optimize this pass by counting
the number of shared objects before the dlopen, and skipping as
many afterwards.
This saves about half a millisecond on an N6P.
Bug:
28801010
(cherry picked from commit
9821cceebf077cb747aed543582b3d740a03ea7f)
Change-Id: I70156f9875e89c5af3c9e36e8f01c5662e3f736e
Treehugger Robot [Thu, 19 May 2016 12:19:53 +0000 (12:19 +0000)]
Merge "Allow libcore and JDWP tests to be executed without JIT."
Roland Levillain [Thu, 19 May 2016 11:24:17 +0000 (12:24 +0100)]
Allow libcore and JDWP tests to be executed without JIT.
To use AOT compiling, pass `--no-jit` option to
run-libcore-tests.sh and run-jdwp-tests.sh
Change-Id: I16efce1f48747ecbf8b900427be73c5694b5fb13
Roland Levillain [Thu, 19 May 2016 11:13:44 +0000 (11:13 +0000)]
Merge "Catch classes inheriting from themselves in the class linker."
Treehugger Robot [Thu, 19 May 2016 01:06:25 +0000 (01:06 +0000)]
Merge "Revert "Move rewritten StringFactory call results into dex registers for deopt""
Hiroshi Yamauchi [Thu, 19 May 2016 00:15:12 +0000 (00:15 +0000)]
Revert "Move rewritten StringFactory call results into dex registers for deopt"
This reverts commit
8ca33bf04060fadd5b35fa93fa56547c62fe52e7.
597-deopt-new-string is failing.
Bug:
28846692
Bug:
28555675
Change-Id: Ibfb59ec36e089c987ea64e4af4ca3709e536412a
Alex Light [Wed, 18 May 2016 21:05:41 +0000 (21:05 +0000)]
Merge "Make a fake libart for misbehaving apps."
Mingyao Yang [Wed, 18 May 2016 17:45:27 +0000 (17:45 +0000)]
Merge "Move rewritten StringFactory call results into dex registers for deopt"
Roland Levillain [Wed, 18 May 2016 14:52:54 +0000 (15:52 +0100)]
Catch classes inheriting from themselves in the class linker.
(cherry picked from commit
90328ac545f65759a8e4fb217a75332906795518)
Bug:
28685551
Bug:
27682580
Bug:
28830038
Change-Id: If568013bf3c82c1df9b282522712d9af5ca5945d
Treehugger Robot [Wed, 18 May 2016 12:50:03 +0000 (12:50 +0000)]
Merge "Mark concrete HIR instructions as FINAL."
Vladimir Marko [Wed, 18 May 2016 11:48:17 +0000 (12:48 +0100)]
Mark concrete HIR instructions as FINAL.
This allows the compiler to apply more optimizations.
Change-Id: Ic7d8a457ea4e7d5853195cc4b56482703a1176d5
Roland Levillain [Wed, 18 May 2016 10:41:33 +0000 (11:41 +0100)]
Enforce class definition ordering rules in v37 Dex files.
These new checks also reject classes extending or
implementing themselves directly or transitively within
a single Dex file.
Bug:
28812524
Bug:
28797012
Bug:
28685551
Bug:
27682580
Change-Id: I51c43f8b4b6a7abaade63682411e61f21767f5d4
Treehugger Robot [Wed, 18 May 2016 05:15:59 +0000 (05:15 +0000)]
Merge "ART: Fix systrace monitor logging"
Andreas Gampe [Tue, 17 May 2016 17:13:10 +0000 (10:13 -0700)]
ART: Fix systrace monitor logging
Thinlock unlocking was incorrectly unconditionally ending a block.
Bug:
28423466
(cherry picked from commit
825ab1c3f44fd84e5967f023c2dd8d36c6906f08)
Change-Id: Ifaebd9e959041e157e292d4cba05675a37e9c700
Nicolas Geoffray [Wed, 18 May 2016 03:08:54 +0000 (03:08 +0000)]
Merge "ART: Blacklist a libcore test for investigation"
Andreas Gampe [Wed, 18 May 2016 02:00:23 +0000 (19:00 -0700)]
ART: Blacklist a libcore test for investigation
Blacklist dalvik.system.DexClassLoaderTest#testDexThenPathClassLoader
for investigation.
Bug:
28826195
Change-Id: Ibff00293af3c7bc272e3b419f4065c0fd8c069cf
Alex Light [Fri, 15 Apr 2016 19:41:09 +0000 (12:41 -0700)]
Make a fake libart for misbehaving apps.
Bug:
27775991
Change-Id: I22864aa22d4864d85e055a5b1d3ff1faf122011b
(cherry picked from commit
b270b9e6cba453209e226b0f621c75f2e51f122a)
Mingyao Yang [Mon, 16 May 2016 18:01:49 +0000 (11:01 -0700)]
Move rewritten StringFactory call results into dex registers for deopt
Bug:
28555675
Change-Id: I9236df283f2e83ca5dcde01f73dc0522d745cd59
Mingyao Yang [Tue, 17 May 2016 22:11:33 +0000 (22:11 +0000)]
Merge "Fix an assert during jdwp debugging."
Treehugger Robot [Tue, 17 May 2016 22:06:51 +0000 (22:06 +0000)]
Merge "Keep oat file unique pointers until they are no longer used."
Mathieu Chartier [Tue, 17 May 2016 21:53:10 +0000 (21:53 +0000)]
Merge "ART: Return native debuggable status of the app."
Jeff Hao [Tue, 26 Apr 2016 21:27:31 +0000 (14:27 -0700)]
Keep oat file unique pointers until they are no longer used.
Before, the unique pointer would be deleted before we were finished
using the dex file we opened from the oat file.
Bug:
28359191
(cherry-picked from commit
a6d46161aea07ebd1cbd6ab78b2b323f940e9c1e)
Change-Id: I737d17536967af48d8748bde2b266a82410830b7
Oleksiy Vyalov [Thu, 31 Mar 2016 03:27:00 +0000 (20:27 -0700)]
ART: Return native debuggable status of the app.
Bug:
27942453
(cherry picked from commit
dfbbeef151d52ec9c5bbc9f12449d4c74b8ec19e)
Change-Id: Ie474f4d830237d015436158829264b8bdf0a7194
Mathieu Chartier [Tue, 17 May 2016 20:28:33 +0000 (20:28 +0000)]
Merge "Fix debug leftover in profman"
Calin Juravle [Tue, 29 Mar 2016 13:03:10 +0000 (14:03 +0100)]
Fix debug leftover in profman
(cherry picked from commit
309eb7b11e6250b974c574f256d1c760cafa814e)
Bug:
27600652
Change-Id: I32466623379928cdaad839303e6ea3a39d673cd4
Treehugger Robot [Tue, 17 May 2016 18:53:31 +0000 (18:53 +0000)]
Merge "Support to pass <uses-library> option through to dex2oat."
Jeff Hao [Tue, 29 Mar 2016 03:39:50 +0000 (20:39 -0700)]
Support to pass <uses-library> option through to dex2oat.
This change takes an app's shared libraries specified by <uses-library>
and passes it through to dex2oat to be used during compilation.
Part of a multi-project change.
Bug:
26880306
(cherry-picked from commit
26e8a2f150cd7f7195a10650ab8a5b6fa5014bc8)
Change-Id: I72a352abdfc37eacd8bedfa6c218e3809ca8e39c
Mathieu Chartier [Tue, 17 May 2016 17:10:07 +0000 (17:10 +0000)]
Merge "Add null checks to weak DexCache references"
Brian Carlstrom [Fri, 29 Apr 2016 17:28:34 +0000 (10:28 -0700)]
Add null checks to weak DexCache references
Bug:
28452385
Change-Id: I88243af47b8e091c360927d1bdb867770f092475
Vladimir Marko [Tue, 17 May 2016 17:05:15 +0000 (17:05 +0000)]
Merge "Clean up String.indexOf() intrinsics."
Roland Levillain [Tue, 17 May 2016 15:50:29 +0000 (15:50 +0000)]
Merge "Revert "Reject classes inheriting from themselves directly or transitively.""
Roland Levillain [Tue, 17 May 2016 15:50:00 +0000 (15:50 +0000)]
Revert "Reject classes inheriting from themselves directly or transitively."
This reverts commit
498bb81f8725e2cf8f5ce1aa6b49ab5a9c5bb4c9.
Reverting not to break apps that do not follow the class
definition order rules.
Bug:
28797012
Bug:
28685551
Bug:
27682580
Change-Id: I2491b5aefe3ca8a364a05f7dfbc899c5a5757712
Roland Levillain [Tue, 17 May 2016 15:48:48 +0000 (15:48 +0000)]
Merge "Revert "Reject classes implementing themselves as interface directly or transitively.""
Roland Levillain [Tue, 17 May 2016 15:48:10 +0000 (15:48 +0000)]
Revert "Reject classes implementing themselves as interface directly or transitively."
This reverts commit
34598460015962699eb6b85b5fdb39400759280e.
Reverting not to break apps that do not follow the class
definition order rules.
Bug:
28797012
Change-Id: I77844a77f2d070563294fa0b01f8f68383c93fb8
Vladimir Marko [Tue, 17 May 2016 15:10:20 +0000 (16:10 +0100)]
Clean up String.indexOf() intrinsics.
Additional cleanup after
https://android-review.googlesource.com/223260
Bug:
28330359
Change-Id: I88def196babec70123896ef581ec8d61bb1b9a9a
Treehugger Robot [Tue, 17 May 2016 01:31:48 +0000 (01:31 +0000)]
Merge "Adjust ProfileSaver strategy"
Mathieu Chartier [Tue, 17 May 2016 01:23:31 +0000 (01:23 +0000)]
Merge "Visit IMT of all classes during image writing"
Mathieu Chartier [Mon, 16 May 2016 21:58:01 +0000 (14:58 -0700)]
Visit IMT of all classes during image writing
We still need to visit the IMT for classes that does not have any
methods. It is required to visit the IMT of every class to assign
image offsets for the conflict table methods.
Added regression test.
Bug:
28707801
(cherry picked from commit
54689b7d5568dcf01ff42d69435d0af7ae4e4d8e)
Change-Id: I4806685c32df7f2707f6018e21a489bfd48af6f7
Calin Juravle [Fri, 29 Apr 2016 15:44:11 +0000 (16:44 +0100)]
Adjust ProfileSaver strategy
Change to a notification based strategy (instead of polling):
- the JIT notifies the ProfileSaver everytime it attempts a compilation
or generate (in a task) a ProfileInfo object for the method
- once a certain number of hot methods notification are received,
ProfileSaver wakes up the thread to do the analysis
- a wake up does not equal to I/O since the during processing we might
realized that's actually not enough new data.
- ProfileSaver throtles the request and ensures it doesn't do the
processing more often than kMinSavePeriodNs.
The new strategy avoids waking the thread unnecessary during extended
idle periods when we don't JIT.
Bug:
26815940
(cherry picked from commit
5fbb0fe0625a1f76aa33cd78ccf1a17b00d8f6d1)
Change-Id: Ifbac3a53c025e00a3faab6784bbfa679c6b42acb
Mingyao Yang [Tue, 10 May 2016 21:30:41 +0000 (14:30 -0700)]
Fix an assert during jdwp debugging.
When debugger attaches, we patch entry points of methods in framework code.
During that process, it's possible that some method's declaring class isn't
resolved yet. We need to relax one assert for that case.
Bug:
28630805
Change-Id: I59fd488ad75417a64b52321677ffcac6ccdc5ce1
Evgenii Stepanov [Mon, 16 May 2016 20:17:17 +0000 (20:17 +0000)]
Merge "SafeStack-friendly stack protection in ART."