OSDN Git Service

android-x86/art.git
9 years agoMerge "ARM: Strength reduction for floating-point division"
Ian Rogers [Wed, 5 Nov 2014 19:39:10 +0000 (19:39 +0000)]
Merge "ARM: Strength reduction for floating-point division"

9 years agoARM: Strength reduction for floating-point division
Ningsheng Jian [Thu, 23 Oct 2014 05:48:36 +0000 (13:48 +0800)]
ARM: Strength reduction for floating-point division

For floating-point division by power of two constants, generate
multiplication by the reciprocal instead.

Change-Id: I39c79eeb26b60cc754ad42045362b79498c755be

9 years agoMerge "X86 QBE: Mark kX86StartOfMethod as defining reg 0"
Ian Rogers [Wed, 5 Nov 2014 19:13:15 +0000 (19:13 +0000)]
Merge "X86 QBE: Mark kX86StartOfMethod as defining reg 0"

9 years agoMerge "Clean up arena objects in Mir2Lir."
Vladimir Marko [Wed, 5 Nov 2014 16:55:17 +0000 (16:55 +0000)]
Merge "Clean up arena objects in Mir2Lir."

9 years agoClean up arena objects in Mir2Lir.
Vladimir Marko [Wed, 5 Nov 2014 14:54:34 +0000 (14:54 +0000)]
Clean up arena objects in Mir2Lir.

Change-Id: I93fca37be2ae100ddebf80b6ba7a561b187e8886

9 years agoMerge "Fix RI testing."
Nicolas Geoffray [Wed, 5 Nov 2014 12:39:13 +0000 (12:39 +0000)]
Merge "Fix RI testing."

9 years agoFix RI testing.
Nicolas Geoffray [Wed, 5 Nov 2014 12:34:24 +0000 (12:34 +0000)]
Fix RI testing.

Change-Id: Ic0f40dfd75f4dd8cd1cd70933f76de94c482756d

9 years agoMerge "Fix store instructions to large frames in ARM opt. compiler."
Roland Levillain [Wed, 5 Nov 2014 12:08:30 +0000 (12:08 +0000)]
Merge "Fix store instructions to large frames in ARM opt. compiler."

9 years agoMerge "Fix dependency from phony targets to real files to remove need for m or mma"
Brian Carlstrom [Wed, 5 Nov 2014 07:21:11 +0000 (07:21 +0000)]
Merge "Fix dependency from phony targets to real files to remove need for m or mma"

9 years agoMerge "Restore run-test TIME_OUT feature"
Brian Carlstrom [Wed, 5 Nov 2014 07:21:09 +0000 (07:21 +0000)]
Merge "Restore run-test TIME_OUT feature"

9 years agoFix dependency from phony targets to real files to remove need for m or mma
Brian Carlstrom [Wed, 5 Nov 2014 07:07:57 +0000 (23:07 -0800)]
Fix dependency from phony targets to real files to remove need for m or mma

Change-Id: I37360fbe2fa3aea6cee14241ef13d5839f9532c9

9 years agoRestore run-test TIME_OUT feature
Brian Carlstrom [Wed, 5 Nov 2014 06:31:35 +0000 (22:31 -0800)]
Restore run-test TIME_OUT feature

Added in 741c02c4027d374279954ce5542754c098055f24
Lost in 1a58b7f6f14a5ed9355e8e447cae25fb41467f09

Bug: 18248300
Change-Id: Ie5afdaf07d7b994e94decd928c6e0a28e49b4b78

9 years agoMerge "ART: Fix some redundant declarations"
Andreas Gampe [Wed, 5 Nov 2014 06:58:18 +0000 (06:58 +0000)]
Merge "ART: Fix some redundant declarations"

9 years agoART: Fix some redundant declarations
Andreas Gampe [Wed, 5 Nov 2014 06:26:32 +0000 (22:26 -0800)]
ART: Fix some redundant declarations

Refactor entrypoint initialization such that there is a large set
of common extern "C" declarations for quick entrypoints.

Change-Id: Iae8548e5f7ebbf51dc6c55c4283fa89437e18c98

9 years agoMerge "Add ATTRIBUTE_UNUSED to unused parameters."
Ian Rogers [Wed, 5 Nov 2014 05:30:41 +0000 (05:30 +0000)]
Merge "Add ATTRIBUTE_UNUSED to unused parameters."

9 years agoAdd ATTRIBUTE_UNUSED to unused parameters.
Chih-Hung Hsieh [Tue, 4 Nov 2014 22:39:03 +0000 (14:39 -0800)]
Add ATTRIBUTE_UNUSED to unused parameters.

They are reported by Clang compiler.

BUG: 18244071
Change-Id: I3ebf7a9c324490adbf1135f21818c7ad83c83f3d

9 years agoMerge "Make thread dumping more tolerant of broken invariants during abort."
Ian Rogers [Wed, 5 Nov 2014 03:32:56 +0000 (03:32 +0000)]
Merge "Make thread dumping more tolerant of broken invariants during abort."

9 years agoMerge "ART: More warnings"
Andreas Gampe [Wed, 5 Nov 2014 02:42:56 +0000 (02:42 +0000)]
Merge "ART: More warnings"

9 years agoART: More warnings
Andreas Gampe [Tue, 4 Nov 2014 05:36:10 +0000 (21:36 -0800)]
ART: More warnings

Enable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,
and -Wunused-but-set-parameter for GCC builds.

Change-Id: I81bbdd762213444673c65d85edae594a523836e5

9 years agoMake thread dumping more tolerant of broken invariants during abort.
Ian Rogers [Wed, 5 Nov 2014 01:57:02 +0000 (17:57 -0800)]
Make thread dumping more tolerant of broken invariants during abort.

Change-Id: Ie1bc20debe72f2ea2bf4c1be50cd9877c823670a

9 years agoMerge "Add a test for SafeMath."
Ian Rogers [Wed, 5 Nov 2014 00:49:27 +0000 (00:49 +0000)]
Merge "Add a test for SafeMath."

9 years agoAdd a test for SafeMath.
Ian Rogers [Wed, 5 Nov 2014 00:39:32 +0000 (16:39 -0800)]
Add a test for SafeMath.

Change-Id: I445cd168e6f22a4c12f954eb94e32bd28dba9501

9 years agoMerge "Fix unused parameters for the Mac."
Ian Rogers [Tue, 4 Nov 2014 23:36:57 +0000 (23:36 +0000)]
Merge "Fix unused parameters for the Mac."

9 years agoFix unused parameters for the Mac.
Ian Rogers [Tue, 4 Nov 2014 23:33:55 +0000 (15:33 -0800)]
Fix unused parameters for the Mac.

Change-Id: I76086cc1f448d058de61a613078055d8f01ba4b3

9 years agoMerge "Fix build."
Ian Rogers [Tue, 4 Nov 2014 23:13:47 +0000 (23:13 +0000)]
Merge "Fix build."

9 years agoFix build.
Ian Rogers [Tue, 4 Nov 2014 23:10:55 +0000 (15:10 -0800)]
Fix build.

Change-Id: I7c6657bdc31e57c144999d4a3f8c2836c3d90403

9 years agoMerge "Fix mac build."
Ian Rogers [Tue, 4 Nov 2014 22:45:09 +0000 (22:45 +0000)]
Merge "Fix mac build."

9 years agoFix mac build.
Ian Rogers [Tue, 4 Nov 2014 22:43:18 +0000 (14:43 -0800)]
Fix mac build.

Change-Id: I228cdb0b25cd0f2c5e745a87a97aa8fd3c8a160a

9 years agoMerge "Don't define DISALLOW_COPY_AND_ASSIGN if already defined."
Ian Rogers [Tue, 4 Nov 2014 22:18:08 +0000 (22:18 +0000)]
Merge "Don't define DISALLOW_COPY_AND_ASSIGN if already defined."

9 years agoDon't define DISALLOW_COPY_AND_ASSIGN if already defined.
Ian Rogers [Tue, 4 Nov 2014 21:20:30 +0000 (13:20 -0800)]
Don't define DISALLOW_COPY_AND_ASSIGN if already defined.

Required by:
https://android-review.googlesource.com/#/c/113053/

Change-Id: I0226afffc738a4b7c162a0d467513a35d62dbfdc

9 years agoFix store instructions to large frames in ARM opt. compiler.
Roland Levillain [Tue, 4 Nov 2014 17:43:11 +0000 (17:43 +0000)]
Fix store instructions to large frames in ARM opt. compiler.

When accessing a stack frame at a large offset, use an
additional core register (R5 or R6) as a temporary register
whenever IP contains the value to store (and thus cannot be
used by art::Thumb2Assembler::StoreToOffset as a temporary
register to compute the memory address where the value is
to be stored).  The previous value of R5 (or R6) is saved
on the stack before the emission of the store instruction
and restored afterwards.

Change-Id: Ic5fd5ab2c09d8327dd1f0f241d40d2c397ce64cd

9 years agoMerge "Try to fix mac build."
Nicolas Geoffray [Tue, 4 Nov 2014 13:46:22 +0000 (13:46 +0000)]
Merge "Try to fix mac build."

9 years agoTry to fix mac build.
Nicolas Geoffray [Tue, 4 Nov 2014 13:03:29 +0000 (13:03 +0000)]
Try to fix mac build.

Change-Id: I6c7faa1c80bc7c250d14859d51c910d50b7fb562

9 years agoMerge "New failure on optimizing/arm64 after CONST_CLASS support."
Nicolas Geoffray [Tue, 4 Nov 2014 11:50:23 +0000 (11:50 +0000)]
Merge "New failure on optimizing/arm64 after CONST_CLASS support."

9 years agoNew failure on optimizing/arm64 after CONST_CLASS support.
Nicolas Geoffray [Tue, 4 Nov 2014 11:49:17 +0000 (11:49 +0000)]
New failure on optimizing/arm64 after CONST_CLASS support.

Change-Id: I7bae21795bc038e98f17a903e5964feef0718a37

9 years agoMerge "Implement CONST_CLASS in optimizing compiler."
Nicolas Geoffray [Tue, 4 Nov 2014 11:23:47 +0000 (11:23 +0000)]
Merge "Implement CONST_CLASS in optimizing compiler."

9 years agoImplement CONST_CLASS in optimizing compiler.
Nicolas Geoffray [Mon, 3 Nov 2014 14:51:25 +0000 (14:51 +0000)]
Implement CONST_CLASS in optimizing compiler.

Change-Id: Ia8c8dfbef87cb2f7893bfb6e178466154eec9efd

9 years agoMerge "miranda multidex test fails on optimizing/arm64."
Nicolas Geoffray [Tue, 4 Nov 2014 09:17:11 +0000 (09:17 +0000)]
Merge "miranda multidex test fails on optimizing/arm64."

9 years agomiranda multidex test fails on optimizing/arm64.
Nicolas Geoffray [Tue, 4 Nov 2014 09:15:35 +0000 (09:15 +0000)]
miranda multidex test fails on optimizing/arm64.

Change-Id: I9c41f7aaeb77d2a50c177fdc71fa54503eeb612f

9 years agoMerge "ART: Fix unused parameter warning on Mac"
Andreas Gampe [Tue, 4 Nov 2014 08:45:07 +0000 (08:45 +0000)]
Merge "ART: Fix unused parameter warning on Mac"

9 years agoART: Fix unused parameter warning on Mac
Andreas Gampe [Tue, 4 Nov 2014 08:42:32 +0000 (00:42 -0800)]
ART: Fix unused parameter warning on Mac

Change-Id: Ibf462b90a44c41e2f450724be8cc934b00f17f41

9 years agoMerge "ART: Replace COMPILE_ASSERT with static_assert (compiler)"
Andreas Gampe [Tue, 4 Nov 2014 07:51:34 +0000 (07:51 +0000)]
Merge "ART: Replace COMPILE_ASSERT with static_assert (compiler)"

9 years agoMerge "ART: Replace COMPILE_ASSERT with static_assert (runtime)"
Andreas Gampe [Tue, 4 Nov 2014 07:49:16 +0000 (07:49 +0000)]
Merge "ART: Replace COMPILE_ASSERT with static_assert (runtime)"

9 years agoART: Replace COMPILE_ASSERT with static_assert (runtime)
Andreas Gampe [Tue, 4 Nov 2014 07:41:03 +0000 (23:41 -0800)]
ART: Replace COMPILE_ASSERT with static_assert (runtime)

Replace all occurrences of COMPILE_ASSERT in the runtime tree.

Change-Id: I01e420899c760094fb342cc6cb9e692dd670a0b2

9 years agoART: Replace COMPILE_ASSERT with static_assert (compiler)
Andreas Gampe [Tue, 4 Nov 2014 06:57:30 +0000 (22:57 -0800)]
ART: Replace COMPILE_ASSERT with static_assert (compiler)

Replace all occurrences of COMPILE_ASSERT in the compiler tree.

Change-Id: Icc40a38c8bdeaaf7305ab3352a838a2cd7e7d840

9 years agoMerge "ART: Fix unused parameters in libsigchain"
Andreas Gampe [Tue, 4 Nov 2014 04:27:33 +0000 (04:27 +0000)]
Merge "ART: Fix unused parameters in libsigchain"

9 years agoART: Fix unused parameters in libsigchain
Andreas Gampe [Tue, 4 Nov 2014 04:25:24 +0000 (20:25 -0800)]
ART: Fix unused parameters in libsigchain

The sigchain dummy implementation does not use any parameters.

Change-Id: Icbb71677e5092cd5990a69ea3a62703c0747ae17

9 years agoMerge "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags."
Ian Rogers [Tue, 4 Nov 2014 04:02:48 +0000 (04:02 +0000)]
Merge "Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags."

9 years agoRemove -Wno-unused-parameter and -Wno-sign-promo from base cflags.
Ian Rogers [Fri, 31 Oct 2014 07:33:20 +0000 (00:33 -0700)]
Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.

Fix associated errors about unused paramenters and implict sign conversions.
For sign conversion this was largely in the area of enums, so add ostream
operators for the effected enums and fix tools/generate-operator-out.py.
Tidy arena allocation code and arena allocated data types, rather than fixing
new and delete operators.
Remove dead code.

Change-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b

9 years agoMerge "Some improvement to reg alloc."
Mingyao Yang [Tue, 4 Nov 2014 00:21:46 +0000 (00:21 +0000)]
Merge "Some improvement to reg alloc."

9 years agoSome improvement to reg alloc.
Mingyao Yang [Mon, 6 Oct 2014 23:47:28 +0000 (16:47 -0700)]
Some improvement to reg alloc.

Change-Id: If579a37791278500a7e5bc763f144c241f261920

9 years agoMerge "ART: Add missing test dependency"
Andreas Gampe [Mon, 3 Nov 2014 23:41:18 +0000 (23:41 +0000)]
Merge "ART: Add missing test dependency"

9 years agoART: Add missing test dependency
Andreas Gampe [Mon, 3 Nov 2014 23:36:53 +0000 (15:36 -0800)]
ART: Add missing test dependency

Change-Id: Ic37fd3b8885a9745e1efe4f42578d9ab090a201c

9 years agoMerge "Check null this pointer for direct methods in FindMethodFast."
Jeff Hao [Mon, 3 Nov 2014 22:27:16 +0000 (22:27 +0000)]
Merge "Check null this pointer for direct methods in FindMethodFast."

9 years agoCheck null this pointer for direct methods in FindMethodFast.
Jeff Hao [Thu, 30 Oct 2014 00:24:25 +0000 (17:24 -0700)]
Check null this pointer for direct methods in FindMethodFast.

Also adds regression test 127-secondarydex.

Bug: 18150997

(cherry picked from commit d2bee3dffa2f552512f47bca605ed857e3ae30ea)

Change-Id: I911dd7c92c51939504cfee5a3d18a835987b8388

9 years agoMerge "ART: Add miranda checking"
Andreas Gampe [Mon, 3 Nov 2014 18:30:41 +0000 (18:30 +0000)]
Merge "ART: Add miranda checking"

9 years agoMerge "ART: Discard generated image in a low-memory environment"
Andreas Gampe [Mon, 3 Nov 2014 18:24:44 +0000 (18:24 +0000)]
Merge "ART: Discard generated image in a low-memory environment"

9 years agoART: Add miranda checking
Andreas Gampe [Sat, 1 Nov 2014 01:12:30 +0000 (18:12 -0700)]
ART: Add miranda checking

Add a test for resolution of miranda methods across dex-files. See
CL 112688 and b/18193682 for the code change.

Fix the test script to support no-verify again.

Weaken the dex cache check to a check whether the found method is a
miranda method. This will penalize miranda methods, as they will
always have to be resolved by name, but does not require the multi-step
load of the method's dex cache.

Bug: 18193682
Change-Id: I1dae2a9ec0985dc8625acd7dd5686a5d3cdc8888

9 years agoMerge "Add image strings to intern table"
Mathieu Chartier [Mon, 3 Nov 2014 18:18:40 +0000 (18:18 +0000)]
Merge "Add image strings to intern table"

9 years agoMerge "Remove generated file if compiling the image failed."
Nicolas Geoffray [Mon, 3 Nov 2014 18:17:53 +0000 (18:17 +0000)]
Merge "Remove generated file if compiling the image failed."

9 years agoAdd image strings to intern table
Mathieu Chartier [Fri, 31 Oct 2014 18:49:27 +0000 (11:49 -0700)]
Add image strings to intern table

When we create the runtime, we now add the image strings to the
intern table if we are the zygote. This caused some memory bloat,
so I added an extra unordered set to the intern table.

There is now two unordered sets (hash talbe). One for pre-zygote
interns and one for post-zygote interns. This helps since the
pre-zygote hash table doesn't get dirtied. Even with adding
the image strings, we get total memory savings of around 5-7 MB
native PSS after device boot.

FB launch Before:
2.20% art::DexFile::FindStringId(char const*) const
TotalTime: 2069
TotalTime: 1985
TotalTime: 2088
TotalTime: 2003
TotalTime: 2034
TotalTime: 2049
After boot native PSS: 175585 kB: Native

After:
0.27% art::DexFile::FindStringId(char const*) const
TotalTime: 1682
TotalTime: 1756
TotalTime: 1825
TotalTime: 1751
TotalTime: 1666
TotalTime: 1813
After boot native PSS: 167089 kB: Native

Bug: 18054905
Bug: 16828525
Bug: 17808975

(cherry picked from commit b6e292bf7eac9d73c6b79b1e9b7b87beb02436c9)

Change-Id: Ie367f3222f8c4db409ec49c3845276908b51e9c9

9 years agoMerge "ART: Remove unnecessary includes"
Andreas Gampe [Mon, 3 Nov 2014 18:12:44 +0000 (18:12 +0000)]
Merge "ART: Remove unnecessary includes"

9 years agoART: Remove unnecessary includes
Andreas Gampe [Mon, 3 Nov 2014 16:47:01 +0000 (08:47 -0800)]
ART: Remove unnecessary includes

Remove unnecessary includes from context_ISA.cc

Change-Id: Ic9919c0afd081ec405a5d972d152fe996d12fa3d

9 years agoRemove generated file if compiling the image failed.
Nicolas Geoffray [Mon, 3 Nov 2014 16:23:48 +0000 (16:23 +0000)]
Remove generated file if compiling the image failed.

Change-Id: Ie809ad15d090e8303ec6ce308f76fc7f3f80cadd

9 years agoMerge "Add missing $() when testing TARGET_ARCH."
Nicolas Geoffray [Mon, 3 Nov 2014 14:40:29 +0000 (14:40 +0000)]
Merge "Add missing $() when testing TARGET_ARCH."

9 years agoAdd missing $() when testing TARGET_ARCH.
Nicolas Geoffray [Mon, 3 Nov 2014 14:39:21 +0000 (14:39 +0000)]
Add missing $() when testing TARGET_ARCH.

Change-Id: I02a25022d144ad2a502278755ff286278109a830

9 years agoMerge "Only use Quick for optimizing on arm64."
Nicolas Geoffray [Mon, 3 Nov 2014 13:57:55 +0000 (13:57 +0000)]
Merge "Only use Quick for optimizing on arm64."

9 years agoMerge "Disable kNoOutputOverlap optimization."
Nicolas Geoffray [Mon, 3 Nov 2014 13:57:14 +0000 (13:57 +0000)]
Merge "Disable kNoOutputOverlap optimization."

9 years agoART: Discard generated image in a low-memory environment
Andreas Gampe [Fri, 31 Oct 2014 23:45:19 +0000 (16:45 -0700)]
ART: Discard generated image in a low-memory environment

In case the available memory after image generation is low,
discard the image and continue in interpreted mode to mitigate
low-mem issues.

Bug: 17975190

(cherry picked from commit e059b778a6a471455659eb8c3616858eb189fda8)

Change-Id: I9bbb5e52ffbf3570f85510efb76bcd7654e6951c

9 years agoMerge "Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods"
Brian Carlstrom [Fri, 31 Oct 2014 21:33:35 +0000 (21:33 +0000)]
Merge "Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods"

9 years agoFix FindDeclaredVirtualMethod(DexCache...) for miranda methods
Brian Carlstrom [Fri, 31 Oct 2014 07:01:54 +0000 (00:01 -0700)]
Fix FindDeclaredVirtualMethod(DexCache...) for miranda methods

If a class in classes.dex implements an interface from classes2.dex,
the miranda method will be in the dex cache for classes2.dex, but
pointed to by the virtual methods of the class in the dex caches for
classes.dex.

Therefore the fast path for DexCache::ResolveMethod that searches via
class and superclass virtual methods should ensure that any method
matching on dex method_idx should be from the same dex cache as the
class itself, which is not the case for miranda methods.

Bug: 18193682

(cherry picked from commit 9a783d6a0cb437fc0d9ffcc84502912f3d1cb73b)

Change-Id: Ia44f72c2ed2701e48153d14d2c5ca4ccc4959b30

9 years agoMerge "Fix armv8 testing with default ANDROID_ROOT."
Nicolas Geoffray [Fri, 31 Oct 2014 15:50:18 +0000 (15:50 +0000)]
Merge "Fix armv8 testing with default ANDROID_ROOT."

9 years agoFix armv8 testing with default ANDROID_ROOT.
Nicolas Geoffray [Fri, 31 Oct 2014 15:34:50 +0000 (15:34 +0000)]
Fix armv8 testing with default ANDROID_ROOT.

Change-Id: I68ac57240783822972a3f49dd54de01ef60e637d

9 years agoMerge "More armv8 failures now that optimizing supports CONST_STRING."
Nicolas Geoffray [Fri, 31 Oct 2014 15:09:24 +0000 (15:09 +0000)]
Merge "More armv8 failures now that optimizing supports CONST_STRING."

9 years agoMore armv8 failures now that optimizing supports CONST_STRING.
Nicolas Geoffray [Fri, 31 Oct 2014 15:07:56 +0000 (15:07 +0000)]
More armv8 failures now that optimizing supports CONST_STRING.

Change-Id: Ifd53c7f520266e5a3ccdf58c50fcb7788e1eb9c6

9 years agoDisable kNoOutputOverlap optimization.
Nicolas Geoffray [Fri, 31 Oct 2014 14:27:37 +0000 (14:27 +0000)]
Disable kNoOutputOverlap optimization.

Found a case where it does not work. Need to think more about it
as well as write a regression test.

Change-Id: I2abe05c84f2c608d622fbe6d373b6dcdb68f4162

9 years agoMerge "Support for CONST_STRING in optimizing compiler."
Nicolas Geoffray [Fri, 31 Oct 2014 14:24:05 +0000 (14:24 +0000)]
Merge "Support for CONST_STRING in optimizing compiler."

9 years agoSupport for CONST_STRING in optimizing compiler.
Nicolas Geoffray [Thu, 30 Oct 2014 10:58:41 +0000 (10:58 +0000)]
Support for CONST_STRING in optimizing compiler.

Change-Id: Iab8517bdadd1d15ffbe570010f093660be7c51aa

9 years agoOnly use Quick for optimizing on arm64.
Nicolas Geoffray [Fri, 31 Oct 2014 10:48:25 +0000 (10:48 +0000)]
Only use Quick for optimizing on arm64.

Also, force recompilation of the images with optimizing at each
dex2oat change.

Change-Id: I4a6e3a7badc3dae4f35d4eb93659a0d59569cd1a

9 years agoMerge "Add math routines with defined wrapping behavior for the interpreter."
Ian Rogers [Thu, 30 Oct 2014 23:27:25 +0000 (23:27 +0000)]
Merge "Add math routines with defined wrapping behavior for the interpreter."

9 years agoAdd math routines with defined wrapping behavior for the interpreter.
Ian Rogers [Thu, 30 Oct 2014 22:41:08 +0000 (15:41 -0700)]
Add math routines with defined wrapping behavior for the interpreter.

Add a RSUB_INT_LIT16 instruction alias to make instruction opcode switch
statements easier to read.

Change-Id: I3bac07c9518665abf0b05b5c3105a90be22f780a

9 years agoMerge "Avoid signed integer overflow in identity hash code."
Ian Rogers [Thu, 30 Oct 2014 22:42:26 +0000 (22:42 +0000)]
Merge "Avoid signed integer overflow in identity hash code."

9 years agoAvoid signed integer overflow in identity hash code.
Ian Rogers [Thu, 30 Oct 2014 22:25:36 +0000 (15:25 -0700)]
Avoid signed integer overflow in identity hash code.

Caught by -ftrapv.

Change-Id: Ib8dbb31440ccce88a3c3ce7ea3b2394621616eff

9 years agoMerge "Avoid signed integer overflow."
Ian Rogers [Thu, 30 Oct 2014 22:25:22 +0000 (22:25 +0000)]
Merge "Avoid signed integer overflow."

9 years agoMerge "Add hash table to link virtual methods"
Mathieu Chartier [Thu, 30 Oct 2014 22:24:49 +0000 (22:24 +0000)]
Merge "Add hash table to link virtual methods"

9 years agoMerge "Fix mixed signed/unsigned arithmetic in BitVector."
Ian Rogers [Thu, 30 Oct 2014 22:24:10 +0000 (22:24 +0000)]
Merge "Fix mixed signed/unsigned arithmetic in BitVector."

9 years agoAdd hash table to link virtual methods
Mathieu Chartier [Wed, 29 Oct 2014 01:23:02 +0000 (18:23 -0700)]
Add hash table to link virtual methods

Added a hash table for turning the O(m*n) lookup average case to
O(m+n) average case. There is probably still some room for improvement.

Before:
WaitTime: 2121
WaitTime: 2051
WaitTime: 2134
WaitTime: 2104
WaitTime: 2237
WaitTime: 2391
4.99% art::MethodNameAndSignatureComparator::HasSameNameAndSignature(art::mirror::ArtMethod)
1.65% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle<art::mirror::Class>)

After:
WaitTime: 2038
WaitTime: 1965
WaitTime: 1979
WaitTime: 1976
WaitTime: 1957
WaitTime: 2004
0.46% art::MethodNameAndSignatureComparator::HasSameNameAndSignature(art::mirror::ArtMethod*)
1.39% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle<art::mirror::Class>)

Bug: 18054905
Bug: 16828525

(cherry picked from commit a9ca9ac444ceb2cf5e8bd5c98c1ed47f2a9a94dd)

Change-Id: If847afb7194daa05ace38d15862e4b871dfffae1

9 years agoMerge "Avoid signed arithmetic overflow in UTF hash functions."
Ian Rogers [Thu, 30 Oct 2014 22:19:02 +0000 (22:19 +0000)]
Merge "Avoid signed arithmetic overflow in UTF hash functions."

9 years agoAvoid signed arithmetic overflow in UTF hash functions.
Ian Rogers [Thu, 30 Oct 2014 22:16:16 +0000 (15:16 -0700)]
Avoid signed arithmetic overflow in UTF hash functions.

Change-Id: I3485ef8445a6034661c1e75dc11ab9ad48884458

9 years agoFix mixed signed/unsigned arithmetic in BitVector.
Ian Rogers [Thu, 30 Oct 2014 22:13:22 +0000 (15:13 -0700)]
Fix mixed signed/unsigned arithmetic in BitVector.

Change-Id: I59c7f5a26e42689f77b067f4c73b086335e9273d

9 years agoAvoid signed integer overflow.
Ian Rogers [Thu, 30 Oct 2014 22:10:02 +0000 (15:10 -0700)]
Avoid signed integer overflow.

Caught by -ftrapv there is a benign integer overflow if a switch has the
value max int within it (as in run-test 095).

Change-Id: I86bb8ce2f9097cb367c031ec51d58d01b31313e2

9 years agoMerge "art: Fix classlinker and nopatchoat test for PIC case"
Igor Murashkin [Thu, 30 Oct 2014 21:40:18 +0000 (21:40 +0000)]
Merge "art: Fix classlinker and nopatchoat test for PIC case"

9 years agoart: Fix classlinker and nopatchoat test for PIC case
Igor Murashkin [Thu, 30 Oct 2014 02:45:42 +0000 (19:45 -0700)]
art: Fix classlinker and nopatchoat test for PIC case

ClassLinker should not be checking oat data begin and the patch delta
as part of the checksum verification (when PIC is enabled).

Also update nopatchoat test since it needs to be parametric on whether
PIC is used.

Bug: 18035729
Change-Id: I4eb184d22616230a7b8f0dd514d3416d0976b07e

9 years agoMerge "Remove bogus compiler flag from libart-compiler."
Ian Rogers [Thu, 30 Oct 2014 18:56:52 +0000 (18:56 +0000)]
Merge "Remove bogus compiler flag from libart-compiler."

9 years agoRemove bogus compiler flag from libart-compiler.
Ian Rogers [Thu, 30 Oct 2014 18:53:42 +0000 (11:53 -0700)]
Remove bogus compiler flag from libart-compiler.

Change-Id: I2e2c555cb80c745e3d9859b88f16491ea146b38f

9 years agoMerge "ARM: Generate $t mapping symbol to indicate thumb2 code"
Ian Rogers [Thu, 30 Oct 2014 18:36:14 +0000 (18:36 +0000)]
Merge "ARM: Generate $t mapping symbol to indicate thumb2 code"

9 years agoMerge "Tidy and reduce ART library dependencies on the host."
Ian Rogers [Thu, 30 Oct 2014 18:31:27 +0000 (18:31 +0000)]
Merge "Tidy and reduce ART library dependencies on the host."

9 years agoMerge "Follow-up CL after hard float changes."
Nicolas Geoffray [Thu, 30 Oct 2014 18:20:07 +0000 (18:20 +0000)]
Merge "Follow-up CL after hard float changes."

9 years agoTidy and reduce ART library dependencies on the host.
Ian Rogers [Thu, 30 Oct 2014 18:19:14 +0000 (11:19 -0700)]
Tidy and reduce ART library dependencies on the host.

Move to shared rather than static libraries. Avoids capture of all static
libraries library dependencies.

Change-Id: I2be96e92dad4ed1842d76b044745f2a2e15372eb

9 years agoMerge "419 fails on optimizing/arm64."
Nicolas Geoffray [Thu, 30 Oct 2014 17:33:51 +0000 (17:33 +0000)]
Merge "419 fails on optimizing/arm64."