OSDN Git Service
Andreas Gampe [Tue, 25 Aug 2015 05:16:43 +0000 (05:16 +0000)]
am
fc509f70: am
f0170ded: Merge "ART: Add VLOG printing of SetStatus(Error)"
* commit '
fc509f70a21cbe1bab82359cc57aca6b9bff4938':
ART: Add VLOG printing of SetStatus(Error)
Andreas Gampe [Tue, 25 Aug 2015 05:11:11 +0000 (05:11 +0000)]
am
f0170ded: Merge "ART: Add VLOG printing of SetStatus(Error)"
* commit '
f0170ded84fbcd3d9152cdbcf9ffbf74c71b03ba':
ART: Add VLOG printing of SetStatus(Error)
Andreas Gampe [Tue, 25 Aug 2015 05:02:46 +0000 (05:02 +0000)]
Merge "ART: Add VLOG printing of SetStatus(Error)"
Andreas Gampe [Tue, 25 Aug 2015 04:09:05 +0000 (21:09 -0700)]
ART: Add VLOG printing of SetStatus(Error)
In verbose:class mode, print a message when a class is set to
erroneous, and dump any pending exception.
Change-Id: I2ebfe4fcd8495c3ff42675bd3c0f80125b23c019
Andreas Gampe [Mon, 24 Aug 2015 23:03:06 +0000 (23:03 +0000)]
am
cb3c9952: am
dcff51a0: Merge "Revert "Do a second check for testing intrinsic types.""
* commit '
cb3c9952c81cabedcf9f5460d03d3c62ed3b461c':
Revert "Do a second check for testing intrinsic types."
Andreas Gampe [Mon, 24 Aug 2015 22:57:53 +0000 (22:57 +0000)]
am
dcff51a0: Merge "Revert "Do a second check for testing intrinsic types.""
* commit '
dcff51a0079c5e3abaf0335f7cb9a3dd44044456':
Revert "Do a second check for testing intrinsic types."
Andreas Gampe [Mon, 24 Aug 2015 22:50:51 +0000 (22:50 +0000)]
Merge "Revert "Do a second check for testing intrinsic types.""
Andreas Gampe [Mon, 24 Aug 2015 22:49:59 +0000 (22:49 +0000)]
Revert "Do a second check for testing intrinsic types."
This reverts commit
4daa0b4c21eee46362b5114fb2c3800c0c7e7a36.
If the intrinsic has a slow-path, like charAt, the slow-path logic will complain as it only understands direct slow-paths, not virtual calls.
We should either override that decision in the slow-path, or replace the HInvokeVirtual when we're overriding the intrinsic choice.
Bug:
23475673
Change-Id: If55fbc8c82d52e0e7a7aec2674ae2bd2b74b5c77
Jeff Hao [Sat, 22 Aug 2015 00:36:25 +0000 (00:36 +0000)]
am
5a689007: am
f7b12e7a: Merge "Move annotations to native."
* commit '
5a689007668fbba43d34eea7cfa3c8cd2c2e21de':
Move annotations to native.
Jeff Hao [Sat, 22 Aug 2015 00:25:11 +0000 (00:25 +0000)]
am
f7b12e7a: Merge "Move annotations to native."
* commit '
f7b12e7ae8f481f3fab27d1a17bded4b4f2ce423':
Move annotations to native.
Jeff Hao [Sat, 22 Aug 2015 00:17:57 +0000 (00:17 +0000)]
Merge "Move annotations to native."
Jeff Hao [Thu, 30 Jul 2015 03:14:10 +0000 (20:14 -0700)]
Move annotations to native.
Art side of this change. There is also a corresponding Libcore change.
Seeing ~2-3x speedup over dalvik KK MR1 in AnnotatedElementBenchmark.
Benchmark Speedup of Art AOSP to Dalvik KK MR1
GetAllReturnsLargeAnnotation 2.99
GetAllReturnsMarkerAnnotation 2.20
GetAllReturnsNoAnnotation 2.43
GetAllReturnsSmallAnnotation 2.52
GetAllReturnsThreeAnnotations 2.87
GetAnnotationsOnSubclass 2.42
GetDeclaredAnnotationsOnSubclass 2.49
GetFieldAnnotation 2.68
GetFieldAnnotations 2.60
GetMethodAnnotation 2.66
GetMethodAnnotations 2.61
GetParameterAnnotations 2.52
GetTypeAnnotation 2.56
GetTypeAnnotations 2.17
IsFieldAnnotationPresent 3.26
IsMethodAnnotationPresent 4.99
IsTypeAnnotationPresent 1.34
Change-Id: Ibdbb6d23b17eaab6e83c8774b1bb9401e8227941
Andreas Gampe [Fri, 21 Aug 2015 23:39:11 +0000 (23:39 +0000)]
am
ed8cf61b: am
2ee4589e: Merge "Correct for signal, native bridge test hard-coded signal handling values"
* commit '
ed8cf61b841d40bdabd60f633b2c3ef036cb8f3a':
Correct for signal, native bridge test hard-coded signal handling values
Andreas Gampe [Fri, 21 Aug 2015 23:33:18 +0000 (23:33 +0000)]
am
2ee4589e: Merge "Correct for signal, native bridge test hard-coded signal handling values"
* commit '
2ee4589ef330e341f7682833c896fb6ea4f18dea':
Correct for signal, native bridge test hard-coded signal handling values
Andreas Gampe [Fri, 21 Aug 2015 23:26:39 +0000 (23:26 +0000)]
Merge "Correct for signal, native bridge test hard-coded signal handling values"
Agi Csaki [Fri, 21 Aug 2015 19:56:30 +0000 (12:56 -0700)]
Correct for signal, native bridge test hard-coded signal handling values
Added inline assembly to ensure that the instruction causing a segfault
in x86/x86_64 for the 004-SignalTest and 115-native-bridge test always
has a size of 3 bytes, in response to a bug that caused the test to fail
when this instruction had variable sizes.
Bug:
22876261
Change-Id: I474a04782a446439956c22360c71cea2655f8a1b
Mathieu Chartier [Fri, 21 Aug 2015 22:25:37 +0000 (22:25 +0000)]
am
3adb5b13: am
300432d2: Merge "Add class flags to class to help GC scanning"
* commit '
3adb5b13ea0512dfebee23b1b871b36396b3a8f0':
Add class flags to class to help GC scanning
Mathieu Chartier [Fri, 21 Aug 2015 21:23:07 +0000 (21:23 +0000)]
am
300432d2: Merge "Add class flags to class to help GC scanning"
* commit '
300432d27ba9dd6961458fb1e1c845766f25c50a':
Add class flags to class to help GC scanning
Mathieu Chartier [Fri, 21 Aug 2015 20:50:14 +0000 (20:50 +0000)]
Merge "Add class flags to class to help GC scanning"
Vladimir Marko [Fri, 21 Aug 2015 18:52:17 +0000 (18:52 +0000)]
am
448ff4fb: am
879775bb: Merge "Revert "[MIPS] Use hard float calling convention for managed code""
* commit '
448ff4fba7b38c5eb846087bcf4375120854e73e':
Revert "[MIPS] Use hard float calling convention for managed code"
Vladimir Marko [Fri, 21 Aug 2015 18:44:43 +0000 (18:44 +0000)]
am
879775bb: Merge "Revert "[MIPS] Use hard float calling convention for managed code""
* commit '
879775bba4903a4d066df3ebeac5cd4faf7da3e4':
Revert "[MIPS] Use hard float calling convention for managed code"
Vladimir Marko [Fri, 21 Aug 2015 18:39:54 +0000 (18:39 +0000)]
Merge "Revert "[MIPS] Use hard float calling convention for managed code""
Vladimir Marko [Fri, 21 Aug 2015 18:39:26 +0000 (18:39 +0000)]
Revert "[MIPS] Use hard float calling convention for managed code"
MipsMir2Lir::LockCallTemps() is broken for secondary architecture on aosp_mips64-eng.
This reverts commit
a29449dcf57c57fe0876f51367985477317cc557.
Change-Id: I480ea7569d73aea7894fc0a6dd804b1135286a37
Andreas Gampe [Fri, 21 Aug 2015 18:24:11 +0000 (18:24 +0000)]
am
b049d1ab: am
e74493cb: Merge "ART: Special form of lock aliasing"
* commit '
b049d1ab2e17b7b349a322f63e0944c13e92f9ae':
ART: Special form of lock aliasing
Alex Light [Fri, 21 Aug 2015 18:23:35 +0000 (18:23 +0000)]
am
9ee7b6b4: am
24011e73: Merge "Made CheckJNI check varargs when possible"
* commit '
9ee7b6b40aa25263e6b540773495456b1ac9f2ab':
Made CheckJNI check varargs when possible
Andreas Gampe [Fri, 21 Aug 2015 17:30:43 +0000 (17:30 +0000)]
am
e74493cb: Merge "ART: Special form of lock aliasing"
* commit '
e74493cbc8f33bfd53b792f98f135d3db680f029':
ART: Special form of lock aliasing
Mathieu Chartier [Wed, 19 Aug 2015 01:35:52 +0000 (18:35 -0700)]
Add class flags to class to help GC scanning
Reduces GC time and pauses by reducing the number of loads required
to scan an object.
Average total GC time before on EvaluateAndApplyChanges (EAAC): 7.452s
After: 7.144s
Average GC pause times before on EAAC: 860.67us
After: 722.75us
Adding the class flags field cause a memory increase of ~24k system
wide on low memory devices.
Change-Id: I3f04212d5787bfbf5e55026584d149f55476105e
Andreas Gampe [Fri, 21 Aug 2015 17:24:14 +0000 (17:24 +0000)]
Merge "ART: Special form of lock aliasing"
Alex Light [Fri, 21 Aug 2015 17:17:16 +0000 (17:17 +0000)]
am
24011e73: Merge "Made CheckJNI check varargs when possible"
* commit '
24011e738d77dedb28c1b4d6ff34445cc2acc4a7':
Made CheckJNI check varargs when possible
Alex Light [Fri, 21 Aug 2015 15:43:37 +0000 (15:43 +0000)]
Merge "Made CheckJNI check varargs when possible"
Nicolas Geoffray [Fri, 21 Aug 2015 14:52:17 +0000 (14:52 +0000)]
am
9d7fc8d0: am
df3269a9: Merge "Stop framework on buildbot devices to avoid lowmemorykiller."
* commit '
9d7fc8d0191bae558821454e554b6b1eb46ffb46':
Stop framework on buildbot devices to avoid lowmemorykiller.
Nicolas Geoffray [Fri, 21 Aug 2015 14:46:55 +0000 (14:46 +0000)]
am
df3269a9: Merge "Stop framework on buildbot devices to avoid lowmemorykiller."
* commit '
df3269a9681b5b75d7b3088652428d86a6cc8485':
Stop framework on buildbot devices to avoid lowmemorykiller.
Nicolas Geoffray [Fri, 21 Aug 2015 14:40:47 +0000 (14:40 +0000)]
Merge "Stop framework on buildbot devices to avoid lowmemorykiller."
Nicolas Geoffray [Fri, 21 Aug 2015 14:37:11 +0000 (14:37 +0000)]
am
1d7219c1: am
3979bdf4: Merge "Fix TrySplitNonPairOrUnalignedPairIntervalAt."
* commit '
1d7219c1733608db7584f4f0ac434a567b7d9110':
Fix TrySplitNonPairOrUnalignedPairIntervalAt.
Nicolas Geoffray [Fri, 21 Aug 2015 14:32:35 +0000 (15:32 +0100)]
Stop framework on buildbot devices to avoid lowmemorykiller.
Change-Id: If7fa58f9bcb67b90cc2473daa280c3c7d0f0f513
Nicolas Geoffray [Fri, 21 Aug 2015 14:30:49 +0000 (14:30 +0000)]
am
3979bdf4: Merge "Fix TrySplitNonPairOrUnalignedPairIntervalAt."
* commit '
3979bdf446b425e69171db58789819e26542f79d':
Fix TrySplitNonPairOrUnalignedPairIntervalAt.
Nicolas Geoffray [Fri, 21 Aug 2015 14:25:23 +0000 (14:25 +0000)]
Merge "Fix TrySplitNonPairOrUnalignedPairIntervalAt."
Nicolas Geoffray [Thu, 20 Aug 2015 18:52:26 +0000 (19:52 +0100)]
Fix TrySplitNonPairOrUnalignedPairIntervalAt.
We need to both:
1) Look at pair that don't start at an even register.
2) Also remove the other half from the list of actives.
Change-Id: Ia99fa9852c67b8633e8d17a258fe302add54b14a
Vladimir Marko [Fri, 21 Aug 2015 13:44:53 +0000 (13:44 +0000)]
am
d45be7d8: am
e75ffdfe: Merge "[MIPS] Use hard float calling convention for managed code"
* commit '
d45be7d8e8a68e079adbf9808feed59600871733':
[MIPS] Use hard float calling convention for managed code
Vladimir Marko [Fri, 21 Aug 2015 13:36:53 +0000 (13:36 +0000)]
am
e75ffdfe: Merge "[MIPS] Use hard float calling convention for managed code"
* commit '
e75ffdfe3fbd4253bf1ffd48350b7f6472500c30':
[MIPS] Use hard float calling convention for managed code
Vladimir Marko [Fri, 21 Aug 2015 13:31:49 +0000 (13:31 +0000)]
Merge "[MIPS] Use hard float calling convention for managed code"
Goran Jakovljevic [Wed, 22 Jul 2015 09:08:57 +0000 (11:08 +0200)]
[MIPS] Use hard float calling convention for managed code
Note that this isn't o32 ABI. Same set of registers is used for
arguments ($a0-$a3 and $f12-$f15), but we don't skip registers
and fp arguments are never passed via core registers.
Change-Id: Ifb883ff6e15758b539137898b49ac2f8ee075f49
Nicolas Geoffray [Fri, 21 Aug 2015 10:21:25 +0000 (10:21 +0000)]
am
6f26f42b: am
28de0f65: Merge "Do a second check for testing intrinsic types."
* commit '
6f26f42b048edbcc99a28110dffb22c6ee87bb81':
Do a second check for testing intrinsic types.
Nicolas Geoffray [Fri, 21 Aug 2015 10:14:50 +0000 (10:14 +0000)]
am
28de0f65: Merge "Do a second check for testing intrinsic types."
* commit '
28de0f652e32e112edab0e5e7dc779943ae488d5':
Do a second check for testing intrinsic types.
Nicolas Geoffray [Fri, 21 Aug 2015 10:06:20 +0000 (10:06 +0000)]
Merge "Do a second check for testing intrinsic types."
Nicolas Geoffray [Thu, 20 Aug 2015 13:05:14 +0000 (14:05 +0100)]
Do a second check for testing intrinsic types.
This allows to intrinsify calls made in a different dex file.
Can't easily write a test because it depends on having inlined
a method from boot classpath that calls an intrinsic. Once
String.equals is implemented with the hybrid approach we can write one.
Change-Id: I591d9496e236429943d6bfa7f8b20f576b1cfb9a
Andreas Gampe [Tue, 18 Aug 2015 15:57:44 +0000 (08:57 -0700)]
ART: Special form of lock aliasing
Check whether the instruction immediately before a monitor-enter
is a move-object, establishing previously untracked lock aliasing
in a low-overhead manner.
Bug:
20102779
Bug:
21169615
Bug:
21988678
Bug:
23300986
Change-Id: Ia10d6219357e7bce29f58134637b07d3f4857b2f
Andreas Gampe [Thu, 20 Aug 2015 23:15:43 +0000 (23:15 +0000)]
am
e417ffa7: am
6bd6a830: Merge "ART: (Partially) fix lock aliasing"
* commit '
e417ffa7949dfcacb13785cb6d4cff1317b2c429':
ART: (Partially) fix lock aliasing
Andreas Gampe [Thu, 20 Aug 2015 22:57:42 +0000 (22:57 +0000)]
am
6bd6a830: Merge "ART: (Partially) fix lock aliasing"
* commit '
6bd6a830f24033830a910f88928b400a7ed28418':
ART: (Partially) fix lock aliasing
Andreas Gampe [Thu, 20 Aug 2015 22:52:44 +0000 (22:52 +0000)]
Merge "ART: (Partially) fix lock aliasing"
Alex Light [Wed, 19 Aug 2015 22:23:23 +0000 (15:23 -0700)]
Made CheckJNI check varargs when possible
Several JNI functions such as NewObject and Call*Method take a variable
number of arguments. This patch will make CheckJNI do (limited) dynamic
validation of these arguments. Currently it is limited to checking that
objects are valid and that no value types have illegal values.
Bug:
20344596
Change-Id: I1f81d2bdd80215e0007fc636bac27d5bcc2dba96
Roland Levillain [Thu, 20 Aug 2015 17:10:07 +0000 (17:10 +0000)]
am
9c8f4aee: am
944973e5: Merge "Add a `--showcommands` option to ART\'s buildbot-build.sh."
* commit '
9c8f4aee2c707d101365c7f7453db8764ba6652f':
Add a `--showcommands` option to ART's buildbot-build.sh.
Roland Levillain [Thu, 20 Aug 2015 17:02:57 +0000 (17:02 +0000)]
am
944973e5: Merge "Add a `--showcommands` option to ART\'s buildbot-build.sh."
* commit '
944973e56fd3c04c92d902b05d0148f77ed28a78':
Add a `--showcommands` option to ART's buildbot-build.sh.
Roland Levillain [Thu, 20 Aug 2015 16:57:28 +0000 (16:57 +0000)]
Merge "Add a `--showcommands` option to ART's buildbot-build.sh."
Roland Levillain [Thu, 20 Aug 2015 16:49:56 +0000 (17:49 +0100)]
Add a `--showcommands` option to ART's buildbot-build.sh.
Change-Id: Ib562a02b2f96dd5abd580ae751d5d86749144bf3
David Brazdil [Thu, 20 Aug 2015 16:44:43 +0000 (16:44 +0000)]
am
80ddbd8f: am
113af44c: Merge "Fix indentation in reference type propagation"
* commit '
80ddbd8f60e72da1d28475dde767498e09ee4bf5':
Fix indentation in reference type propagation
David Brazdil [Thu, 20 Aug 2015 16:22:55 +0000 (16:22 +0000)]
am
113af44c: Merge "Fix indentation in reference type propagation"
* commit '
113af44c238625500ec5b999a9990f39519e2ae2':
Fix indentation in reference type propagation
Roland Levillain [Thu, 20 Aug 2015 16:22:07 +0000 (16:22 +0000)]
am
5ce9ec28: am
a05264c1: Merge "ARM64: Minor optimization for conversions from long to int."
* commit '
5ce9ec2892b0e34c4697c256e8c57523ed7bfefa':
ARM64: Minor optimization for conversions from long to int.
David Brazdil [Thu, 20 Aug 2015 16:18:09 +0000 (16:18 +0000)]
am
67120f96: am
1d4a598e: Merge "Fix formatting comment in Checker"
* commit '
67120f966354d9d50d4f9b7890655bfbfe80ded3':
Fix formatting comment in Checker
David Brazdil [Thu, 20 Aug 2015 16:16:52 +0000 (16:16 +0000)]
Merge "Fix indentation in reference type propagation"
Roland Levillain [Thu, 20 Aug 2015 16:16:47 +0000 (16:16 +0000)]
am
a05264c1: Merge "ARM64: Minor optimization for conversions from long to int."
* commit '
a05264c142526f74af0cf45e643f7b07500431d8':
ARM64: Minor optimization for conversions from long to int.
Roland Levillain [Thu, 20 Aug 2015 16:11:31 +0000 (16:11 +0000)]
Merge "ARM64: Minor optimization for conversions from long to int."
David Brazdil [Thu, 20 Aug 2015 16:10:50 +0000 (16:10 +0000)]
am
1d4a598e: Merge "Fix formatting comment in Checker"
* commit '
1d4a598ed12d86934ceb5e6fd79f80f974f3f23f':
Fix formatting comment in Checker
David Brazdil [Thu, 20 Aug 2015 16:05:49 +0000 (17:05 +0100)]
Fix indentation in reference type propagation
Change-Id: I5860c4fef55326ac2b510e3e34c4541b691794e0
David Brazdil [Thu, 20 Aug 2015 16:05:17 +0000 (16:05 +0000)]
Merge "Fix formatting comment in Checker"
David Brazdil [Thu, 20 Aug 2015 15:59:24 +0000 (16:59 +0100)]
Fix formatting comment in Checker
Change-Id: Idf5cf2d4be12a56777039aca3aa1c8563bcb9089
Andreas Gampe [Thu, 20 Aug 2015 15:19:41 +0000 (15:19 +0000)]
am
1a5c46ff: am
5e7cd7bf: Merge "Optimizing String.Equals as an intrinsic (ARM)"
* commit '
1a5c46ff446b881bee6e92074639e805c4d7365f':
Optimizing String.Equals as an intrinsic (ARM)
Andreas Gampe [Thu, 20 Aug 2015 15:12:52 +0000 (15:12 +0000)]
am
5e7cd7bf: Merge "Optimizing String.Equals as an intrinsic (ARM)"
* commit '
5e7cd7bf59501d6f1f90910a9da87effae7b9328':
Optimizing String.Equals as an intrinsic (ARM)
Andreas Gampe [Thu, 20 Aug 2015 15:08:54 +0000 (15:08 +0000)]
Merge "Optimizing String.Equals as an intrinsic (ARM)"
Calin Juravle [Thu, 20 Aug 2015 14:13:13 +0000 (14:13 +0000)]
am
a18658a0: am
8a5ea659: Merge "Fix extra parantheses"
* commit '
a18658a03c610ea414b50bc1604cd4a139408642':
Fix extra parantheses
Calin Juravle [Thu, 20 Aug 2015 14:07:14 +0000 (14:07 +0000)]
am
8a5ea659: Merge "Fix extra parantheses"
* commit '
8a5ea659d0fdf024181a3ea4aae50b0fb26f6291':
Fix extra parantheses
Calin Juravle [Thu, 20 Aug 2015 14:02:57 +0000 (14:02 +0000)]
am
9be7cd86: am
07b017dc: Merge "Fix BuildInvoke"
* commit '
9be7cd8648312d01485d6282eec4982e0e9690d2':
Fix BuildInvoke
Calin Juravle [Thu, 20 Aug 2015 14:02:09 +0000 (14:02 +0000)]
Merge "Fix extra parantheses"
Calin Juravle [Thu, 20 Aug 2015 14:01:27 +0000 (15:01 +0100)]
Fix extra parantheses
:(
Change-Id: Ie48a54de1276fb9e478cb5927d714b2ff14ae6c6
Calin Juravle [Thu, 20 Aug 2015 13:57:49 +0000 (13:57 +0000)]
am
07b017dc: Merge "Fix BuildInvoke"
* commit '
07b017dc8720352e9a8658c576bd43f0e9d61067':
Fix BuildInvoke
Calin Juravle [Thu, 20 Aug 2015 13:52:16 +0000 (13:52 +0000)]
Merge "Fix BuildInvoke"
Calin Juravle [Thu, 20 Aug 2015 13:48:00 +0000 (14:48 +0100)]
Fix BuildInvoke
The invoke should be added to the graph before
PotentiallySimplifyFakeString.
Change-Id: I2afc1d16e6dae60957e7d1386fd028e4f3a5b27a
Calin Juravle [Thu, 20 Aug 2015 12:38:12 +0000 (12:38 +0000)]
am
1a59d9cf: am
431ad293: Merge "Refactor BuildInvoke."
* commit '
1a59d9cf19c43da7ad5e731b2d8c893f03faf1eb':
Refactor BuildInvoke.
Alexandre Rames [Thu, 20 Aug 2015 12:36:35 +0000 (13:36 +0100)]
ARM64: Minor optimization for conversions from long to int.
Change-Id: Ice7febba8dd09a4548ab235fc8aee76d7e7676a1
Calin Juravle [Thu, 20 Aug 2015 12:31:02 +0000 (12:31 +0000)]
am
431ad293: Merge "Refactor BuildInvoke."
* commit '
431ad2930f906e860bc2a801aec63588bc14f63d':
Refactor BuildInvoke.
Calin Juravle [Thu, 20 Aug 2015 12:27:14 +0000 (12:27 +0000)]
Merge "Refactor BuildInvoke."
David Brazdil [Thu, 20 Aug 2015 12:04:03 +0000 (12:04 +0000)]
am
85e32549: am
4a2f814e: Merge "ART: Expression evaluation in Checker"
* commit '
85e325492970ca7f1f47a1d72f420437a7574663':
ART: Expression evaluation in Checker
David Brazdil [Thu, 20 Aug 2015 12:00:43 +0000 (12:00 +0000)]
am
4a2f814e: Merge "ART: Expression evaluation in Checker"
* commit '
4a2f814eecb6d96f6ac97e6dc7a3d64dae4226f5':
ART: Expression evaluation in Checker
Calin Juravle [Tue, 18 Aug 2015 16:08:12 +0000 (17:08 +0100)]
Refactor BuildInvoke.
BuildInvoke got to be too complex an unreadble. This breaks it down in
smaller pieces.
Change-Id: Ibda63f69f5a1be537ae13e18a5f67c361173f4a6
David Brazdil [Thu, 20 Aug 2015 11:55:01 +0000 (11:55 +0000)]
Merge "ART: Expression evaluation in Checker"
David Brazdil [Thu, 20 Aug 2015 10:46:04 +0000 (11:46 +0100)]
ART: Expression evaluation in Checker
It can be useful for tests to evaluate small `assert`-like expressions.
This patch adds such support to Checker, with a new CHECK-EVAL line.
See README file for more details.
Change-Id: I184f7c8e8b53f7e93cfb08fcf9630b4724fa5412
Nicolas Geoffray [Thu, 20 Aug 2015 10:15:21 +0000 (10:15 +0000)]
am
c8fd75d4: am
bffabfce: Merge "Be more flexible on the code unit size when inlining."
* commit '
c8fd75d4f0db9fb89680f8275ebe01f18054c4c7':
Be more flexible on the code unit size when inlining.
Nicolas Geoffray [Thu, 20 Aug 2015 10:09:30 +0000 (10:09 +0000)]
am
bffabfce: Merge "Be more flexible on the code unit size when inlining."
* commit '
bffabfce093e26bffb9e820a8f6b45474d28787a':
Be more flexible on the code unit size when inlining.
Nicolas Geoffray [Thu, 20 Aug 2015 10:06:31 +0000 (10:06 +0000)]
Merge "Be more flexible on the code unit size when inlining."
Nicolas Geoffray [Wed, 12 Aug 2015 03:03:09 +0000 (20:03 -0700)]
Be more flexible on the code unit size when inlining.
This change increases the maximum code unit size, and fold
parameters in the inlinee in the hope to reduce the overall
size of the graph. We then make sure we don't inline methods
that have more than N HInstructions.
Also, remove the kAccDontInline flag on ArtMethod. The compiler
does not need it anymore.
Change-Id: I4cd3da40e551f30ba83b8b274728b87e67f6812e
Andreas Gampe [Thu, 20 Aug 2015 03:19:56 +0000 (03:19 +0000)]
am
8a1e742c: am
4d786026: Merge "Add support to indicate whether intrinsics require a dex cache"
* commit '
8a1e742c0f3f858eededa1ecbdfeed7be5cef189':
Add support to indicate whether intrinsics require a dex cache
Andreas Gampe [Thu, 20 Aug 2015 03:12:50 +0000 (03:12 +0000)]
am
4d786026: Merge "Add support to indicate whether intrinsics require a dex cache"
* commit '
4d786026efaac41acf8278d1c87d842f7ce06fde':
Add support to indicate whether intrinsics require a dex cache
Andreas Gampe [Thu, 20 Aug 2015 03:09:32 +0000 (03:09 +0000)]
Merge "Add support to indicate whether intrinsics require a dex cache"
Agi Csaki [Wed, 19 Aug 2015 21:58:14 +0000 (14:58 -0700)]
Add support to indicate whether intrinsics require a dex cache
A structural change to indicate whether a given intrinsic requires access
to a dex cache. I updated the needs_environment_ field to indicate
whether an HInvoke needs an environment or a dex cache, and if an HInvoke
represents an intrisified method, we utilize this field to determine if
the HInvoke needs a dex cache.
Bug:
21481923
Change-Id: I9dd25a385e1a1397603da6c4c43f6c1aea511b32
Agi Csaki [Wed, 19 Aug 2015 00:10:38 +0000 (17:10 -0700)]
Optimizing String.Equals as an intrinsic (ARM)
The second implementation of String.Equals. I added an intrinsic
in ARM which is similar to the original java implementation
of String.equals: an instanceof check, null check, length check, and
reference equality check followed by a loop comparing strings two
characters at a time. After extensive benchmarking, it seems that
comparing strings forward is faster and is worth the additional temp
register required. Additionally, moving the add and sub instructions
that are anyways necessary between branches in the comparison loop
improved benchmarking results.
Interesting benchmarking values:
Optimizing Compiler on Nexus 7
Intrinsic 1-5 Character Strings = 91.6 ns
Original 1-5 Character Strings = 285.84 ns
Intrinsic 15-30 Character Strings = 176 ns
Original 15-30 Character Strings = 367.67 ns
Intrinsic 100-1000 Character Strings = 2992.1 ns
Original 100-1000 Character Strings = 9098.5 ns
Intrinsic Null Argument = 70.9 ns
Original Null Argument = 189 ns
Code Expansion:
Average size of 116 apps without intrinsic =
6880521.11 bytes
Average size of 116 apps with intrinsic =
6901107.97 bytes
Overall 0.299% increase in code size
Bug:
21481923
Change-Id: I48df2a74f2a92b56fb9479fbf14276d44e880aed
Hiroshi Yamauchi [Wed, 19 Aug 2015 22:20:28 +0000 (22:20 +0000)]
am
86657a85: am
e1e05e08: Merge "Use thread-local is_gc_marking flags for the CC collector."
* commit '
86657a85bd094560fc948c56e8736fd5410ebbfc':
Use thread-local is_gc_marking flags for the CC collector.
David Brazdil [Wed, 19 Aug 2015 22:20:27 +0000 (22:20 +0000)]
am
11e9fc3c: am
83f8b5bb: Merge "ART: Enable basic optimizations for try/catch"
* commit '
11e9fc3c18ca2d0250eaa40f82aebf833a866e87':
ART: Enable basic optimizations for try/catch
Vladimir Marko [Wed, 19 Aug 2015 22:20:19 +0000 (22:20 +0000)]
am
08848696: am
99429ae0: Merge "Revert "Revert "Optimizing: Better invoke-static/-direct dispatch."""
* commit '
08848696578dd886e0aa790aa58b76148cfd8fad':
Revert "Revert "Optimizing: Better invoke-static/-direct dispatch.""
Hiroshi Yamauchi [Wed, 19 Aug 2015 20:26:47 +0000 (20:26 +0000)]
am
e1e05e08: Merge "Use thread-local is_gc_marking flags for the CC collector."
* commit '
e1e05e0876f303a9f4aca1d8713b7c44f21952b8':
Use thread-local is_gc_marking flags for the CC collector.
Hiroshi Yamauchi [Wed, 19 Aug 2015 20:19:15 +0000 (20:19 +0000)]
Merge "Use thread-local is_gc_marking flags for the CC collector."