OSDN Git Service

android-x86/art.git
9 years agoAdd support for double-to-int & double-to-long in optimizing.
Roland Levillain [Fri, 5 Dec 2014 12:06:01 +0000 (12:06 +0000)]
Add support for double-to-int & double-to-long in optimizing.

- Add support for the double-to-int and double-to-long Dex
  instructions in the optimizing compiler.
- Add S1 to the list of ARM FPU parameter registers so that
  a double value can be passed as parameter during a call
  to the runtime through D0.
- Have art::x86_64::X86_64Assembler::cvttsd2si work with
  64-bit operands.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  double to int and double to long HTypeConversion nodes.
- Add related tests to test/422-type-conversion.

Change-Id: Ic93b9ec6630c26e940f7966a3346ad3fd5a2ab3a

9 years agoMerge "ART: Add PackedSwitch support to the optimizing compiler"
Andreas Gampe [Thu, 4 Dec 2014 17:09:45 +0000 (17:09 +0000)]
Merge "ART: Add PackedSwitch support to the optimizing compiler"

9 years agoART: Add PackedSwitch support to the optimizing compiler
Andreas Gampe [Tue, 25 Nov 2014 07:28:39 +0000 (23:28 -0800)]
ART: Add PackedSwitch support to the optimizing compiler

Add simple packed-switch support through chained IFs.

Now enables compiled versions of 015-switch and 095-switch-MAX_INT.

Change-Id: I17cc8d659d1dd2d64227851c23998c04367e8cf5

9 years agoMerge "Temporary disable the test."
Nicolas Geoffray [Thu, 4 Dec 2014 16:46:27 +0000 (16:46 +0000)]
Merge "Temporary disable the test."

9 years agoTemporary disable the test.
Nicolas Geoffray [Thu, 4 Dec 2014 16:44:58 +0000 (16:44 +0000)]
Temporary disable the test.

Test fails when the boot image is compiled with optimizing. Disabling
while investigating.

Change-Id: I2b665cf79ea2a5edbdbfc4aee3c6b381c837d658

9 years agoMerge "Build core.oat without flags."
Nicolas Geoffray [Thu, 4 Dec 2014 15:11:10 +0000 (15:11 +0000)]
Merge "Build core.oat without flags."

9 years agoBuild core.oat without flags.
Nicolas Geoffray [Thu, 4 Dec 2014 14:39:31 +0000 (14:39 +0000)]
Build core.oat without flags.

Existing tools (like vogar) assume only one boot image, so to test the
boot image compiled with the optimizing compiler, we have to compile
core.oat with it.

Change-Id: I4b55236163333709b05c80eea18778ecd2b58a91

9 years agoMerge "Revert "Rewrite ImageWriter's merging of String char[]s.""
Vladimir Marko [Thu, 4 Dec 2014 12:31:16 +0000 (12:31 +0000)]
Merge "Revert "Rewrite ImageWriter's merging of String char[]s.""

9 years agoMerge "Add support for float-to-double & double-to-float in optimizing."
Roland Levillain [Thu, 4 Dec 2014 12:30:06 +0000 (12:30 +0000)]
Merge "Add support for float-to-double & double-to-float in optimizing."

9 years agoRevert "Rewrite ImageWriter's merging of String char[]s."
Vladimir Marko [Thu, 4 Dec 2014 12:29:32 +0000 (12:29 +0000)]
Revert "Rewrite ImageWriter's merging of String char[]s."

This reverts commit c73743cfd9718a8e1eeb9c9220c182a475935a1c.

Change-Id: Id7ee22ff0ebcd2df0f8c2f4432977dbcd81b0b56

9 years agoAdd support for float-to-double & double-to-float in optimizing.
Roland Levillain [Thu, 4 Dec 2014 12:10:50 +0000 (12:10 +0000)]
Add support for float-to-double & double-to-float in optimizing.

Change-Id: I41b0fee5a28c83757697c8d000b7e224cf5a4534

9 years agoMerge "Add support for float-to-long in the optimizing compiler."
Roland Levillain [Thu, 4 Dec 2014 12:01:55 +0000 (12:01 +0000)]
Merge "Add support for float-to-long in the optimizing compiler."

9 years agoAdd support for float-to-long in the optimizing compiler.
Roland Levillain [Thu, 4 Dec 2014 11:54:28 +0000 (11:54 +0000)]
Add support for float-to-long in the optimizing compiler.

- Add support for the float-to-long Dex instruction in the
  optimizing compiler.
- Add a Dex PC field to art::HTypeConversion to allow the
  x86 and ARM code generators to produce runtime calls.
- Instruct art::CodeGenerator::RecordPcInfo not to record
  PC information for HTypeConversion instructions.
- Add S0 to the list of ARM FPU parameter registers.
- Have art::x86_64::X86_64Assembler::cvttss2si work with
  64-bit operands.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  float to long HTypeConversion nodes.
- Add related tests to test/422-type-conversion.

Change-Id: I954214f0d537187883f83f7a83a1bb2dd8a21fd4

9 years agoMerge "Rewrite ImageWriter's merging of String char[]s."
Vladimir Marko [Thu, 4 Dec 2014 11:31:34 +0000 (11:31 +0000)]
Merge "Rewrite ImageWriter's merging of String char[]s."

9 years agoRewrite ImageWriter's merging of String char[]s.
Vladimir Marko [Wed, 3 Dec 2014 15:28:15 +0000 (15:28 +0000)]
Rewrite ImageWriter's merging of String char[]s.

Simply sort the Strings and then look at two consecutive
Strings to find prefixes and duplicates. Avoid unnecessary
memory allocations.

Change-Id: I996306ed4b31e61f9f0def8f3bcce71eb01c9265

9 years agoMerge "JDWP: fix breakpoint for method in the image"
Sebastien Hertz [Thu, 4 Dec 2014 10:21:02 +0000 (10:21 +0000)]
Merge "JDWP: fix breakpoint for method in the image"

9 years agoMerge "Quick: Use fewer insns for ARM LDR/STR with large offsets."
Vladimir Marko [Thu, 4 Dec 2014 10:12:23 +0000 (10:12 +0000)]
Merge "Quick: Use fewer insns for ARM LDR/STR with large offsets."

9 years agoQuick: Use fewer insns for ARM LDR/STR with large offsets.
Vladimir Marko [Wed, 3 Dec 2014 12:16:56 +0000 (12:16 +0000)]
Quick: Use fewer insns for ARM LDR/STR with large offsets.

LDR with large offset is frequently used for reading from
DexCache arrays, for example for static and direct invokes.
STR with large offset is rarely used but it's updated for
consistency.

Change-Id: I75871416cecbfd7fe7de590922cea0376a2f4019

9 years agoMerge "Call ProcessStrings() in ImageWriter, fix prefix check."
Vladimir Marko [Thu, 4 Dec 2014 10:08:07 +0000 (10:08 +0000)]
Merge "Call ProcessStrings() in ImageWriter, fix prefix check."

9 years agoJDWP: fix breakpoint for method in the image
Sebastien Hertz [Wed, 26 Nov 2014 21:11:27 +0000 (22:11 +0100)]
JDWP: fix breakpoint for method in the image

When we set a breakpoint in a compiled method, we deoptimize it by
changing its entrypoint so it is executed with the interpreter.
However, methods in the image can be called with their direct code
pointer, ignoring the updated entrypoint. In that case, the method
is not executed with the interpreter and we miss the breakpoint.

This CL avoids that situation by forcing a full deoptimization so
everything runs with the interpreter. However, if the image has been
compiled in PIC mode, we keep using selective deoptimization because
direct code pointer is not used in this mode.

Bug: 17965285
Change-Id: Icaf8cbb7fe9ad01d36f7378c59d50d9ce42ae57f

9 years agoMerge "Remove method verification results right after compiling a method"
Mathieu Chartier [Thu, 4 Dec 2014 02:28:28 +0000 (02:28 +0000)]
Merge "Remove method verification results right after compiling a method"

9 years agoRemove method verification results right after compiling a method
Mathieu Chartier [Thu, 4 Dec 2014 01:38:22 +0000 (17:38 -0800)]
Remove method verification results right after compiling a method

This saves memory since it allows the code arrays from methods
compiled in future methods to use the ram we just freed from the
verification results.

GmsCore.apk:
Before: dex2oat took 77.383s (threads: 2) arena alloc=6MB java alloc=30MB native alloc=77MB free=13KB
After:  dex2oat took 72.180s (threads: 2) arena alloc=6MB java alloc=30MB native alloc=60MB free=13KB

Bug: 18596910
Change-Id: I5d6df380e4fe58751a2b304202083f4d30b33b7c
(cherry picked from commit 25fda92083d5b93b38cc1f6b12ac6a44d992d6a4)

9 years agoMerge "ART: Fix unclosed files in dex2oat"
Andreas Gampe [Wed, 3 Dec 2014 23:26:47 +0000 (23:26 +0000)]
Merge "ART: Fix unclosed files in dex2oat"

9 years agoART: Fix unclosed files in dex2oat
Andreas Gampe [Wed, 3 Dec 2014 22:28:02 +0000 (14:28 -0800)]
ART: Fix unclosed files in dex2oat

Under some error conditions files are not closed, and the close guard
will complain.

Bug: 18603475

(cherry picked from commit d97465c3742cc3c82843665f2678b881de29854b)

Change-Id: I7155e3f4f6231844edd375b9302ecf1ba8079950

9 years agoMerge "Don't re-use arttest when calling loadLibrary."
Nicolas Geoffray [Wed, 3 Dec 2014 18:24:18 +0000 (18:24 +0000)]
Merge "Don't re-use arttest when calling loadLibrary."

9 years agoDon't re-use arttest when calling loadLibrary.
Nicolas Geoffray [Wed, 3 Dec 2014 18:10:39 +0000 (18:10 +0000)]
Don't re-use arttest when calling loadLibrary.

When Android's build environment variables are set with envsetup.sh,
the test "works" ok, by getting a LinkageError because two class loaders
try to load the same library. I guess that is the reason for the
if (ExceptionCheck()) after the loading.

However, if the environment variables are set manually, there are
cases where the paths provided between a Java loadLibrary, and a
native loadLibrary are different, so we end up loading the library twice.
This makes the assertion line 32 fail on the second JNI_OnLoad call.
In my particular environment, ANDROID_BUILD_TOP was something lie
/foo/bar/..//.

This change stops re-using the same library, and makes the expected
outcome constant: the native call of loadLibrary with a non exist
library must throw a LinkageError.

Change-Id: I8721a03715e099c55fb8b2b87813f1e772c8e83d

9 years agoMerge "Fix VM-less builds."
David 'Digit' Turner [Wed, 3 Dec 2014 17:59:13 +0000 (17:59 +0000)]
Merge "Fix VM-less builds."

9 years agoCall ProcessStrings() in ImageWriter, fix prefix check.
Vladimir Marko [Wed, 3 Dec 2014 14:35:54 +0000 (14:35 +0000)]
Call ProcessStrings() in ImageWriter, fix prefix check.

ProcessStrings was missing due to bad conflict resolution
in cherry-pick
    https://android-review.googlesource.com/114971

The prefix check was broken by the "cherry-pick"
    https://android-review.googlesource.com/115445
where in addition to a simple cherry-pick, an additional
comment was addressed and an error slipped in.

Change-Id: I130d1d1a2995fd4a4c27c918c2a0dc38724ce68f

9 years agoMerge "Implement InexpensiveConstantInt(., opcode) for ARM."
Vladimir Marko [Wed, 3 Dec 2014 17:13:44 +0000 (17:13 +0000)]
Merge "Implement InexpensiveConstantInt(., opcode) for ARM."

9 years agoMerge "Add support for float-to-int in the optimizing compiler."
Roland Levillain [Wed, 3 Dec 2014 16:04:28 +0000 (16:04 +0000)]
Merge "Add support for float-to-int in the optimizing compiler."

9 years agoMerge "Fix a compiler bug related to a catch-less try-finally statement."
Roland Levillain [Wed, 3 Dec 2014 14:52:52 +0000 (14:52 +0000)]
Merge "Fix a compiler bug related to a catch-less try-finally statement."

9 years agoMerge "Explicitly give compiler options to test scripts"
Nicolas Geoffray [Wed, 3 Dec 2014 14:02:39 +0000 (14:02 +0000)]
Merge "Explicitly give compiler options to test scripts"

9 years agoExplicitly give compiler options to test scripts
Nicolas Geoffray [Wed, 3 Dec 2014 13:36:10 +0000 (13:36 +0000)]
Explicitly give compiler options to test scripts

This makes tests pass when ART_USE_OPTIMIZING_COMPILER=true.

Change-Id: I579c0371033435ead6b06830f15c00dbf7e98005

9 years agoImplement InexpensiveConstantInt(., opcode) for ARM.
Vladimir Marko [Tue, 25 Nov 2014 16:32:34 +0000 (16:32 +0000)]
Implement InexpensiveConstantInt(., opcode) for ARM.

Fix kThumb2{Add,Sub}RRI12 to be used for their full range.
Add ORN for completeness.

Change-Id: I49a51541fa9ea085d4674b9131d8dd94da5337f3

9 years agoAdd support for float-to-int in the optimizing compiler.
Roland Levillain [Tue, 2 Dec 2014 17:45:01 +0000 (17:45 +0000)]
Add support for float-to-int in the optimizing compiler.

- Add support for the float-to-int Dex instruction in the
  optimizing compiler.
- Factor type conversion related lines in
  compiler/optimizing/builder.cc.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  float to int HTypeConversion nodes.
- Add related tests to test/422-type-conversion.

Change-Id: I2382dfc04bf394ed75f675148cfcf98216d65bc6

9 years agoFix a compiler bug related to a catch-less try-finally statement.
Roland Levillain [Tue, 2 Dec 2014 17:16:31 +0000 (17:16 +0000)]
Fix a compiler bug related to a catch-less try-finally statement.

Ensure a dead basic block produced in this case is properly
removed.

Change-Id: I7c88e26aaa6c6378892f7c7c299494fa42312db2

9 years agoMerge "Fix new-instance node."
Calin Juravle [Wed, 3 Dec 2014 11:48:51 +0000 (11:48 +0000)]
Merge "Fix new-instance node."

9 years agoMerge "Update libcore script and add a new expectation file."
Nicolas Geoffray [Wed, 3 Dec 2014 11:48:08 +0000 (11:48 +0000)]
Merge "Update libcore script and add a new expectation file."

9 years agoUpdate libcore script and add a new expectation file.
Nicolas Geoffray [Wed, 3 Dec 2014 11:30:26 +0000 (11:30 +0000)]
Update libcore script and add a new expectation file.

Change-Id: I3ff7784d4b43615f1d70a62c6b8595870f0afe4c

9 years agoFix VM-less builds.
David 'Digit' Turner [Tue, 2 Dec 2014 12:28:21 +0000 (13:28 +0100)]
Fix VM-less builds.

This patch modifies Android.common_build.mk to avoid breaking the build
when trying to generate a system image that doesn't include a VM (which
is useful for low-level emulator feature testing, not general Android
development).

BUG=18581643

Change-Id: Ib75ebf14d3e9c8fc2ac591c7edd2ab4d6ff2ca89

9 years agoMerge "Fix mac build"
Mathieu Chartier [Wed, 3 Dec 2014 02:44:46 +0000 (02:44 +0000)]
Merge "Fix mac build"

9 years agoFix mac build
Mathieu Chartier [Wed, 3 Dec 2014 02:23:21 +0000 (18:23 -0800)]
Fix mac build

Macs don't have malloc.h, hopefully this fixes the build.

(cherry picked from commit 6cc5076a1248582cf16bd9a6a1719e0a4c1a1de2)

Change-Id: I94d10d2c3d16893625df210bdd5587eea4a1247f

9 years agoMerge "Remove MethodHelper."
Ian Rogers [Wed, 3 Dec 2014 02:03:08 +0000 (02:03 +0000)]
Merge "Remove MethodHelper."

9 years agoRemove MethodHelper.
Ian Rogers [Wed, 3 Dec 2014 01:49:19 +0000 (17:49 -0800)]
Remove MethodHelper.

Move use as a shorty processor to only use in portable.
Move GetNumberOfReferenceArgsWithoutReceiver to mirror::ArtMethod.

Change-Id: I7ded3d05315c84bce4ab19cb330ef74289da4bb3

9 years agoMerge "Remove MethodHelper::HasSameSignatureWithDifferentClassLoaders."
Ian Rogers [Wed, 3 Dec 2014 01:32:33 +0000 (01:32 +0000)]
Merge "Remove MethodHelper::HasSameSignatureWithDifferentClassLoaders."

9 years agoMerge "Print memory usage in dex2oat shutdown"
Mathieu Chartier [Wed, 3 Dec 2014 01:31:39 +0000 (01:31 +0000)]
Merge "Print memory usage in dex2oat shutdown"

9 years agoRemove MethodHelper::HasSameSignatureWithDifferentClassLoaders.
Ian Rogers [Wed, 3 Dec 2014 01:22:02 +0000 (17:22 -0800)]
Remove MethodHelper::HasSameSignatureWithDifferentClassLoaders.

Move sole use to a static function within class_linker.cc.
Remove unused MutableMethodHelper and empty method_helper.cc.

Change-Id: Ia26bc76674ed2ee7c9c546de820cc181005fed77

9 years agoPrint memory usage in dex2oat shutdown
Mathieu Chartier [Tue, 2 Dec 2014 23:43:48 +0000 (15:43 -0800)]
Print memory usage in dex2oat shutdown

Example on mako:
I/dex2oat (31071): dex2oat took 31.195s (threads: 2) arena alloc=1013KB java alloc=13MB native alloc=32MB free=1490KB

Bug: 18069309

Change-Id: I08eac00842be35d4e659bddc8513f2062be725c9

(cherry picked from commit 3029df6d212894647ba0e5c23443c40912c6ecc8)

9 years agoMerge "Fix artQuickResolutionTrampoline."
Ian Rogers [Wed, 3 Dec 2014 00:58:52 +0000 (00:58 +0000)]
Merge "Fix artQuickResolutionTrampoline."

9 years agoFix artQuickResolutionTrampoline.
Ian Rogers [Wed, 3 Dec 2014 00:55:46 +0000 (16:55 -0800)]
Fix artQuickResolutionTrampoline.

Mistakenly updating dex method index of the non-receiver method.

Change-Id: I42296e344a53e001bf37414852cd9f23f629ca40

9 years agoMerge "Remove MethodHelper::HasSameNameAndSignature."
Ian Rogers [Wed, 3 Dec 2014 00:55:27 +0000 (00:55 +0000)]
Merge "Remove MethodHelper::HasSameNameAndSignature."

9 years agoRemove MethodHelper::HasSameNameAndSignature.
Ian Rogers [Wed, 3 Dec 2014 00:17:08 +0000 (16:17 -0800)]
Remove MethodHelper::HasSameNameAndSignature.

Move sole use to a static method with art_method.cc.

Change-Id: I2e7994cc1c31b5ca74df5d7be5538003d4ed0150

9 years agoMerge "Move GetClassFromTypeIdx to ArtMethod."
Ian Rogers [Wed, 3 Dec 2014 00:04:43 +0000 (00:04 +0000)]
Merge "Move GetClassFromTypeIdx to ArtMethod."

9 years agoMove GetClassFromTypeIdx to ArtMethod.
Ian Rogers [Tue, 2 Dec 2014 23:48:04 +0000 (15:48 -0800)]
Move GetClassFromTypeIdx to ArtMethod.

Move GetClassFromTypeIdx out of MethodHelper into ArtMethod in
preparation for the removal of MethodHelper.

Change-Id: I9c03dd8c821944c606ea08cdf92afc80c4275247

9 years agoMerge "Remove FieldHelper."
Ian Rogers [Tue, 2 Dec 2014 23:19:26 +0000 (23:19 +0000)]
Merge "Remove FieldHelper."

9 years agoMerge "Don't force color diagnostics."
Dan Albert [Tue, 2 Dec 2014 23:18:30 +0000 (23:18 +0000)]
Merge "Don't force color diagnostics."

9 years agoRemove FieldHelper.
Ian Rogers [Tue, 2 Dec 2014 23:04:37 +0000 (15:04 -0800)]
Remove FieldHelper.

Change-Id: I2d74e2d5b3c35a691c95339de0db9361847fca11

9 years agoDon't force color diagnostics.
Dan Albert [Tue, 2 Dec 2014 22:58:06 +0000 (14:58 -0800)]
Don't force color diagnostics.

Clang does this automatically for you now, and forcing it causes ugly
(and difficult to parse) error diagnostics for non-color terminals.

Change-Id: I5ceb673ad50ad99cb78c733d18ac7dbfe8f978d3

9 years agoMerge "ART: Build fix."
Andreas Gampe [Tue, 2 Dec 2014 22:41:42 +0000 (22:41 +0000)]
Merge "ART: Build fix."

9 years agoART: Build fix.
Andreas Gampe [Tue, 2 Dec 2014 22:39:52 +0000 (14:39 -0800)]
ART: Build fix.

Fix closure.

Change-Id: I6ab68f2e3fb210c3b644affe3410c67a28df3d8e

9 years agoMerge "Move FindDexMethodIndexInOtherDexFile into ArtMethod."
Ian Rogers [Tue, 2 Dec 2014 22:22:49 +0000 (22:22 +0000)]
Merge "Move FindDexMethodIndexInOtherDexFile into ArtMethod."

9 years agoMove FindDexMethodIndexInOtherDexFile into ArtMethod.
Ian Rogers [Tue, 2 Dec 2014 22:10:53 +0000 (14:10 -0800)]
Move FindDexMethodIndexInOtherDexFile into ArtMethod.

Move FindDexMethodIndexInOtherDexFile out of MethodHelper into ArtMethod in
preparation for the removal of MethodHelper.
Tidy ClassLinker::ResolveMethod so that all exception paths flow through the
exception pending assertion.
Tidy artQuickResolutionTrampoline to be more explicit about variable names and
only update the dex cache if necessary.

Change-Id: I3e48eb4f6c1291533067c1b53efe90c53bfcaea8

9 years agoMerge "ART: Change boot image class update"
Andreas Gampe [Tue, 2 Dec 2014 22:16:51 +0000 (22:16 +0000)]
Merge "ART: Change boot image class update"

9 years agoFix new-instance node.
Calin Juravle [Tue, 2 Dec 2014 18:58:03 +0000 (18:58 +0000)]
Fix new-instance node.

new-instance may throw when called on:
- interfaces
- abstract/innaccessible/unknown classes

Change-Id: Id55dbb95b906a58c946b14adad934ee0e3498c0a

9 years agoMerge "ART: Add some thread abort logging"
Andreas Gampe [Tue, 2 Dec 2014 19:25:48 +0000 (19:25 +0000)]
Merge "ART: Add some thread abort logging"

9 years agoMerge "ART: Print initialization failures to file"
Andreas Gampe [Tue, 2 Dec 2014 19:25:07 +0000 (19:25 +0000)]
Merge "ART: Print initialization failures to file"

9 years agoMerge "Remove MethodHelper from the interpreter."
Ian Rogers [Tue, 2 Dec 2014 19:24:06 +0000 (19:24 +0000)]
Merge "Remove MethodHelper from the interpreter."

9 years agoRemove MethodHelper from the interpreter.
Ian Rogers [Tue, 2 Dec 2014 19:13:19 +0000 (11:13 -0800)]
Remove MethodHelper from the interpreter.

Use ShadowFrame to get the executing method to avoid a handle for the current
method.
Various associated bits of header file clean-up and removal of an unnecessary
use of MethodHelper in CompilerDriver.

Change-Id: I3b6f4413701e8fc6b0c58b0041a0dd15472bedaa

9 years agoMerge "Add a way to pass GDB commands"
Mathieu Chartier [Tue, 2 Dec 2014 19:09:49 +0000 (19:09 +0000)]
Merge "Add a way to pass GDB commands"

9 years agoAdd a way to pass GDB commands
Mathieu Chartier [Fri, 17 Oct 2014 22:58:01 +0000 (15:58 -0700)]
Add a way to pass GDB commands

Passing --gdb-arg to run-test sends the arg to GDB, example:
test/run-test --host --gdb --gdb-arg "--command=command.txt" 001-HelloWorld
Would run the test with the GDB script at command.txt on the host, this is
useful for running tests in GDB in a loop.

Bug: 17387969

Change-Id: I5ad455159a6d92783eacb17eecbb0f1e670cb4a3

9 years agoMerge "ART: Avoid a recursive abort"
Andreas Gampe [Tue, 2 Dec 2014 18:29:34 +0000 (18:29 +0000)]
Merge "ART: Avoid a recursive abort"

9 years agoMerge "Fix OOM throwing if it happens in finalizer reference (take 2)"
Nicolas Geoffray [Tue, 2 Dec 2014 14:59:43 +0000 (14:59 +0000)]
Merge "Fix OOM throwing if it happens in finalizer reference (take 2)"

9 years agoFix OOM throwing if it happens in finalizer reference (take 2)
Pavel Vyssotski [Tue, 2 Dec 2014 13:54:50 +0000 (19:54 +0600)]
Fix OOM throwing if it happens in finalizer reference (take 2)

The Class::Alloc should return null if OOM happened during
adding finalizer reference, even if finalizable object is
allocated succesfully.

Added new more reliable test.

Change-Id: Id5fed3bdb16297d6d3a2b14ce62cc305aa703d60
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
9 years agoMerge "[optimizing compiler] Fix invoke-direct"
Calin Juravle [Tue, 2 Dec 2014 14:52:39 +0000 (14:52 +0000)]
Merge "[optimizing compiler] Fix invoke-direct"

9 years agoMerge "Add a branch to ensure the test is compiled."
Nicolas Geoffray [Tue, 2 Dec 2014 13:52:01 +0000 (13:52 +0000)]
Merge "Add a branch to ensure the test is compiled."

9 years agoAdd a branch to ensure the test is compiled.
Nicolas Geoffray [Tue, 2 Dec 2014 13:48:19 +0000 (13:48 +0000)]
Add a branch to ensure the test is compiled.

The compiler will now not compile large methods with no branch.

Change-Id: Iaea284c648f7f3f754cb8ec721ad2ecffbd2f6af

9 years agoMerge "Add some heursitics for compiling, close to Quick's."
Nicolas Geoffray [Tue, 2 Dec 2014 12:41:26 +0000 (12:41 +0000)]
Merge "Add some heursitics for compiling, close to Quick's."

9 years agoMerge "Treat SSA transformation special, as we may have to bailout."
Nicolas Geoffray [Tue, 2 Dec 2014 12:28:11 +0000 (12:28 +0000)]
Merge "Treat SSA transformation special, as we may have to bailout."

9 years agoTreat SSA transformation special, as we may have to bailout.
Nicolas Geoffray [Tue, 2 Dec 2014 11:51:19 +0000 (11:51 +0000)]
Treat SSA transformation special, as we may have to bailout.

We forgot to bailout when we found a non-natural loop (on which
our optimizations don't work).

Change-Id: I11976b5af4c98f4f29267a74c74d34b5ad81e20c

9 years ago[optimizing compiler] Fix invoke-direct
Calin Juravle [Tue, 2 Dec 2014 11:42:34 +0000 (11:42 +0000)]
[optimizing compiler] Fix invoke-direct

Always compute invoke info via compiler driver. This ensures that the
method is not called directly if its access cannot be verified.

Change-Id: I04b35563a1148bc5cb16b37324419e2a977ec8db

9 years agoMerge "Don't run optimizations after baseline."
Nicolas Geoffray [Tue, 2 Dec 2014 12:13:34 +0000 (12:13 +0000)]
Merge "Don't run optimizations after baseline."

9 years agoAdd some heursitics for compiling, close to Quick's.
Nicolas Geoffray [Tue, 2 Dec 2014 10:19:51 +0000 (10:19 +0000)]
Add some heursitics for compiling, close to Quick's.

Quick has more machinery to give up/not give up, but we can
backport them later.

Change-Id: I5eb62c664246f4ce46f0400cf24ec34a72afb51e

9 years agoMerge "Fix fault handler invoked before vm running."
Christopher Ferris [Tue, 2 Dec 2014 03:10:22 +0000 (03:10 +0000)]
Merge "Fix fault handler invoked before vm running."

9 years agoMerge "Try normal allocation if large object allocation fails"
Mathieu Chartier [Tue, 2 Dec 2014 01:08:02 +0000 (01:08 +0000)]
Merge "Try normal allocation if large object allocation fails"

9 years agoTry normal allocation if large object allocation fails
Mathieu Chartier [Mon, 1 Dec 2014 23:00:27 +0000 (15:00 -0800)]
Try normal allocation if large object allocation fails

If a large object allocation fails, we now try the normal allocators.

Bug: 18124612

(cherry picked from commit f1c4d0e3a27e9b39916750147ecdea1418fcc231)

Change-Id: Ib83ebe53fbdd83aa2d23fd10a8bb10e149f8918f

9 years agoMerge "Fix growth limit / footprint limit problems"
Mathieu Chartier [Tue, 2 Dec 2014 00:53:40 +0000 (00:53 +0000)]
Merge "Fix growth limit / footprint limit problems"

9 years agoFix growth limit / footprint limit problems
Mathieu Chartier [Mon, 1 Dec 2014 21:40:48 +0000 (13:40 -0800)]
Fix growth limit / footprint limit problems

We now properly clear the growth limit of all the spaces when
ClearGrowthLimit is called. Previously we didn't clear the growth
limit of the background space.

This wasn't caught by heap test since it only manifested itself
when we had a zygote space.

Bug: 18504942

(cherry picked from commit d59c170057dcc213a858652abc71eec710898a41)

Change-Id: I6e4394b9c9f7f22aabc5f5955adb8dd4511c2617

9 years agoMerge "Set dex_cache_strings_ when we call Class::SetDexCache"
Mathieu Chartier [Mon, 1 Dec 2014 22:32:35 +0000 (22:32 +0000)]
Merge "Set dex_cache_strings_ when we call Class::SetDexCache"

9 years agoDon't run optimizations after baseline.
Nicolas Geoffray [Mon, 1 Dec 2014 22:09:43 +0000 (22:09 +0000)]
Don't run optimizations after baseline.

We have enough coverage now. This was also motivated
by having to call RunOptimizations instead, which does invoke
InstructionSimplifier, required by the code generators (for, e.g.
removing useless HTypeConversion nodes).

Change-Id: I4e616dae771b8ced60e1f418e3da834f44edb717

9 years agoSet dex_cache_strings_ when we call Class::SetDexCache
Mathieu Chartier [Mon, 1 Dec 2014 18:31:15 +0000 (10:31 -0800)]
Set dex_cache_strings_ when we call Class::SetDexCache

Ensures that these two variables never get out of sync. The error
was presumably related to not doing this for proxy classes. This
caused java code which was looking at the dex_cache_strings_ field
to incorrectly access a null array.

Bug: 18548887

(cherry picked from commit ea1c3d77b92b30ec527f2ca5bfe316a882b698e0)

Change-Id: I022d9311b38b61e160ed70e3c5d9639797adb29c

9 years agoMerge "ART: x86 specific clearing higher bits when converting long to int"
Bill Buzbee [Mon, 1 Dec 2014 19:10:14 +0000 (19:10 +0000)]
Merge "ART: x86 specific clearing higher bits when converting long to int"

9 years agoMerge "Quick: Fix neg-long on ARM for overlapping regs."
Vladimir Marko [Mon, 1 Dec 2014 19:04:28 +0000 (19:04 +0000)]
Merge "Quick: Fix neg-long on ARM for overlapping regs."

9 years agoMerge "Refactor handling of conditional branches with known result."
Vladimir Marko [Mon, 1 Dec 2014 17:57:04 +0000 (17:57 +0000)]
Merge "Refactor handling of conditional branches with known result."

9 years agoMerge "Quick: Use 16-bit conditional branch in Thumb2."
Vladimir Marko [Mon, 1 Dec 2014 17:56:41 +0000 (17:56 +0000)]
Merge "Quick: Use 16-bit conditional branch in Thumb2."

9 years agoMerge "Quick: Use 16-bit Thumb2 PUSH/POP when possible."
Vladimir Marko [Mon, 1 Dec 2014 17:56:27 +0000 (17:56 +0000)]
Merge "Quick: Use 16-bit Thumb2 PUSH/POP when possible."

9 years agoQuick: Fix neg-long on ARM for overlapping regs.
Vladimir Marko [Mon, 1 Dec 2014 16:48:48 +0000 (16:48 +0000)]
Quick: Fix neg-long on ARM for overlapping regs.

Bug: 18569347
Change-Id: I764a4648b7ea5fd92f1ffbb9038b9d101b50d137

9 years agoMerge "Remove type conversion nodes converting to the same type."
Nicolas Geoffray [Mon, 1 Dec 2014 14:52:01 +0000 (14:52 +0000)]
Merge "Remove type conversion nodes converting to the same type."

9 years agoRemove type conversion nodes converting to the same type.
Nicolas Geoffray [Mon, 1 Dec 2014 14:16:20 +0000 (14:16 +0000)]
Remove type conversion nodes converting to the same type.

When optimizing, we ensure these conversions do not reach the
code generators. When not optimizing, we cannot get such situations.

Change-Id: I717247c957667675dc261183019c88efa3a38452

9 years agoMerge "Opt Compiler: Arm64: Add support for more IRs plus various fixes."
Nicolas Geoffray [Mon, 1 Dec 2014 12:29:09 +0000 (12:29 +0000)]
Merge "Opt Compiler: Arm64: Add support for more IRs plus various fixes."

9 years agoMerge "Vixl: Update the VIXL interface to VIXL 1.7 and enable VIXL debug."
Nicolas Geoffray [Mon, 1 Dec 2014 12:28:51 +0000 (12:28 +0000)]
Merge "Vixl: Update the VIXL interface to VIXL 1.7 and enable VIXL debug."