OSDN Git Service

android-x86/art.git
9 years agoMerge "ART: Do not abort on most verifier failures"
Andreas Gampe [Thu, 30 Oct 2014 17:08:03 +0000 (17:08 +0000)]
Merge "ART: Do not abort on most verifier failures"

9 years agoART: Do not abort on most verifier failures
Andreas Gampe [Tue, 28 Oct 2014 03:08:46 +0000 (20:08 -0700)]
ART: Do not abort on most verifier failures

Changes hard aborts to hard verifier failures, which rejects a
class instead of killing the process.

Bug: 17625962

(cherry picked from commit 8fa841aa1c02ff8e3e7caaa73ed5fe25f027d5d3)

Change-Id: Iba8e15676e13ea6dcd6e1e5d0484031d9ab52ae9

9 years agoMerge "Fix for long parameter passed both in stack and register."
Nicolas Geoffray [Thu, 30 Oct 2014 17:04:55 +0000 (17:04 +0000)]
Merge "Fix for long parameter passed both in stack and register."

9 years agoFix for long parameter passed both in stack and register.
Nicolas Geoffray [Thu, 30 Oct 2014 16:37:57 +0000 (16:37 +0000)]
Fix for long parameter passed both in stack and register.

Fix for long parameter passed both in stack and register
on 32bits architectures.
The move to hard float ABI makes it so that the
register index does not necessarily match the stack index anymore.

Change-Id: I26b483f68ac86d336b4a37d94c38b04917668659

9 years agoMerge "Update list of failing tests for arm64/optimizing."
Nicolas Geoffray [Thu, 30 Oct 2014 13:17:48 +0000 (13:17 +0000)]
Merge "Update list of failing tests for arm64/optimizing."

9 years agoMerge "Fix gtest dependencies."
Nicolas Geoffray [Thu, 30 Oct 2014 12:14:48 +0000 (12:14 +0000)]
Merge "Fix gtest dependencies."

9 years agoFix gtest dependencies.
Nicolas Geoffray [Thu, 30 Oct 2014 12:13:17 +0000 (12:13 +0000)]
Fix gtest dependencies.

Change-Id: I661f3b09e2ed8102ae262104f3784a8eb067a0b2

9 years agoUpdate list of failing tests for arm64/optimizing.
Nicolas Geoffray [Thu, 30 Oct 2014 10:54:03 +0000 (10:54 +0000)]
Update list of failing tests for arm64/optimizing.

Support for new opcodes in other backends led to new failures.

Change-Id: I4231869cd698ee412e9319eb6822f7e885160b19

9 years agoMerge "Another ART_TEST_ANDROID_ROOT fix."
Nicolas Geoffray [Thu, 30 Oct 2014 10:37:53 +0000 (10:37 +0000)]
Merge "Another ART_TEST_ANDROID_ROOT fix."

9 years agoAnother ART_TEST_ANDROID_ROOT fix.
Nicolas Geoffray [Wed, 29 Oct 2014 23:50:40 +0000 (23:50 +0000)]
Another ART_TEST_ANDROID_ROOT fix.

Some gtests use ANDROID_ROOT to locate things like core-libart.jar.

Change-Id: Ic929c15542e5c0bfef2181ba404f4adf0de28465

9 years agoMerge "Also use Quick for target boot image."
Nicolas Geoffray [Thu, 30 Oct 2014 10:30:47 +0000 (10:30 +0000)]
Merge "Also use Quick for target boot image."

9 years agoAlso use Quick for target boot image.
Nicolas Geoffray [Thu, 30 Oct 2014 10:29:03 +0000 (10:29 +0000)]
Also use Quick for target boot image.

Change-Id: I4b04effa45b4f0af7a5b0220b0dd50e6697b9349

9 years agoMerge "Opt compiler: Add ARM64 support for the Mul IR."
Nicolas Geoffray [Thu, 30 Oct 2014 10:13:14 +0000 (10:13 +0000)]
Merge "Opt compiler: Add ARM64 support for the Mul IR."

9 years agoMerge "ART: Fix no-image run-test dependency"
Andreas Gampe [Thu, 30 Oct 2014 05:12:54 +0000 (05:12 +0000)]
Merge "ART: Fix no-image run-test dependency"

9 years agoART: Fix no-image run-test dependency
Andreas Gampe [Thu, 30 Oct 2014 03:46:17 +0000 (20:46 -0700)]
ART: Fix no-image run-test dependency

The tests depend on a core image for prebuilding.

Change-Id: Ib8352a00b61bfcb72b86d42fb8a94e3802ff874d

9 years agoMerge "Fix combination of prebuild/no-image."
Andreas Gampe [Thu, 30 Oct 2014 01:46:06 +0000 (01:46 +0000)]
Merge "Fix combination of prebuild/no-image."

9 years agoMerge "Support gtest with ART_TEST_ANDROID_ROOT."
Nicolas Geoffray [Wed, 29 Oct 2014 23:11:03 +0000 (23:11 +0000)]
Merge "Support gtest with ART_TEST_ANDROID_ROOT."

9 years agoSupport gtest with ART_TEST_ANDROID_ROOT.
Nicolas Geoffray [Wed, 29 Oct 2014 22:38:53 +0000 (22:38 +0000)]
Support gtest with ART_TEST_ANDROID_ROOT.

Change-Id: If14c499c64cbaab3fbf6e17540e782543e8856d4

9 years agoFix combination of prebuild/no-image.
Nicolas Geoffray [Wed, 29 Oct 2014 23:02:11 +0000 (23:02 +0000)]
Fix combination of prebuild/no-image.

Prebuild should always have an image. It's running the test
that should not.

Change-Id: I659514fba053c19edf13384ce061497d9b3a9e27

9 years agoOpt compiler: Add ARM64 support for the Mul IR.
Alexandre Rames [Mon, 27 Oct 2014 14:00:51 +0000 (14:00 +0000)]
Opt compiler: Add ARM64 support for the Mul IR.

Also disable compilation and use of the boot image with
the optimizing compiler: this won't work with the way
we're bringing up arm64 and we need to find a better
solution.

Bug: 18147756

Change-Id: I6ec0de73681f9226d095bc3db92338dbd46499aa

9 years agoMerge "ART: Fix multi-image testing"
Andreas Gampe [Wed, 29 Oct 2014 17:38:09 +0000 (17:38 +0000)]
Merge "ART: Fix multi-image testing"

9 years agoART: Fix multi-image testing
Andreas Gampe [Wed, 29 Oct 2014 16:35:19 +0000 (09:35 -0700)]
ART: Fix multi-image testing

Also, make an unknown compiler backend string fail dex2oat.

Change-Id: I878aef47d3c2c84b8479420e1a7ea2852993de35

9 years agoMerge "Set ANDROID_ROOT correctly for host in test script."
Nicolas Geoffray [Wed, 29 Oct 2014 14:09:00 +0000 (14:09 +0000)]
Merge "Set ANDROID_ROOT correctly for host in test script."

9 years agoSet ANDROID_ROOT correctly for host in test script.
Nicolas Geoffray [Wed, 29 Oct 2014 14:05:59 +0000 (14:05 +0000)]
Set ANDROID_ROOT correctly for host in test script.

Change-Id: I2cbac266a05c3c731787130584b69dbf3e67e980

9 years agoMerge "Provide an option to run run-tests with a local dalvikvm."
Nicolas Geoffray [Wed, 29 Oct 2014 13:10:13 +0000 (13:10 +0000)]
Merge "Provide an option to run run-tests with a local dalvikvm."

9 years agoProvide an option to run run-tests with a local dalvikvm.
Nicolas Geoffray [Tue, 28 Oct 2014 17:59:47 +0000 (17:59 +0000)]
Provide an option to run run-tests with a local dalvikvm.

Instead of overwriting /system, use a temporary directory
to push the binaries and libraries, and use them for
running the tests.

Change-Id: I45fa2ac51f836686d8e8676907eb26629f7ab2ab

9 years agoMerge "Add support for static fields in optimizing compiler."
Nicolas Geoffray [Wed, 29 Oct 2014 13:02:55 +0000 (13:02 +0000)]
Merge "Add support for static fields in optimizing compiler."

9 years agoAdd support for static fields in optimizing compiler.
Nicolas Geoffray [Wed, 22 Oct 2014 15:07:05 +0000 (16:07 +0100)]
Add support for static fields in optimizing compiler.

Change-Id: Id2f010589e2bd6faf42c05bb33abf6816ebe9fa9

9 years agoMerge "Remove useless suspend points from arm/arm64 AGET/APUT."
Vladimir Marko [Wed, 29 Oct 2014 11:06:45 +0000 (11:06 +0000)]
Merge "Remove useless suspend points from arm/arm64 AGET/APUT."

9 years agoMerge "Move GetNameAsString out of MethodHelper into ArtMethod."
Ian Rogers [Wed, 29 Oct 2014 04:57:49 +0000 (04:57 +0000)]
Merge "Move GetNameAsString out of MethodHelper into ArtMethod."

9 years agoMove GetNameAsString out of MethodHelper into ArtMethod.
Ian Rogers [Wed, 29 Oct 2014 04:50:58 +0000 (21:50 -0700)]
Move GetNameAsString out of MethodHelper into ArtMethod.

Change-Id: I98b8ed9d91741267659616cb76ce5f6fec4feae8

9 years agoMerge changes I70e70894,I3adcb8a1
Brian Carlstrom [Wed, 29 Oct 2014 03:17:16 +0000 (03:17 +0000)]
Merge changes I70e70894,I3adcb8a1

* changes:
  Work around relocated boot.oat corruption
  Remove double space in messages

9 years agoMerge "Move MethodHelper::GetReturnType to mirror::ArtMethod."
Ian Rogers [Wed, 29 Oct 2014 01:39:02 +0000 (01:39 +0000)]
Merge "Move MethodHelper::GetReturnType to mirror::ArtMethod."

9 years agoMove MethodHelper::GetReturnType to mirror::ArtMethod.
Ian Rogers [Wed, 29 Oct 2014 01:12:55 +0000 (18:12 -0700)]
Move MethodHelper::GetReturnType to mirror::ArtMethod.

Also, fix missing handle in HasSameSignatureWithDifferentClassLoaders.

Change-Id: I9e1ffd09be950ecc8346fc3c485760d82d9ecab3

9 years agoWork around relocated boot.oat corruption
Brian Carlstrom [Tue, 28 Oct 2014 22:53:43 +0000 (15:53 -0700)]
Work around relocated boot.oat corruption

Bug: 18143314

(cherry picked from commit 7dd7261845258b7c29b588829c80164b878f4424)

Change-Id: I70e708940663bf53ebe5320f53fd2dcebb0c623f

9 years agoMerge "ART: PIC testing"
Andreas Gampe [Wed, 29 Oct 2014 01:07:15 +0000 (01:07 +0000)]
Merge "ART: PIC testing"

9 years agoART: PIC testing
Andreas Gampe [Tue, 28 Oct 2014 21:47:25 +0000 (14:47 -0700)]
ART: PIC testing

Adds run-test support for PIC testing.

For the core image, enable with ART_TEST_PIC_IMAGE=true.
For the tests themselves, enable with ART_TEST_PIC_TEST=true.
Off by default.

Bug: 18035729
Change-Id: I23e396a2fa47b9471145f45b3c63f447871ebebf

9 years agoMerge "Fill resolved static fields during class initialization"
Mathieu Chartier [Tue, 28 Oct 2014 23:39:01 +0000 (23:39 +0000)]
Merge "Fill resolved static fields during class initialization"

9 years agoFill resolved static fields during class initialization
Mathieu Chartier [Tue, 28 Oct 2014 20:57:04 +0000 (13:57 -0700)]
Fill resolved static fields during class initialization

Previously everytime we resolved static fields we linear searched
the class to find the field with the specified field id. Now we
eagerly set these fields in the dex cache when we initialize classes.

FB launch timings before:
WaitTime: 2903
WaitTime: 2953
WaitTime: 2918
WaitTime: 2940
WaitTime: 2879
WaitTime: 2792

Timings after:
WaitTime: 2699
WaitTime: 2791
WaitTime: 2653
WaitTime: 2929
WaitTime: 2651
WaitTime: 2971

Perf before:
2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)
After:
0.00% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)

Bug: 18054905
Bug: 16828525

(cherry picked from commit bfb21589a6490769690b44aaf8e6a0021a1261b7)

Change-Id: I33255f85d10c29cae085584880196c45ac0ea230

9 years agoRemove double space in messages
Brian Carlstrom [Tue, 28 Oct 2014 20:54:26 +0000 (13:54 -0700)]
Remove double space in messages

Change-Id: I3adcb8a13c8d0468cb700a1195aecfc0fd94dcbb

9 years agoMerge "Remove ResolveString from MethodHelper."
Ian Rogers [Tue, 28 Oct 2014 20:54:49 +0000 (20:54 +0000)]
Merge "Remove ResolveString from MethodHelper."

9 years agoRemove ResolveString from MethodHelper.
Ian Rogers [Tue, 28 Oct 2014 19:49:06 +0000 (12:49 -0700)]
Remove ResolveString from MethodHelper.

Change-Id: Ice0fff0680f876285539f78cd79d520d424e2f5e

9 years agoMerge "ART: Create and use multiple core images"
Andreas Gampe [Tue, 28 Oct 2014 19:18:56 +0000 (19:18 +0000)]
Merge "ART: Create and use multiple core images"

9 years agoART: Create and use multiple core images
Andreas Gampe [Sat, 25 Oct 2014 04:58:16 +0000 (21:58 -0700)]
ART: Create and use multiple core images

Update test infrastructure to understand several core variants.
Now compiles three core.art/oat variants:

* core.art/oat, default-compiled
* core-interpreter.art/oat, interpret-only
* core-optimizing.art/oat, optimizing compiler

The run-test variant implies which core variant is used.

Change-Id: Ieeaf2df90faee2b04c209b950897e77806205fe4

9 years agoMerge "Tidy MethodProtoHelper."
Ian Rogers [Tue, 28 Oct 2014 18:48:14 +0000 (18:48 +0000)]
Merge "Tidy MethodProtoHelper."

9 years agoTidy MethodProtoHelper.
Ian Rogers [Tue, 28 Oct 2014 16:34:57 +0000 (09:34 -0700)]
Tidy MethodProtoHelper.

Move to place of only use, class_linker.cc. Be lazy in computing the name.

Change-Id: I1438efbda58369ddd0ac36eda8a5a0a6c6fdff77

9 years agoMerge "[optimizing compiler] Add division for floats and doubles"
Calin Juravle [Tue, 28 Oct 2014 17:54:20 +0000 (17:54 +0000)]
Merge "[optimizing compiler] Add division for floats and doubles"

9 years ago[optimizing compiler] Add division for floats and doubles
Calin Juravle [Tue, 28 Oct 2014 16:57:40 +0000 (16:57 +0000)]
[optimizing compiler] Add division for floats and doubles

backends: x86, x86_64, arm.

Also:
- ordered instructions based on their name.
- add missing kNoOutputOverlap to add/sub/mul.

Change-Id: Ie47cde3b15ac74e7a1660c67a2eed1d7871f0ad0

9 years agoRemove useless suspend points from arm/arm64 AGET/APUT.
Vladimir Marko [Tue, 28 Oct 2014 17:51:22 +0000 (17:51 +0000)]
Remove useless suspend points from arm/arm64 AGET/APUT.

Change-Id: Ib17da0c02599b943cb62582a8a25f187272d423b

9 years agoMerge "Add long bitwise not instruction in the optimizing compiler."
Roland Levillain [Tue, 28 Oct 2014 11:21:22 +0000 (11:21 +0000)]
Merge "Add long bitwise not instruction in the optimizing compiler."

9 years agoMerge changes Ia007744f,Iac6d03d8
Brian Carlstrom [Tue, 28 Oct 2014 04:06:10 +0000 (04:06 +0000)]
Merge changes Ia007744f,Iac6d03d8

* changes:
  Remove extraneous fprintf args
  Remove boot.art/boot.oat on failure to create

9 years agoMerge "ART: Add support for patching and loading OAT files compiled with PIC"
Igor Murashkin [Tue, 28 Oct 2014 03:53:36 +0000 (03:53 +0000)]
Merge "ART: Add support for patching and loading OAT files compiled with PIC"

9 years agoART: Add support for patching and loading OAT files compiled with PIC
Igor Murashkin [Wed, 22 Oct 2014 18:37:02 +0000 (11:37 -0700)]
ART: Add support for patching and loading OAT files compiled with PIC

* Images (.art) compiled with pic now have a new field added.
* isDexOptNeeded will now skip patch-ing for apps compiled PIC
* First-boot patching now only copies boot.art, boot.oat is linked

As a result, all system preopted dex files (with --compile-pic) no
longer take up any space in /data/dalvik-cache/<isa>.

Bug: 18035729
Change-Id: Ie1acad81a0fd8b2f24e1f3f07a06e6fdb548be62

9 years agoMerge "ART: Add pic flag to oat header store"
Andreas Gampe [Tue, 28 Oct 2014 02:08:03 +0000 (02:08 +0000)]
Merge "ART: Add pic flag to oat header store"

9 years agoRemove extraneous fprintf args
Brian Carlstrom [Tue, 28 Oct 2014 01:57:28 +0000 (18:57 -0700)]
Remove extraneous fprintf args

Also fix build scripts to die due to such warnings.

Change-Id: Ia007744fcef8e37ba73b4f73e7c50c9fc9a1d4f5

9 years agoART: Add pic flag to oat header store
Andreas Gampe [Thu, 23 Oct 2014 18:37:40 +0000 (11:37 -0700)]
ART: Add pic flag to oat header store

Add the compile-time PIC flag to the oat-header key-value store.
Ignore image offset and patch delta when loading PIC oat files.

Change-Id: Ie1f1ef37125386a968228033d1e2bec565315510

9 years agoRemove boot.art/boot.oat on failure to create
Brian Carlstrom [Mon, 27 Oct 2014 23:27:06 +0000 (16:27 -0700)]
Remove boot.art/boot.oat on failure to create

Bug: 18143314

(cherry picked from commit a6b2affaf99e03f938f6f26e42606488d43f2efe)

Change-Id: Iac6d03d81997911f6707340487a26ee26a3aee27

9 years agoMerge "Fix 64 bit build"
Mathieu Chartier [Tue, 28 Oct 2014 00:50:45 +0000 (00:50 +0000)]
Merge "Fix 64 bit build"

9 years agoFix 64 bit build
Mathieu Chartier [Tue, 28 Oct 2014 00:30:20 +0000 (17:30 -0700)]
Fix 64 bit build

Buggy compiler.

(cherry picked from commit 7989d22642415e1e4d608e210284834951bd0a39)

Change-Id: Id16c83fc7963ca89fd7fae32dd15ae342cc7f064

9 years agoMerge "ART: Typo fix"
Andreas Gampe [Tue, 28 Oct 2014 00:06:49 +0000 (00:06 +0000)]
Merge "ART: Typo fix"

9 years agoART: Typo fix
Andreas Gampe [Tue, 28 Oct 2014 00:06:29 +0000 (17:06 -0700)]
ART: Typo fix

Change-Id: If544f02117b6f1bbc1279444c70cb9f2a0534c6f

9 years agoMerge "ART: Fix test 089"
Andreas Gampe [Tue, 28 Oct 2014 00:05:45 +0000 (00:05 +0000)]
Merge "ART: Fix test 089"

9 years agoART: Fix test 089
Andreas Gampe [Tue, 28 Oct 2014 00:03:58 +0000 (17:03 -0700)]
ART: Fix test 089

Another two lines of build failure output that need to be stripped.

Change-Id: I85c2a3b3e8553b2f5da8e043dd561ada380ef2fe

9 years agoMerge "Optimize method linking"
Mathieu Chartier [Mon, 27 Oct 2014 23:50:08 +0000 (23:50 +0000)]
Merge "Optimize method linking"

9 years agoOptimize method linking
Mathieu Chartier [Thu, 23 Oct 2014 23:48:06 +0000 (16:48 -0700)]
Optimize method linking

Added more inlining, removed imt array allocation and replaced it
with a handle scope. Removed some un-necessary handle scopes.

Added logic to base interface method tables from the superclass so
that we dont need to reconstruct for every interface (large win).

Facebook launch Dalvik KK MR2:
TotalTime: 3165
TotalTime: 3652
TotalTime: 3143
TotalTime: 3298
TotalTime: 3212
TotalTime: 3211

Facebook launch TOT before:
WaitTime: 3702
WaitTime: 3616
WaitTime: 3616
WaitTime: 3687
WaitTime: 3742
WaitTime: 3767

After optimizations:
WaitTime: 2903
WaitTime: 2953
WaitTime: 2918
WaitTime: 2940
WaitTime: 2879
WaitTime: 2792

LinkInterfaceMethods no longer one of the hottest methods, new list:
4.73% art::ClassLinker::LinkVirtualMethods(art::Thread*, art::Handle<art::mirror::Class>)
3.07% art::DexFile::FindClassDef(char const*) const
2.94% art::mirror::Class::FindDeclaredStaticField(art::mirror::DexCache const*, unsigned int)
2.90% art::DexFile::FindStringId(char const*) const

Bug: 18054905
Bug: 16828525

(cherry picked from commit 1fb463e42cf1d67595cff66d19c0f99e3046f4c4)

Change-Id: I27cc70178fd3655fbe5a3178887fcba189d21321

9 years agoMerge "Add gp initialization to the art_quick_imt_conflict_trampoline() function."
Ian Rogers [Mon, 27 Oct 2014 23:19:03 +0000 (23:19 +0000)]
Merge "Add gp initialization to the art_quick_imt_conflict_trampoline() function."

9 years agoMerge "Extra debug output in run-test."
Ian Rogers [Mon, 27 Oct 2014 23:07:23 +0000 (23:07 +0000)]
Merge "Extra debug output in run-test."

9 years agoAdd gp initialization to the art_quick_imt_conflict_trampoline() function.
Douglas Leung [Mon, 27 Oct 2014 21:44:47 +0000 (14:44 -0700)]
Add gp initialization to the art_quick_imt_conflict_trampoline() function.

The gp register is needed by the "la" instruction.

Change-Id: I4f2dcddba503f403dd6532d0db65ddd7df1f9626

9 years agoExtra debug output in run-test.
Ian Rogers [Mon, 27 Oct 2014 20:48:21 +0000 (13:48 -0700)]
Extra debug output in run-test.

Dump PATH_MAX and NAME_MAX on failure.
Also fix typo in dumping args.

Change-Id: I3df0dbc45db0659c975ac86a12f338df2a7291dc

9 years agoMerge "Rewrite class initialization check elimination."
Vladimir Marko [Mon, 27 Oct 2014 18:10:02 +0000 (18:10 +0000)]
Merge "Rewrite class initialization check elimination."

9 years agoAdd long bitwise not instruction in the optimizing compiler.
Roland Levillain [Fri, 24 Oct 2014 15:20:17 +0000 (16:20 +0100)]
Add long bitwise not instruction in the optimizing compiler.

- Add support for the not-long (long integer one's
  complement negation) instruction in the optimizing
  compiler.
- Add a 64-bit NOT instruction (notq) to the x86-64
  assembler.
- Generate ARM, x86 and x86-64 code for long HNot nodes.
- Gather not-related tests in test/416-optimizing-arith-not.

Change-Id: I2d5b75e9875664d6032d04f8401b2bbb84506948

9 years agoMerge "Support hard float on arm in optimizing compiler."
Nicolas Geoffray [Mon, 27 Oct 2014 17:23:51 +0000 (17:23 +0000)]
Merge "Support hard float on arm in optimizing compiler."

9 years agoSupport hard float on arm in optimizing compiler.
Nicolas Geoffray [Mon, 27 Oct 2014 15:14:55 +0000 (15:14 +0000)]
Support hard float on arm in optimizing compiler.

Also bump oat version, needed after latest hard float switch.

Change-Id: Idf5acfb36c07e74acff00edab998419a3c6b2965

9 years agoMerge "ART: Fix ImageSpace error message."
Andreas Gampe [Mon, 27 Oct 2014 15:34:44 +0000 (15:34 +0000)]
Merge "ART: Fix ImageSpace error message."

9 years agoMerge "ART: Fix leak in bit_vector"
Andreas Gampe [Mon, 27 Oct 2014 15:32:46 +0000 (15:32 +0000)]
Merge "ART: Fix leak in bit_vector"

9 years agoMerge "[native bridge] Add test to verify code_cache existance."
Calin Juravle [Mon, 27 Oct 2014 15:15:50 +0000 (15:15 +0000)]
Merge "[native bridge] Add test to verify code_cache existance."

9 years agoRewrite class initialization check elimination.
Vladimir Marko [Thu, 16 Oct 2014 14:41:48 +0000 (15:41 +0100)]
Rewrite class initialization check elimination.

Split the notion of type being in dex cache away from the
class being initialized. Include static invokes in the class
initialization elimination pass.

Change-Id: Ie3760d8fd55b987f9507f32ef51456a57d79e3fb

9 years agoMerge "Quick: Fix wide Phi detection in GVN, clean up INVOKEs."
Vladimir Marko [Mon, 27 Oct 2014 09:44:31 +0000 (09:44 +0000)]
Merge "Quick: Fix wide Phi detection in GVN, clean up INVOKEs."

9 years agoMerge "Fix the DW_OP_breg* constants."
Elliott Hughes [Sun, 26 Oct 2014 21:31:13 +0000 (21:31 +0000)]
Merge "Fix the DW_OP_breg* constants."

9 years agoFix the DW_OP_breg* constants.
Elliott Hughes [Sun, 26 Oct 2014 04:05:01 +0000 (21:05 -0700)]
Fix the DW_OP_breg* constants.

Change-Id: I33225090a9355cf96796574bee473e2acd2a54d8

9 years agoMerge "Do not use ld instruction for Mips32."
Ian Rogers [Sat, 25 Oct 2014 22:59:09 +0000 (22:59 +0000)]
Merge "Do not use ld instruction for Mips32."

9 years agoART: Fix ImageSpace error message.
Andreas Gampe [Sat, 25 Oct 2014 04:55:52 +0000 (21:55 -0700)]
ART: Fix ImageSpace error message.

Use *error_msg instead of error_msg.

Change-Id: Idabee3e4a66effd9f6346a2640a3038c5448889e

9 years agoART: Fix leak in bit_vector
Andreas Gampe [Sat, 25 Oct 2014 04:32:07 +0000 (21:32 -0700)]
ART: Fix leak in bit_vector

Resizing leaks the original storage. Let the allocator know it's
free.

Bug: 18120044
Change-Id: Ib95a87c3036f36377d64351173f8c04f28855663

9 years agoDo not use ld instruction for Mips32.
Douglas Leung [Wed, 22 Oct 2014 23:32:28 +0000 (16:32 -0700)]
Do not use ld instruction for Mips32.

Change-Id: If577b8011edb583779360934f4e50ff1779e1b70

9 years agoMerge "Tidy logging code not using UNIMPLEMENTED."
Ian Rogers [Sat, 25 Oct 2014 00:14:26 +0000 (00:14 +0000)]
Merge "Tidy logging code not using UNIMPLEMENTED."

9 years agoMerge "ARM: Use hardfp calling convention between java to java call."
Ian Rogers [Fri, 24 Oct 2014 23:28:08 +0000 (23:28 +0000)]
Merge "ARM: Use hardfp calling convention between java to java call."

9 years agoARM: Use hardfp calling convention between java to java call.
Zheng Xu [Thu, 23 Oct 2014 10:29:55 +0000 (18:29 +0800)]
ARM: Use hardfp calling convention between java to java call.

This patch default to use hardfp calling convention. Softfp can be enabled
by setting kArm32QuickCodeUseSoftFloat to true.

We get about -1 ~ +5% performance improvement with different benchmark
tests. Hopefully, we should be able to get more performance by address the left
TODOs, as some part of the code takes the original assumption which is not
optimal.

DONE:
1. Interpreter to quick code
2. Quick code to interpreter
3. Transition assembly and callee-saves
4. Trampoline(generic jni, resolution, invoke with access check and etc.)
5. Pass fp arg reg following aapcs(gpr and stack do not follow aapcs)
6. Quick helper assembly routines to handle ABI differences
7. Quick code method entry
8. Quick code method invocation
9. JNI compiler

TODO:
10. Rework ArgMap, FlushIn, GenDalvikArgs and affected common code.
11. Rework CallRuntimeHelperXXX().

Change-Id: I9965d8a007f4829f2560b63bcbbde271bdcf6ec2

9 years agoMerge "ART: Add div/rem zero check elimination flag"
Ian Rogers [Fri, 24 Oct 2014 22:26:23 +0000 (22:26 +0000)]
Merge "ART: Add div/rem zero check elimination flag"

9 years agoMerge "ART: Prevent float inference back to SSA in-regs."
Ian Rogers [Fri, 24 Oct 2014 21:57:36 +0000 (21:57 +0000)]
Merge "ART: Prevent float inference back to SSA in-regs."

9 years agoART: Prevent float inference back to SSA in-regs.
Stephen Kyle [Thu, 16 Oct 2014 14:02:42 +0000 (15:02 +0100)]
ART: Prevent float inference back to SSA in-regs.

.method public static getInt(I)I
    .registers 2
    const/4 v0, 0x0
    if-ne v0, v0, :after
    float-to-int v0, v0
    :exit
    add-int/2addr v0, v1
    return v0
    :after
    move v1, v0
    goto :exit
.end method

In this code sample, v1 is the single parameter to this method. In one
of the phi-nodes inserted between :exit and add-int/2addr, v1's two
incoming SSA regs are:
  - the initial def of v1 as a parameter
  - the v1 def'd at move v1, v0.
During type inference, because the 2nd def is a float (because of the
earlier float-to-int v0, v0) this will change the type of the 1st def to a
float as well, which is incorrect since the first parameter is known to be
non-float.

This fix checks during phi-node type-inference if an SSA reg that is the
initial def of a parameter vreg is about to be set as float when it was
not previously, and skips the inference if so.

In this case, when using a hard-float ABI, having the in-reg v1 set as
float causes FlushIns() to read the argument to the method from an FP reg,
when the argument will be passed in a core reg by any caller.

Also included is a smali test for this bug: compare difference between
./run-test --64 800
./run-test --64 --interpreter 800
when the vreg_analysis patch has not been applied.
(Requires 64-bit because 32-bit ARM currently does not use hard-float.)

getInt(I)I should return its argument, but it returns an incorrect
value.

Change-Id: I1d4b5be6a931fe853279e89dd820820f29823da1
Signed-off-by: Stephen Kyle <stephen.kyle@arm.com>
9 years agoTidy logging code not using UNIMPLEMENTED.
Ian Rogers [Fri, 24 Oct 2014 21:20:06 +0000 (14:20 -0700)]
Tidy logging code not using UNIMPLEMENTED.

Change-Id: I7a79c1671a6ff8b2040887133b3e0925ef9a3cfe

9 years agoMerge "Code cleanup."
Ian Rogers [Fri, 24 Oct 2014 20:43:21 +0000 (20:43 +0000)]
Merge "Code cleanup."

9 years agoMerge "Add more environment variable to control test granularity."
Nicolas Geoffray [Fri, 24 Oct 2014 15:53:15 +0000 (15:53 +0000)]
Merge "Add more environment variable to control test granularity."

9 years agoAdd more environment variable to control test granularity.
Nicolas Geoffray [Fri, 24 Oct 2014 12:49:08 +0000 (13:49 +0100)]
Add more environment variable to control test granularity.

Change-Id: I7d96b6841db097c51262aa26dba8f331ca7891ff

9 years agoMerge "Fix encoding of imul in x86_64 assembler."
Nicolas Geoffray [Fri, 24 Oct 2014 15:13:16 +0000 (15:13 +0000)]
Merge "Fix encoding of imul in x86_64 assembler."

9 years agoFix encoding of imul in x86_64 assembler.
Nicolas Geoffray [Fri, 24 Oct 2014 14:43:49 +0000 (15:43 +0100)]
Fix encoding of imul in x86_64 assembler.

Change-Id: I5b97f5698ed8ec9d0759d0e1eba8be29119c16c5

9 years ago[native bridge] Add test to verify code_cache existance.
Calin Juravle [Wed, 22 Oct 2014 19:17:58 +0000 (20:17 +0100)]
[native bridge] Add test to verify code_cache existance.

Bug: 18027433
Change-Id: I760acfdc3d109344a0d4fb25ae5d3f067997c547

9 years agoMerge "Make ObjectRegistry::InternalAdd GC safe"
Sebastien Hertz [Fri, 24 Oct 2014 14:22:05 +0000 (14:22 +0000)]
Merge "Make ObjectRegistry::InternalAdd GC safe"

9 years agoMerge "Revert "Revert "Implement long negate instruction in the optimizing compiler."""
Roland Levillain [Fri, 24 Oct 2014 10:48:38 +0000 (10:48 +0000)]
Merge "Revert "Revert "Implement long negate instruction in the optimizing compiler."""

9 years agoMerge "Use test's `-d' option when checking for a directory."
Roland Levillain [Fri, 24 Oct 2014 10:45:47 +0000 (10:45 +0000)]
Merge "Use test's `-d' option when checking for a directory."