OSDN Git Service
Andreas Gampe [Sat, 25 Apr 2015 03:44:54 +0000 (03:44 +0000)]
am
e08556a2: am
808db527: Merge "[optimizing] Handle x86 const length BoundsCheck"
* commit '
e08556a2c9416f2f6cfdac4497c10aa98c09673a':
[optimizing] Handle x86 const length BoundsCheck
Andreas Gampe [Sat, 25 Apr 2015 03:44:53 +0000 (03:44 +0000)]
am
6bcc8378: am
c435e014: Merge "ART: Duplicate-classes cleanup"
* commit '
6bcc83784f3ed50644f8c0ff270b7bb71eed7814':
ART: Duplicate-classes cleanup
Andreas Gampe [Sat, 25 Apr 2015 03:34:43 +0000 (03:34 +0000)]
am
808db527: Merge "[optimizing] Handle x86 const length BoundsCheck"
* commit '
808db5276827c909818d5595a5600e64b97f66e0':
[optimizing] Handle x86 const length BoundsCheck
Andreas Gampe [Sat, 25 Apr 2015 03:34:41 +0000 (03:34 +0000)]
am
c435e014: Merge "ART: Duplicate-classes cleanup"
* commit '
c435e014f7c0c93b0459a0d04e3f7e893d6ce9c6':
ART: Duplicate-classes cleanup
Andreas Gampe [Sat, 25 Apr 2015 03:25:43 +0000 (03:25 +0000)]
Merge "[optimizing] Handle x86 const length BoundsCheck"
Andreas Gampe [Sat, 25 Apr 2015 03:23:30 +0000 (03:23 +0000)]
Merge "ART: Duplicate-classes cleanup"
Andreas Gampe [Sat, 25 Apr 2015 03:22:06 +0000 (20:22 -0700)]
ART: Duplicate-classes cleanup
Disable old test. Improve collision warning message. Add a comment
about the algorithm.
Change-Id: Ibd29d79565732162150aebd7fe08d0895ccf3d79
Andreas Gampe [Sat, 25 Apr 2015 01:53:43 +0000 (01:53 +0000)]
am
0965ce8f: am
6e655afb: Merge "ART: Check for duplicate classes when loading oat files"
* commit '
0965ce8fa35b487bbf36bbfb7bed795e9547f647':
ART: Check for duplicate classes when loading oat files
Andreas Gampe [Sat, 25 Apr 2015 01:42:27 +0000 (01:42 +0000)]
am
6e655afb: Merge "ART: Check for duplicate classes when loading oat files"
* commit '
6e655afb37a528cfd90aa702b1600e1eb5d10a58':
ART: Check for duplicate classes when loading oat files
Andreas Gampe [Sat, 25 Apr 2015 01:35:00 +0000 (01:35 +0000)]
Merge "ART: Check for duplicate classes when loading oat files"
Andreas Gampe [Sat, 25 Apr 2015 01:10:53 +0000 (01:10 +0000)]
am
3856df46: am
b5aad4c5: Merge "ART: Add GENERATE_CFI to the ZygoteHooks debug flags"
* commit '
3856df46f8ceb741b39dd40392b9485b47c35a54':
ART: Add GENERATE_CFI to the ZygoteHooks debug flags
Andreas Gampe [Sat, 25 Apr 2015 00:59:30 +0000 (00:59 +0000)]
am
b5aad4c5: Merge "ART: Add GENERATE_CFI to the ZygoteHooks debug flags"
* commit '
b5aad4c54e0bf1aff6a0c49cb682defaafb81e1e':
ART: Add GENERATE_CFI to the ZygoteHooks debug flags
Andreas Gampe [Sat, 25 Apr 2015 00:48:45 +0000 (00:48 +0000)]
Merge "ART: Add GENERATE_CFI to the ZygoteHooks debug flags"
Mark Mendell [Wed, 22 Apr 2015 20:18:52 +0000 (16:18 -0400)]
[optimizing] Handle x86 const length BoundsCheck
Allow a constant length for BoundsCheck.
Change-Id: I2c7adc6e733cf8ce6997aba76aa763d0835bd2d6
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Andreas Gampe [Fri, 24 Apr 2015 23:49:15 +0000 (23:49 +0000)]
am
21225131: am
33984b4d: Merge "ART: Do not log non-swap usage"
* commit '
2122513125735bbe9ca4e971bbdd888fb4bcbb4e':
ART: Do not log non-swap usage
Andreas Gampe [Fri, 24 Apr 2015 23:36:03 +0000 (23:36 +0000)]
am
33984b4d: Merge "ART: Do not log non-swap usage"
* commit '
33984b4d6b79b2d65258e69506e5669be704db82':
ART: Do not log non-swap usage
Andreas Gampe [Fri, 24 Apr 2015 23:33:43 +0000 (16:33 -0700)]
ART: Add GENERATE_CFI to the ZygoteHooks debug flags
Add code to understand the implications of the debug.gencfi system
property that forces generation of CFI data.
Change-Id: Ida66f8c1567634d05cfdbba1a982be3684e94369
Andreas Gampe [Fri, 24 Apr 2015 23:30:18 +0000 (23:30 +0000)]
Merge "ART: Do not log non-swap usage"
Andreas Gampe [Fri, 24 Apr 2015 23:22:18 +0000 (16:22 -0700)]
ART: Do not log non-swap usage
Reduce logcat noise.
Bug:
20501758
Change-Id: I5cbc28614d4be9e7fd120b7ccb97ca489e341f54
Mathieu Chartier [Fri, 24 Apr 2015 23:19:52 +0000 (23:19 +0000)]
am
63921cfe: am
16b5d29f: Merge "Guard against name == null in ShortDump"
* commit '
63921cfe407e093a527c94f5e01b03e89669f18a':
Guard against name == null in ShortDump
Mathieu Chartier [Fri, 24 Apr 2015 23:08:43 +0000 (23:08 +0000)]
am
16b5d29f: Merge "Guard against name == null in ShortDump"
* commit '
16b5d29f1755e50ab92a3bee0b85b26460e69cf8':
Guard against name == null in ShortDump
Mathieu Chartier [Fri, 24 Apr 2015 23:02:39 +0000 (23:02 +0000)]
Merge "Guard against name == null in ShortDump"
Roland Levillain [Fri, 24 Apr 2015 22:58:55 +0000 (22:58 +0000)]
am
233f1575: am
93cf23f9: Merge "Fix DCHECKs about clinit checks in Optimizing\'s code generators."
* commit '
233f1575843c6f94d96be90ba145a2623bff6d8f':
Fix DCHECKs about clinit checks in Optimizing's code generators.
Roland Levillain [Fri, 24 Apr 2015 22:47:16 +0000 (22:47 +0000)]
am
93cf23f9: Merge "Fix DCHECKs about clinit checks in Optimizing\'s code generators."
* commit '
93cf23f9966cdbe88650b822ad8471284a21bacb':
Fix DCHECKs about clinit checks in Optimizing's code generators.
Roland Levillain [Fri, 24 Apr 2015 22:35:49 +0000 (22:35 +0000)]
Merge "Fix DCHECKs about clinit checks in Optimizing's code generators."
Roland Levillain [Fri, 24 Apr 2015 22:01:24 +0000 (23:01 +0100)]
Fix DCHECKs about clinit checks in Optimizing's code generators.
These assertions are not true for the baseline compiler. As
a temporary workaround, remove a clinit check as last input
of a static invoke if it is still present at the stage of
code generation.
Change-Id: I5655f4a0873e2e7ee7790b6a341c18b4b7b52af1
Mathieu Chartier [Fri, 24 Apr 2015 22:28:36 +0000 (15:28 -0700)]
Guard against name == null in ShortDump
Bug:
20561804
Change-Id: If1e4adb74d5b936cf171f2402bf4525bf8c2d209
Andreas Gampe [Fri, 24 Apr 2015 20:41:32 +0000 (20:41 +0000)]
am
d27c57cf: am
76f14134: Merge "[optimizing] Ensure FillNewArray sets array access"
* commit '
d27c57cfec7f781c4d8bac39734b43391214628f':
[optimizing] Ensure FillNewArray sets array access
Andreas Gampe [Fri, 24 Apr 2015 20:28:52 +0000 (20:28 +0000)]
am
76f14134: Merge "[optimizing] Ensure FillNewArray sets array access"
* commit '
76f1413492c228bfa710e1eaa4c60370eaffbb8a':
[optimizing] Ensure FillNewArray sets array access
Andreas Gampe [Fri, 24 Apr 2015 20:18:20 +0000 (20:18 +0000)]
Merge "[optimizing] Ensure FillNewArray sets array access"
Mark Mendell [Fri, 24 Apr 2015 18:39:42 +0000 (14:39 -0400)]
[optimizing] Ensure FillNewArray sets array access
A method that only used filled new like 'int[]{0,0}' didn't have the
array access flag set, so BCE didn't remove the checks.
Change-Id: Iedec50daf0d25b1cc3872eb1a4cfc7b8bb31e6bf
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Roland Levillain [Fri, 24 Apr 2015 18:34:56 +0000 (18:34 +0000)]
am
c16be4d4: am
3507b795: Merge "Reduce the number of explicit clinit checks for static invokes."
* commit '
c16be4d4e3aa194474039a23e808ac463f5e3165':
Reduce the number of explicit clinit checks for static invokes.
Roland Levillain [Fri, 24 Apr 2015 18:34:54 +0000 (18:34 +0000)]
am
9c0a5aa8: am
eb5459ca: Merge "Ensure inlined static calls perform clinit checks in Optimizing."
* commit '
9c0a5aa8b95ffae383fb61cab30628af686e5331':
Ensure inlined static calls perform clinit checks in Optimizing.
Vladimir Marko [Fri, 24 Apr 2015 18:34:52 +0000 (18:34 +0000)]
am
bcbd49c6: am
ae803f6e: Merge "Quick: Fix and enable DCE and improve GVN/DCE cleanup."
* commit '
bcbd49c65ab8c5cdc4aece32b79ef34f6bdc454a':
Quick: Fix and enable DCE and improve GVN/DCE cleanup.
Roland Levillain [Fri, 24 Apr 2015 18:31:05 +0000 (18:31 +0000)]
am
3507b795: Merge "Reduce the number of explicit clinit checks for static invokes."
* commit '
3507b795c034617e1c94fc9544a208d6c6f75735':
Reduce the number of explicit clinit checks for static invokes.
Roland Levillain [Fri, 24 Apr 2015 18:21:14 +0000 (18:21 +0000)]
am
eb5459ca: Merge "Ensure inlined static calls perform clinit checks in Optimizing."
* commit '
eb5459ca861b58ee8a9907789f11400dcdddb87b':
Ensure inlined static calls perform clinit checks in Optimizing.
Vladimir Marko [Fri, 24 Apr 2015 18:21:13 +0000 (18:21 +0000)]
am
ae803f6e: Merge "Quick: Fix and enable DCE and improve GVN/DCE cleanup."
* commit '
ae803f6efbe8378b5423c51ee3c5564cae0e6e59':
Quick: Fix and enable DCE and improve GVN/DCE cleanup.
Roland Levillain [Fri, 24 Apr 2015 18:20:53 +0000 (18:20 +0000)]
Merge "Reduce the number of explicit clinit checks for static invokes."
Roland Levillain [Fri, 24 Apr 2015 18:14:22 +0000 (19:14 +0100)]
Reduce the number of explicit clinit checks for static invokes.
Do not generate explicit clinit checks for static invokes
when the class of the called method is a super class of the
caller method's class (referrer class).
Change-Id: I86ba18facef261fbb71f7ed20867756630ed3c53
Roland Levillain [Fri, 24 Apr 2015 18:17:40 +0000 (18:17 +0000)]
Merge "Ensure inlined static calls perform clinit checks in Optimizing."
Andreas Gampe [Fri, 24 Apr 2015 05:23:47 +0000 (22:23 -0700)]
ART: Check for duplicate classes when loading oat files
Oat files are usually produced standalone, and the compilers take
advantage of any information they get. It is thus possible that
when compile-time and runtime class-path are not the same, classes
are resolved differently and optimized code is incorrect.
This is a very conservative check, scanning the complete class tables
of dex files. In case any duplicate class is found, the new oat file
will be rejected and the original dex files will be used in interpreted
mode.
A possible refinement to this is actual tracking of the compile-time
class-path instead. That is however significantly complicated by the
DexFile API and the non-standard uses it allows.
An alternative for both optimized code and correct resolution is
native multidex. Apps should switch to multidex and benefit from
the optimization as well as the shift of all compile time to install
time. Split APKs are currently compiled separately, but it is a goal
to change that install flow to simulated multidex.
Change-Id: Ib9e0db5091e060e3bb2c0e5e6c007430becbfc21
Vladimir Marko [Fri, 24 Apr 2015 18:11:10 +0000 (18:11 +0000)]
Merge "Quick: Fix and enable DCE and improve GVN/DCE cleanup."
Vladimir Marko [Fri, 24 Apr 2015 16:38:50 +0000 (16:38 +0000)]
am
2c1ce5bb: am
83134ec5: Merge "Remove ArtMethod* parameter from dex cache entry points."
* commit '
2c1ce5bb6a9472dc253f68cb937bc6a8727ff4eb':
Remove ArtMethod* parameter from dex cache entry points.
David Brazdil [Fri, 24 Apr 2015 16:29:07 +0000 (16:29 +0000)]
am
b4364ee9: am
52b63e20: Merge "ART: Fix gtests broken by dead block elimination"
* commit '
b4364ee9078736d64318080e3d3a5b8805664356':
ART: Fix gtests broken by dead block elimination
Vladimir Marko [Fri, 24 Apr 2015 16:28:46 +0000 (16:28 +0000)]
am
83134ec5: Merge "Remove ArtMethod* parameter from dex cache entry points."
* commit '
83134ec5f26979cbb9131dccaf849a72cdd752f6':
Remove ArtMethod* parameter from dex cache entry points.
Vladimir Marko [Fri, 24 Apr 2015 16:21:36 +0000 (16:21 +0000)]
Merge "Remove ArtMethod* parameter from dex cache entry points."
David Brazdil [Fri, 24 Apr 2015 16:16:48 +0000 (16:16 +0000)]
am
52b63e20: Merge "ART: Fix gtests broken by dead block elimination"
* commit '
52b63e20eaef3abfda928833101f67ff581140ad':
ART: Fix gtests broken by dead block elimination
Roland Levillain [Fri, 24 Apr 2015 16:12:32 +0000 (16:12 +0000)]
am
9b096834: am
7bf9bc78: Merge "Minor improvements to 458-checker-instruction-simplification."
* commit '
9b096834aed2fbb69ecc07e999bc1f273f1a7017':
Minor improvements to 458-checker-instruction-simplification.
David Brazdil [Fri, 24 Apr 2015 16:09:15 +0000 (16:09 +0000)]
Merge "ART: Fix gtests broken by dead block elimination"
David Brazdil [Fri, 24 Apr 2015 16:04:38 +0000 (17:04 +0100)]
ART: Fix gtests broken by dead block elimination
Change-Id: If5de97f928f9e214d64871eabfbfb3f2d15451b7
Roland Levillain [Fri, 24 Apr 2015 16:05:29 +0000 (16:05 +0000)]
am
7bf9bc78: Merge "Minor improvements to 458-checker-instruction-simplification."
* commit '
7bf9bc7854f5c8ccc2cb2ef4be4f728c5fbd3236':
Minor improvements to 458-checker-instruction-simplification.
Roland Levillain [Fri, 24 Apr 2015 15:53:25 +0000 (15:53 +0000)]
Merge "Minor improvements to 458-checker-instruction-simplification."
Roland Levillain [Fri, 24 Apr 2015 15:43:49 +0000 (16:43 +0100)]
Ensure inlined static calls perform clinit checks in Optimizing.
Calls to static methods have implicit class initialization
(clinit) checks of the method's declaring class in
Optimizing. However, when such a static call is inlined,
the implicit clinit check vanishes, possibly leading to an
incorrect behavior.
To ensure that inlining static methods does not change the
behavior of a program, add explicit class initialization
checks (art::HClinitCheck) as well as load class
instructions (art::HLoadClass) as last input of static
calls (art::HInvokeStaticOrDirect) in Optimizing' control
flow graphs, when the declaring class is reachable and not
known to be already initialized. Then when considering the
inlining of a static method call, proceed only if the method
has no implicit clinit check requirement.
The added explicit clinit checks are already removed by the
art::PrepareForRegisterAllocation visitor. This CL also
extends this visitor to turn explicit clinit checks from
static invokes into implicit ones after the inlining step,
by removing the added art::HLoadClass nodes mentioned
hereinbefore.
Change-Id: I9ba452b8bd09ae1fdd9a3797ef556e3e7e19c651
David Brazdil [Fri, 24 Apr 2015 15:40:11 +0000 (15:40 +0000)]
am
b4e284f2: am
f16d7b38: Merge "ART: Dead block removal"
* commit '
b4e284f26aa1eda0cae0b37bf78cbb8de1651704':
ART: Dead block removal
David Brazdil [Fri, 24 Apr 2015 15:27:55 +0000 (15:27 +0000)]
am
f16d7b38: Merge "ART: Dead block removal"
* commit '
f16d7b3824b2777b95fb509c1d2a95bef89f65a4':
ART: Dead block removal
David Brazdil [Fri, 24 Apr 2015 15:20:27 +0000 (15:20 +0000)]
Merge "ART: Dead block removal"
David Brazdil [Mon, 20 Apr 2015 13:52:42 +0000 (14:52 +0100)]
ART: Dead block removal
Adds a new pass which finds all unreachable blocks, typically due to
simplifying an if-condition to a constant, and removes them from the
graph. The patch also slightly generalizes the graph-transforming
operations.
Change-Id: Iff7c97f1d10b52886f3cd7401689ebe1bfdbf456
Nicolas Geoffray [Fri, 24 Apr 2015 14:34:56 +0000 (14:34 +0000)]
am
490c9561: am
9f3565a6: Merge "Debugger: Remove support for setting values in optimizing."
* commit '
490c9561bc2d4ce6817a3d881144a9741d442256':
Debugger: Remove support for setting values in optimizing.
Nicolas Geoffray [Fri, 24 Apr 2015 14:24:39 +0000 (14:24 +0000)]
am
9f3565a6: Merge "Debugger: Remove support for setting values in optimizing."
* commit '
9f3565a632d12c9cadd7d966da308fd26dbc899c':
Debugger: Remove support for setting values in optimizing.
Nicolas Geoffray [Fri, 24 Apr 2015 14:18:19 +0000 (14:18 +0000)]
Merge "Debugger: Remove support for setting values in optimizing."
Nicolas Geoffray [Fri, 24 Apr 2015 13:58:19 +0000 (14:58 +0100)]
Debugger: Remove support for setting values in optimizing.
bug:
19944235
Change-Id: I3bcd56c7844847a7f0367f8ce6a72bddcd09d441
Nicolas Geoffray [Fri, 24 Apr 2015 13:54:24 +0000 (13:54 +0000)]
am
553871c8: am
af248646: Merge "Don\'t use \'sh\' on the host."
* commit '
553871c804e8fd4a343a8c82ba69ab3163cb691b':
Don't use 'sh' on the host.
Nicolas Geoffray [Fri, 24 Apr 2015 13:44:43 +0000 (13:44 +0000)]
am
af248646: Merge "Don\'t use \'sh\' on the host."
* commit '
af248646f2de879a25114e9f0fb42ac903fe9db7':
Don't use 'sh' on the host.
Nicolas Geoffray [Fri, 24 Apr 2015 13:38:19 +0000 (13:38 +0000)]
Merge "Don't use 'sh' on the host."
Nicolas Geoffray [Fri, 24 Apr 2015 13:37:29 +0000 (14:37 +0100)]
Don't use 'sh' on the host.
Change-Id: I319c08367d143443425bc01f4dda28ad46417c7e
Nicolas Geoffray [Fri, 24 Apr 2015 13:04:57 +0000 (13:04 +0000)]
am
78a34f71: am
9e85d55c: Merge "Use \'sh\' explicitly when invoking the art script."
* commit '
78a34f7117e4c9c2ac6bd2a5e80054c8c55c1e87':
Use 'sh' explicitly when invoking the art script.
Nicolas Geoffray [Fri, 24 Apr 2015 13:04:56 +0000 (13:04 +0000)]
am
51e8e98b: am
11307fd2: Merge "Make tests assume ANDROID_ROOT is not /system."
* commit '
51e8e98b39d1850c0a793875eda9f42f418868ff':
Make tests assume ANDROID_ROOT is not /system.
Nicolas Geoffray [Fri, 24 Apr 2015 12:53:49 +0000 (12:53 +0000)]
am
9e85d55c: Merge "Use \'sh\' explicitly when invoking the art script."
* commit '
9e85d55c085504b88a9ac68c3f9605629dc06853':
Use 'sh' explicitly when invoking the art script.
Nicolas Geoffray [Fri, 24 Apr 2015 12:53:48 +0000 (12:53 +0000)]
am
11307fd2: Merge "Make tests assume ANDROID_ROOT is not /system."
* commit '
11307fd2943663bd7daa85428a104374e6d3e784':
Make tests assume ANDROID_ROOT is not /system.
Nicolas Geoffray [Fri, 24 Apr 2015 12:45:28 +0000 (12:45 +0000)]
Merge "Use 'sh' explicitly when invoking the art script."
Nicolas Geoffray [Fri, 24 Apr 2015 12:44:19 +0000 (13:44 +0100)]
Use 'sh' explicitly when invoking the art script.
Change-Id: I5e11483dd75f9ab4dd67f3bbbc45485726d01e34
Nicolas Geoffray [Fri, 24 Apr 2015 12:43:34 +0000 (12:43 +0000)]
Merge "Make tests assume ANDROID_ROOT is not /system."
Nicolas Geoffray [Fri, 24 Apr 2015 10:57:37 +0000 (11:57 +0100)]
Make tests assume ANDROID_ROOT is not /system.
This is to enable better chroot-like testing.
Change-Id: I943c68b0ebcdab2f107f808b466ac694085255aa
Vladimir Marko [Mon, 20 Apr 2015 19:11:30 +0000 (20:11 +0100)]
Remove ArtMethod* parameter from dex cache entry points.
Load the ArtMethod* using an optimized stack walk instead.
This reduces the size of the generated code.
Three of the entry points are called only from a slow-path
and the fourth (InitializeTypeAndVerifyAccess) is rare and
already slow enough that the one or two extra loads
(depending on whether we already have the ArtMethod* in a
register) are insignificant. And as we're starting to use
PC-relative addressing of the dex cache arrays (already
done by Quick for the boot image), having the ArtMethod* in
a register becomes less likely anyway.
Change-Id: Ib19b9d204e355e13bf386662a8b158178bf8ad28
Nicolas Geoffray [Fri, 24 Apr 2015 09:23:54 +0000 (09:23 +0000)]
am
0e76c6e0: am
c5cb691c: Merge "Cleanup and improve stack map stream"
* commit '
0e76c6e0aadd6efd2d0a57970e8c4c01d0264f33':
Cleanup and improve stack map stream
Nicolas Geoffray [Fri, 24 Apr 2015 07:59:39 +0000 (07:59 +0000)]
am
c5cb691c: Merge "Cleanup and improve stack map stream"
* commit '
c5cb691ca6a746a193bfbe3525aafa7cbb281d40':
Cleanup and improve stack map stream
Nicolas Geoffray [Fri, 24 Apr 2015 07:52:34 +0000 (07:52 +0000)]
Merge "Cleanup and improve stack map stream"
Mathieu Chartier [Fri, 24 Apr 2015 00:45:21 +0000 (00:45 +0000)]
am
1b7ae567: am
021190bf: Merge "Fix reflection handling and test flakiness"
* commit '
1b7ae5672053e8fac0dff5a6970d96f3d6c0578b':
Fix reflection handling and test flakiness
Mathieu Chartier [Fri, 24 Apr 2015 00:34:28 +0000 (00:34 +0000)]
am
021190bf: Merge "Fix reflection handling and test flakiness"
* commit '
021190bf584662e75b269ef47cd48e2044e34fe4':
Fix reflection handling and test flakiness
Mathieu Chartier [Fri, 24 Apr 2015 00:22:41 +0000 (00:22 +0000)]
Merge "Fix reflection handling and test flakiness"
Mathieu Chartier [Thu, 23 Apr 2015 23:32:54 +0000 (16:32 -0700)]
Fix reflection handling and test flakiness
Fixed reflection invoke to handle exceptions which occur from
FindClass or NewObject by throwing these instead of
the expected InvocationTargetException.
Added test case to 080 for this reflection invoke.
Fixed println throwing OOM in 104-growth-limit.
Change-Id: I65766e7c3478e299da06fdc3a521fe3f3e8fdba9
Calin Juravle [Thu, 23 Apr 2015 17:47:21 +0000 (18:47 +0100)]
Cleanup and improve stack map stream
- transform AddStackMapEntry into BeginStackMapEntry/EndStackMapEntry.
This allows for nicer code and less assumptions when searching for equal
dex register maps.
- store the components sizes and their start positions as fields to
avoid re-computation.
- store the current stack map entry as a field to avoid the copy
semantic when updating its value in the stack maps array.
- remove redundant methods and fix visibility for the remaining ones.
Change-Id: Ica2d2969d7e15993bdbf8bc41d9df083cddafd24
Vladimir Marko [Thu, 23 Apr 2015 18:25:12 +0000 (18:25 +0000)]
am
b85ca827: am
633a37ec: Merge "Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong()."
* commit '
b85ca827e3c02a57e2e757417fd00421227ee475':
Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong().
Vladimir Marko [Thu, 23 Apr 2015 18:18:57 +0000 (18:18 +0000)]
am
633a37ec: Merge "Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong()."
* commit '
633a37ece49c5afcf3fa9a89692f07d19c56229b':
Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong().
Vladimir Marko [Thu, 23 Apr 2015 18:11:04 +0000 (18:11 +0000)]
Merge "Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong()."
Nicolas Geoffray [Thu, 23 Apr 2015 17:50:30 +0000 (17:50 +0000)]
am
3c2f49ca: am
360475ab: Merge "Linear scan: split at better positions."
* commit '
3c2f49ca06a8ada9b6818b90227b3e4c58d93202':
Linear scan: split at better positions.
Vladimir Marko [Mon, 20 Apr 2015 09:48:13 +0000 (10:48 +0100)]
Quick: Fix and enable DCE and improve GVN/DCE cleanup.
When eliminating a move by renaming its source register,
check that it doesn't conflict with vreg usage by insns
between the defining insn and the move.
Improve the GVN/DCE cleanup so that it can handle cases
where GVN or DCE is individually disabled in the pass driver
but not in the disable_opt flags.
Bug:
19419671
Change-Id: I49bb67b81509f51fbaf90c6016c509962be43736
Calin Juravle [Thu, 23 Apr 2015 17:39:17 +0000 (17:39 +0000)]
am
73f87c07: am
322b389a: Merge "Remove unnecessary null checks in CheckCast and InstanceOf"
* commit '
73f87c07df610847adc44b647eadf55e077ad3f5':
Remove unnecessary null checks in CheckCast and InstanceOf
Nicolas Geoffray [Thu, 23 Apr 2015 17:38:27 +0000 (17:38 +0000)]
am
360475ab: Merge "Linear scan: split at better positions."
* commit '
360475aba293267398a17184b5330fd857f9b296':
Linear scan: split at better positions.
Nicolas Geoffray [Thu, 23 Apr 2015 17:28:35 +0000 (17:28 +0000)]
Merge "Linear scan: split at better positions."
Nicolas Geoffray [Thu, 23 Apr 2015 14:14:36 +0000 (15:14 +0100)]
Linear scan: split at better positions.
- Split at block entry to piggy back on control flow resolution.
- Split at the loop header, if the split position is within a loop.
Change-Id: I718299a58c02ee02a1b22bda589607c69a35f0e8
Calin Juravle [Thu, 23 Apr 2015 17:26:53 +0000 (17:26 +0000)]
am
322b389a: Merge "Remove unnecessary null checks in CheckCast and InstanceOf"
* commit '
322b389a74177c9d938f1f73d53110623dfc61b6':
Remove unnecessary null checks in CheckCast and InstanceOf
Calin Juravle [Thu, 23 Apr 2015 17:19:34 +0000 (17:19 +0000)]
Merge "Remove unnecessary null checks in CheckCast and InstanceOf"
David Brazdil [Thu, 23 Apr 2015 17:15:18 +0000 (17:15 +0000)]
am
d3f6cd42: am
272bf7e6: Merge "ART: Run BooleanSimplifier after inlining"
* commit '
d3f6cd425b41ab7c479b47031b7f833e02dd47c3':
ART: Run BooleanSimplifier after inlining
David Brazdil [Thu, 23 Apr 2015 17:03:32 +0000 (17:03 +0000)]
am
272bf7e6: Merge "ART: Run BooleanSimplifier after inlining"
* commit '
272bf7e60add5f741fb9a2589eaa71945257afcc':
ART: Run BooleanSimplifier after inlining
David Brazdil [Thu, 23 Apr 2015 16:55:10 +0000 (16:55 +0000)]
Merge "ART: Run BooleanSimplifier after inlining"
Guillaume "Vermeille" Sanchez [Mon, 20 Apr 2015 13:41:30 +0000 (14:41 +0100)]
Remove unnecessary null checks in CheckCast and InstanceOf
Change-Id: I6fd81cabd8673be360f369e6318df0de8b18b634
David Brazdil [Tue, 21 Apr 2015 14:13:31 +0000 (15:13 +0100)]
ART: Run BooleanSimplifier after inlining
Inlined methods are currently not simplified.
Change-Id: I075130c9df55e2f55032a2c81b08d42cb2cc01f6
Vladimir Marko [Thu, 23 Apr 2015 16:00:40 +0000 (17:00 +0100)]
Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong().
This fixes running out of temp registers for mul-long that
needs a temporary to store the result, i.e. when it's stored
to stack location [sp, #offset] with offset >= 1024. The bug
is currently not reproducible because ARM_R4_SUSPEND_FLAG is
off and thus we have the extra register available. However,
the code generation could be cleaned up and make use of that
extra register, so pre-emptively fix it anyway.
Bug:
20110806
Change-Id: I8362c349961dbe28fc3ec8a9299b66fd72f26779
Calin Juravle [Thu, 23 Apr 2015 15:50:52 +0000 (15:50 +0000)]
am
dbd9eddc: am
4ceed922: Merge "Move stack map stream implementation to its own cc file."
* commit '
dbd9eddc90c66bce48f268e7cc92181db7722eb9':
Move stack map stream implementation to its own cc file.