OSDN Git Service

android-x86/art.git
9 years agoMerge "Inlining support in optimizing."
Nicolas Geoffray [Mon, 15 Dec 2014 22:59:03 +0000 (22:59 +0000)]
Merge "Inlining support in optimizing."

9 years agoInlining support in optimizing.
Nicolas Geoffray [Mon, 1 Dec 2014 10:31:54 +0000 (10:31 +0000)]
Inlining support in optimizing.

Currently only inlines simple things that don't require an
environment, such as:
- Returning a constant.
- Returning a parameter.
- Returning an arithmetic operation.

Change-Id: Ie844950cb44f69e104774a3cf7a8dea66bc85661

9 years agoMerge "Clean up debugger"
Mathieu Chartier [Mon, 15 Dec 2014 19:56:57 +0000 (19:56 +0000)]
Merge "Clean up debugger"

9 years agoClean up debugger
Mathieu Chartier [Mon, 15 Dec 2014 01:01:31 +0000 (17:01 -0800)]
Clean up debugger

Separated logic for native vs java heap, cleaned up lock annotations.
Added missing end of space marker for bump pointer spaces.

Bug: 18730149

Change-Id: I5bc21f0cee83b9cfa357e8a59658885c12cae09c

9 years agoMerge "ART: Do not inline elf writer debug symbols"
Andreas Gampe [Mon, 15 Dec 2014 18:30:38 +0000 (18:30 +0000)]
Merge "ART: Do not inline elf writer debug symbols"

9 years agoART: Do not inline elf writer debug symbols
Andreas Gampe [Sat, 13 Dec 2014 05:41:29 +0000 (21:41 -0800)]
ART: Do not inline elf writer debug symbols

Using Clang, this pushes the frame size of the caller across our
limit. Thus forbid inlining. The function is only called once per
compile, impact is insignificant.

Bug: 18738594
Change-Id: I19c3f1168a5104ab508a8dbf9f2a8c035cb97e3c

9 years agoMerge "Use WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued."
Mathieu Chartier [Mon, 15 Dec 2014 17:37:59 +0000 (17:37 +0000)]
Merge "Use WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued."

9 years agoMerge "ART: Break up x86 disassembler main function"
Andreas Gampe [Mon, 15 Dec 2014 16:17:27 +0000 (16:17 +0000)]
Merge "ART: Break up x86 disassembler main function"

9 years agoART: Break up x86 disassembler main function
Andreas Gampe [Sat, 13 Dec 2014 02:44:19 +0000 (18:44 -0800)]
ART: Break up x86 disassembler main function

The function leads to large stack frames with Clang. Break out
some parts and use four char* variables for opcode.

Bug: 18733806
Change-Id: I8bf6da6c763175d7081c4231fa5d3b6809316220

9 years agoMerge "ART: Show invalid oat header cause in error message"
Andreas Gampe [Mon, 15 Dec 2014 16:14:53 +0000 (16:14 +0000)]
Merge "ART: Show invalid oat header cause in error message"

9 years agoART: Show invalid oat header cause in error message
Andreas Gampe [Fri, 12 Dec 2014 23:25:14 +0000 (15:25 -0800)]
ART: Show invalid oat header cause in error message

Include the IsValid failure cause in the error message of opening
an oat file.

Make oat magic and version constexpr so we can have static_asserts
over the lengths.

Bug: 17187621
Change-Id: I8cef1c6cc9cb2faa052167a3437e81b4c2cbefa7

9 years agoMerge "Add more compilation stats to optimizing"
Calin Juravle [Mon, 15 Dec 2014 16:05:52 +0000 (16:05 +0000)]
Merge "Add more compilation stats to optimizing"

9 years agoMerge "Save all registers in native to Java stubs."
Nicolas Geoffray [Mon, 15 Dec 2014 15:30:41 +0000 (15:30 +0000)]
Merge "Save all registers in native to Java stubs."

9 years agoUse WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued.
Pavel Vyssotski [Mon, 15 Dec 2014 12:00:17 +0000 (18:00 +0600)]
Use WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued.

The caller may be holding mutator_lock_, so we must use WaitHoldingLocks.
Otherwise we get 'bad_mutexes_held' error with debug build.

See also https://android-review.googlesource.com/#/c/93892.

Change-Id: I87b1119e22a9934fdc622c4c4e2690b8b552b539
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
9 years agoMerge "Disable HomogeneousSpaceCompact for GSS collector"
Hiroshi Yamauchi [Sat, 13 Dec 2014 01:28:36 +0000 (01:28 +0000)]
Merge "Disable HomogeneousSpaceCompact for GSS collector"

9 years agoMerge "Add regression test for deadlock caused by Thread.getAllStackTraces"
Mathieu Chartier [Sat, 13 Dec 2014 00:46:56 +0000 (00:46 +0000)]
Merge "Add regression test for deadlock caused by Thread.getAllStackTraces"

9 years agoAdd regression test for deadlock caused by Thread.getAllStackTraces
Mathieu Chartier [Fri, 12 Dec 2014 21:05:33 +0000 (13:05 -0800)]
Add regression test for deadlock caused by Thread.getAllStackTraces

Also added stress test for Thread.getAllStackTraces. The test calls
Thread.getAllStackTraces from multiple threads to stress race
conditions which can cause deadlocks.

Bug: 18661622

Change-Id: Ideee7073fdcce784414808d08eca9ea310240073

9 years agoMerge "Remove a dependency on AndroidConfig.h."
Elliott Hughes [Fri, 12 Dec 2014 23:50:59 +0000 (23:50 +0000)]
Merge "Remove a dependency on AndroidConfig.h."

9 years agoRemove a dependency on AndroidConfig.h.
Elliott Hughes [Fri, 12 Dec 2014 23:49:56 +0000 (15:49 -0800)]
Remove a dependency on AndroidConfig.h.

Change-Id: I3fad347d49eb51f7a0f6d0ba9223d096a23f74a0

9 years agoMerge "Add ReferenceQueue test"
Mathieu Chartier [Fri, 12 Dec 2014 21:04:39 +0000 (21:04 +0000)]
Merge "Add ReferenceQueue test"

9 years agoAdd ReferenceQueue test
Mathieu Chartier [Fri, 12 Dec 2014 02:43:48 +0000 (18:43 -0800)]
Add ReferenceQueue test

Also cleaned up reference queue.
TODO: Add tests for missing functionality.

Bug: 10808403

Change-Id: I182f9cb69022fe542ea9e53d4c6d35cff90af332

9 years agoMerge "ART: More logging on GetAccessFlags failure"
Andreas Gampe [Fri, 12 Dec 2014 19:14:18 +0000 (19:14 +0000)]
Merge "ART: More logging on GetAccessFlags failure"

9 years agoMerge "Some enhancements on BCE."
Mingyao Yang [Fri, 12 Dec 2014 19:07:41 +0000 (19:07 +0000)]
Merge "Some enhancements on BCE."

9 years agoART: More logging on GetAccessFlags failure
Andreas Gampe [Fri, 12 Dec 2014 19:06:00 +0000 (11:06 -0800)]
ART: More logging on GetAccessFlags failure

Bug: 18732531
Change-Id: I803d0dcd8c5e142b57dbdc40051fecbf71dd351d

9 years agoSome enhancements on BCE.
Mingyao Yang [Fri, 5 Dec 2014 23:56:23 +0000 (15:56 -0800)]
Some enhancements on BCE.

1) Better format detection when creating ValueBound.
2) Some code cleanup on returning bool for overflow_or_underflow.

Change-Id: I03e8bd0d756652da021ccb5b2a62075648d39cc2

9 years agoMerge "Remove portable."
Elliott Hughes [Fri, 12 Dec 2014 18:18:42 +0000 (18:18 +0000)]
Merge "Remove portable."

9 years agoMerge "Remove proxy logic from GetCodeItem"
Mathieu Chartier [Fri, 12 Dec 2014 17:51:59 +0000 (17:51 +0000)]
Merge "Remove proxy logic from GetCodeItem"

9 years agoRemove portable.
Elliott Hughes [Thu, 11 Dec 2014 22:34:28 +0000 (14:34 -0800)]
Remove portable.

Change-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc

9 years agoMerge "ART: Fix DDM client hang transmitting native heap dump with MALLOC_IMPL=dlmalloc"
Sebastien Hertz [Fri, 12 Dec 2014 16:20:32 +0000 (16:20 +0000)]
Merge "ART: Fix DDM client hang transmitting native heap dump with MALLOC_IMPL=dlmalloc"

9 years agoMerge "AArch64: Fix incorrect use of preceding LIR."
Vladimir Marko [Fri, 12 Dec 2014 14:01:10 +0000 (14:01 +0000)]
Merge "AArch64: Fix incorrect use of preceding LIR."

9 years agoDisable HomogeneousSpaceCompact for GSS collector
Lin Zang [Fri, 12 Dec 2014 13:54:47 +0000 (21:54 +0800)]
Disable HomogeneousSpaceCompact for GSS collector

HomogeneousSpaceCompact is not suitable when GSS is forground collector.
This will fix issue that device can not boot with GSS collecor.

Change-Id: Iafdf431c207351571f41bbc9196dff02ba674ab4
Signed-off-by: Lin Zang <lin.zang@intel.com>
9 years agoMerge "Un-break --perf option to the art art script."
Nicolas Geoffray [Fri, 12 Dec 2014 13:54:19 +0000 (13:54 +0000)]
Merge "Un-break --perf option to the art art script."

9 years agoUn-break --perf option to the art art script.
Nicolas Geoffray [Fri, 12 Dec 2014 13:52:00 +0000 (13:52 +0000)]
Un-break --perf option to the art art script.

Change-Id: I5446751982cc33f27aa6785359b3eb3ba969f93e

9 years agoSave all registers in native to Java stubs.
Nicolas Geoffray [Fri, 12 Dec 2014 10:29:38 +0000 (10:29 +0000)]
Save all registers in native to Java stubs.

This will make things more friendly when experimenting with the
number of callee saves in optimizing.

Change-Id: Iefd9a2da329a420eb69fc2fa9e91c06bbda30cdb

9 years agoAArch64: Fix incorrect use of preceding LIR.
Ningsheng Jian [Wed, 10 Dec 2014 07:13:22 +0000 (15:13 +0800)]
AArch64: Fix incorrect use of preceding LIR.

In Cortex-A53 erratum 835769 fixup, we should check the LIR for
previous emitted instruction, skipping pseudo LIRs and other
non-emitting LIRs.

Change-Id: I908f4c638650d7ad9c91112b74095bba2d81612e

9 years agoMerge "Fix alloc-dealloc-mismatch failures in dex2oat."
Dan Albert [Thu, 11 Dec 2014 23:39:59 +0000 (23:39 +0000)]
Merge "Fix alloc-dealloc-mismatch failures in dex2oat."

9 years agoRemove proxy logic from GetCodeItem
Mathieu Chartier [Thu, 11 Dec 2014 21:25:33 +0000 (13:25 -0800)]
Remove proxy logic from GetCodeItem

TODO: Fix places where this doesn't work. Seems maybe in debugger,
etc.

Bug: 17939199
Change-Id: I1dd3c1b071dc37aa1d0a6c187848978588248617

9 years agoFix alloc-dealloc-mismatch failures in dex2oat.
Dan Albert [Thu, 11 Dec 2014 22:09:51 +0000 (14:09 -0800)]
Fix alloc-dealloc-mismatch failures in dex2oat.

These errors are for calling `delete` on something allocated with
`new[]`.

Bug: 18202869
Change-Id: I8032664dd0819740e83a04cd5a0d56e2c097aacf

9 years agoMerge "Increase default allocation stack size"
Mathieu Chartier [Thu, 11 Dec 2014 20:50:47 +0000 (20:50 +0000)]
Merge "Increase default allocation stack size"

9 years agoIncrease default allocation stack size
Mathieu Chartier [Thu, 11 Dec 2014 02:45:30 +0000 (18:45 -0800)]
Increase default allocation stack size

Prevents some GC for alloc which can occur if the allocation stack
overflows.

Bug: 18707404

(cherry picked from commit 4911153db37264de407b2a08c2e4c9bb6aef3545)

Change-Id: I4748485dd495526ab1a313f366d93dbb3ee8112b

9 years agoMerge "Don't use the version script for executables."
Dan Albert [Thu, 11 Dec 2014 19:33:59 +0000 (19:33 +0000)]
Merge "Don't use the version script for executables."

9 years agoMerge "Revert "Revert "Ensure void type is resolved when running without image"""
Andreas Gampe [Thu, 11 Dec 2014 19:25:43 +0000 (19:25 +0000)]
Merge "Revert "Revert "Ensure void type is resolved when running without image"""

9 years agoMerge "Add verifier support for dequickening"
Mathieu Chartier [Thu, 11 Dec 2014 19:19:40 +0000 (19:19 +0000)]
Merge "Add verifier support for dequickening"

9 years agoMerge "ART: More ELF and oat file safety measures"
Andreas Gampe [Thu, 11 Dec 2014 19:16:39 +0000 (19:16 +0000)]
Merge "ART: More ELF and oat file safety measures"

9 years agoAdd verifier support for dequickening
Mathieu Chartier [Wed, 10 Dec 2014 20:06:45 +0000 (12:06 -0800)]
Add verifier support for dequickening

Also some cleanup.

Bug: 17950037

Change-Id: I1f50fe07f1558e9c4f78953b7afa639d7f310b3c

9 years agoART: More ELF and oat file safety measures
Andreas Gampe [Thu, 11 Dec 2014 04:51:45 +0000 (20:51 -0800)]
ART: More ELF and oat file safety measures

In an ELF file, look for a shstrtab section when loading in
program-header-only mode. If the section is outside the file size,
it strongly indicates a broken compile.

When compiling oat files in the class linker, explicitly unlink
on failure. This should catch cases when dex2oat is killed or
crashes and doesn't have a chance to delete its (partial) output.

Bug: 15567083

(cherry picked from commit ad00fed942a9a04cf3f46784bbd04a5f00dd4ab8)

Change-Id: Ia0c75f151d91c6f26a71696967255d6d409ca882

9 years agoMerge "Add another failing test."
Nicolas Geoffray [Thu, 11 Dec 2014 15:35:28 +0000 (15:35 +0000)]
Merge "Add another failing test."

9 years agoAdd another failing test.
Nicolas Geoffray [Thu, 11 Dec 2014 15:34:38 +0000 (15:34 +0000)]
Add another failing test.

Change-Id: I19050efdf57a06d6391be319b96bcf62536dd189

9 years agoMerge "ARM: Combine multiply accumulate operations."
Vladimir Marko [Thu, 11 Dec 2014 14:29:53 +0000 (14:29 +0000)]
Merge "ARM: Combine multiply accumulate operations."

9 years agoMerge "Update expectation file from what is runnin on the bot."
Nicolas Geoffray [Thu, 11 Dec 2014 13:47:54 +0000 (13:47 +0000)]
Merge "Update expectation file from what is runnin on the bot."

9 years agoUpdate expectation file from what is runnin on the bot.
Nicolas Geoffray [Thu, 11 Dec 2014 13:33:12 +0000 (13:33 +0000)]
Update expectation file from what is runnin on the bot.

The bots are runinng a stock L release, and not latest AOSP.

Change-Id: I48f0dcf2570c0d718e4e725cd48c0d7b33cb3627

9 years agoRevert "Revert "Ensure void type is resolved when running without image""
Andreas Gampe [Thu, 11 Dec 2014 00:43:58 +0000 (16:43 -0800)]
Revert "Revert "Ensure void type is resolved when running without image""

Accept the verification status of image classes out of oat files even
when the image could not be loaded. This is necessary as the dex files
might be quickened and the verifier can't work on them when the runtime
is not started.

This reverts commit fe382b5296ef132316d8883a0bdf8cb00d40d16b.

Bug: 18338511
Bug: 18705942
Change-Id: I3516acaaa65f05395c14da0701d1049ba80acb12

9 years agoARM: Combine multiply accumulate operations.
Ningsheng Jian [Tue, 25 Nov 2014 08:48:07 +0000 (16:48 +0800)]
ARM: Combine multiply accumulate operations.

Try to combine integer multiply and add(sub) into a MAC operation.
For AArch64, also try to combine long type multiply and add(sub).

Change-Id: Ic85812e941eb5a66abc355cab81a4dd16de1b66e

9 years agoMerge "ART: Extend run-test 015"
Andreas Gampe [Thu, 11 Dec 2014 00:58:13 +0000 (00:58 +0000)]
Merge "ART: Extend run-test 015"

9 years agoART: Extend run-test 015
Andreas Gampe [Fri, 5 Dec 2014 00:58:36 +0000 (16:58 -0800)]
ART: Extend run-test 015

Add some more tests to 015-switch.

Change-Id: I10bd61d68ce961ae2e2dcf936ed9321014b56d05

9 years agoDon't use the version script for executables.
Dan Albert [Wed, 10 Dec 2014 23:50:45 +0000 (15:50 -0800)]
Don't use the version script for executables.

The version script was forcing all the ASAN symbols to be hidden,
which caused any ASAN instrumented shared libraries used by these
executables (such as libc++) to be unable to find these symbols.

Bug: 18671691
Change-Id: I7839a10041d5f75ce43b59920675b2eff0837606

9 years agoMerge "Revert "Ensure void type is resolved when running without image""
Nicolas Geoffray [Wed, 10 Dec 2014 22:33:21 +0000 (22:33 +0000)]
Merge "Revert "Ensure void type is resolved when running without image""

9 years agoRevert "Ensure void type is resolved when running without image"
Nicolas Geoffray [Wed, 10 Dec 2014 22:32:58 +0000 (22:32 +0000)]
Revert "Ensure void type is resolved when running without image"

Reverting to stop tests breakage.

This reverts commit 3138584a720b86f2f542160425d3a922920760c0.

Change-Id: Idd30d458cef67839416ffeae4d558da2affd29d0

9 years agoMerge "Stop daemon threads in runtime shutdown"
Mathieu Chartier [Wed, 10 Dec 2014 22:22:14 +0000 (22:22 +0000)]
Merge "Stop daemon threads in runtime shutdown"

9 years agoMerge "Ensure void type is resolved when running without image"
Sebastien Hertz [Wed, 10 Dec 2014 20:19:38 +0000 (20:19 +0000)]
Merge "Ensure void type is resolved when running without image"

9 years agoMerge "Add missing iget quick for bool, byte, char, short"
Mathieu Chartier [Wed, 10 Dec 2014 19:52:03 +0000 (19:52 +0000)]
Merge "Add missing iget quick for bool, byte, char, short"

9 years agoAdd missing iget quick for bool, byte, char, short
Mathieu Chartier [Wed, 10 Dec 2014 18:35:44 +0000 (10:35 -0800)]
Add missing iget quick for bool, byte, char, short

Bug: 17791557
Bug: 17671806
Change-Id: Ifac4fbfba6c3a3f97131e85914b24756fb7f9722

9 years agoEnsure void type is resolved when running without image
Sebastien Hertz [Tue, 9 Dec 2014 18:08:15 +0000 (19:08 +0100)]
Ensure void type is resolved when running without image

To initialize java.lang.Void correctly, we need to ensure the 'void'
class is initialized in the dex cache of core-libart (because Java
code relies on it). However, if we run without image, the dex cache
may not contain the void class before we initialize java.lang.Void
class.

This CL fixes this by forcing the resolution of 'void' class when
initializing the runtime without image.

We also generalize that to other types by not skipping verification
when running with preopted oat files without image. By verifying
all classes, we ensure all resolved types are in the dex caches.

Bug: 18338511
(cherry picked from commit cad417c72cc879ae8b6a8b2fff26f05a770f2051)

Change-Id: I65e345da47be6eda1ee55897c01a9a4cc1444915

9 years agoStop daemon threads in runtime shutdown
Mathieu Chartier [Wed, 10 Dec 2014 01:38:52 +0000 (17:38 -0800)]
Stop daemon threads in runtime shutdown

Ensure that daemons are stopped and joins before bringing down the
runtime. This fixes bugs related to native code still running when
we shutdown the runtime.

Also changed the mutex destructor to allow contenders if we are
deleting a monitor lock level mutex.

Bug: 18577101
Change-Id: I6457b35fd69c6997b9003b5f15f39861749843a9

9 years agoMerge "ARM64: Enable Optimizing compiler image generation."
Roland Levillain [Wed, 10 Dec 2014 17:08:37 +0000 (17:08 +0000)]
Merge "ARM64: Enable Optimizing compiler image generation."

9 years agoAdd more compilation stats to optimizing
Calin Juravle [Tue, 9 Dec 2014 18:11:36 +0000 (18:11 +0000)]
Add more compilation stats to optimizing

Optimizing is getting closer to have full coverage and this provides a
nice overview on why certain methods are not compiled/optimized.

Also, clean up some of the builder methods.

Change-Id: Id2f31441a788b797b0efea7ec78bee27bb654186

9 years agoARM64: Enable Optimizing compiler image generation.
Serban Constantinescu [Thu, 4 Dec 2014 18:12:21 +0000 (18:12 +0000)]
ARM64: Enable Optimizing compiler image generation.

Enable Optimizing Compiler image generation for ARM64.

Change-Id: If28426920f8887a3f78cb8c69bc8c1293131b85d
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
9 years agoMerge "Opt compiler: Add arm64 support for register allocation."
Roland Levillain [Wed, 10 Dec 2014 15:52:37 +0000 (15:52 +0000)]
Merge "Opt compiler: Add arm64 support for register allocation."

9 years agoOpt compiler: Add arm64 support for register allocation.
Alexandre Rames [Wed, 10 Dec 2014 10:36:50 +0000 (10:36 +0000)]
Opt compiler: Add arm64 support for register allocation.

Change-Id: Idc6e84eee66170de4a9c0a5844c3da038c083aa7

9 years agoMerge "Ensure stack maps are 4 byte aligned."
Nicolas Geoffray [Wed, 10 Dec 2014 08:41:47 +0000 (08:41 +0000)]
Merge "Ensure stack maps are 4 byte aligned."

9 years agoMerge "Fix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStati...
Brian Carlstrom [Wed, 10 Dec 2014 06:59:33 +0000 (06:59 +0000)]
Merge "Fix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStatic semantics."

9 years agoFix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStatic seman...
Brian Carlstrom [Wed, 10 Dec 2014 04:15:42 +0000 (20:15 -0800)]
Fix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStatic semantics.

Bug: 18485243
Change-Id: I011872446490628b51fb38a353abd1d499cc1290

9 years agoEnsure stack maps are 4 byte aligned.
Nicolas Geoffray [Tue, 9 Dec 2014 14:26:32 +0000 (14:26 +0000)]
Ensure stack maps are 4 byte aligned.

With the recent move to gcc 4.9, we are hitting alignment
SIGBUS on ARM. The reason is that gcc will optimize two consecutive
32bits loads into one 64bits load, and the instruction (ldrd)
will fail if the data is not aligned.

Also removed the emission of mapping table when a method is optimized.
The information can be found in the StackMap itself.

Change-Id: Icf79406c18a3f4db3c05d52fc2c0dd2e35bf0f8f

9 years agoMerge "Support proxy method in StackVisitor::GetThisObject"
Sebastien Hertz [Tue, 9 Dec 2014 13:43:28 +0000 (13:43 +0000)]
Merge "Support proxy method in StackVisitor::GetThisObject"

9 years agoMerge "Revert "Tidy gAborting.""
Nicolas Geoffray [Tue, 9 Dec 2014 13:34:09 +0000 (13:34 +0000)]
Merge "Revert "Tidy gAborting.""

9 years agoRevert "Tidy gAborting."
Nicolas Geoffray [Tue, 9 Dec 2014 13:33:38 +0000 (13:33 +0000)]
Revert "Tidy gAborting."

Creates infinite loop: b/18674776.

This reverts commit 015b137efb434528173779bc3ec8d72494456254.

Change-Id: I67fe310d2e95ee2ec37bec842be06fb1123b6f4e

9 years agoSupport proxy method in StackVisitor::GetThisObject
Sebastien Hertz [Tue, 25 Nov 2014 15:30:53 +0000 (16:30 +0100)]
Support proxy method in StackVisitor::GetThisObject

Adds function artQuickGetProxyThisObject which returns the 'this'
object of the proxy method using the QuickArgumentVisitor. Since
proxy methods have the same layout than the kRefsAndArgs runtime
method and 'this' is the 1st method argument, it is located in the
first GPR.

Bug: 17965861
Change-Id: Ic6ef6c83b9a549c25f9929d5e00ffe1d3a9a36f0

9 years agoMerge "Test now fails on amr64/optimizing after float rem changes."
Nicolas Geoffray [Tue, 9 Dec 2014 11:49:14 +0000 (11:49 +0000)]
Merge "Test now fails on amr64/optimizing after float rem changes."

9 years agoTest now fails on amr64/optimizing after float rem changes.
Nicolas Geoffray [Tue, 9 Dec 2014 11:40:22 +0000 (11:40 +0000)]
Test now fails on amr64/optimizing after float rem changes.

Change-Id: I0b5d7303e3d337b2195c3810069213b1530ab474

9 years agoMerge "Quick: Redefine the notion of back-egdes."
Vladimir Marko [Tue, 9 Dec 2014 11:09:39 +0000 (11:09 +0000)]
Merge "Quick: Redefine the notion of back-egdes."

9 years agoMerge "JDWP: avoid crash on unsupported modifier"
Sebastien Hertz [Tue, 9 Dec 2014 10:42:01 +0000 (10:42 +0000)]
Merge "JDWP: avoid crash on unsupported modifier"

9 years agoJDWP: avoid crash on unsupported modifier
Sebastien Hertz [Fri, 5 Dec 2014 09:52:15 +0000 (10:52 +0100)]
JDWP: avoid crash on unsupported modifier

Returns NOT_IMPLEMENTED error if we receive an event request with an
unsupported modifier.

Bug: https://code.google.com/p/android/issues/detail?id=81037
Bug: 18617787
(cherry picked from commit 0fb33e7b7b0b86fb9c7b556e4a052874ec269bb0)
Change-Id: I97729e2f98af3a75d24604926a89860255d4acae

9 years agoMerge "Explicitly mask constants in shift operations."
Nicolas Geoffray [Tue, 9 Dec 2014 10:19:05 +0000 (10:19 +0000)]
Merge "Explicitly mask constants in shift operations."

9 years agoExplicitly mask constants in shift operations.
Nicolas Geoffray [Mon, 8 Dec 2014 18:00:55 +0000 (18:00 +0000)]
Explicitly mask constants in shift operations.

The assemblers expect an int8, so we mask ahead of calling them.

Change-Id: Id668cda6853fa365ac02531bf7aae288cad20fcd

9 years agoQuick: Redefine the notion of back-egdes.
Vladimir Marko [Thu, 27 Nov 2014 14:52:37 +0000 (14:52 +0000)]
Quick: Redefine the notion of back-egdes.

Redefine a back-edge to really mean an edge to a loop head
instead of comparing instruction offsets. Generate suspend
checks also on fall-through to a loop head; insert an extra
GOTO for these edges.

Add suspend checks to fused cmp instructions.

Rewrite suspend check elimination to track whether there is
an invoke on each path from the loop head to a given back
edge, instead of using domination info to look for a basic
block with invoke that must be on each path. Ignore invokes
to intrinsics and move the optimization to a its own pass.

The new loops in 109-suspend-check should prevent intrinsics
and fused cmp-related regressions.

Bug: 18522004
Change-Id: I96ac818f76ccf9419a6e70e9ec00555f9d487a9e

9 years agoMerge "Fix reference table sorting"
Brian Carlstrom [Tue, 9 Dec 2014 07:02:53 +0000 (07:02 +0000)]
Merge "Fix reference table sorting"

9 years agoFix reference table sorting
Brian Carlstrom [Tue, 9 Dec 2014 00:22:06 +0000 (16:22 -0800)]
Fix reference table sorting

Bug: 18638116

(cherry picked from commit 16abc5f28ac9792fd1ba2c82f123cfd871cddbdb)

Change-Id: I15478306b3c2e2bd4f0a1d4307c001f64c0652af

9 years agoMerge "Make it possible to enable heap poisoning via make variable."
Hiroshi Yamauchi [Tue, 9 Dec 2014 01:25:31 +0000 (01:25 +0000)]
Merge "Make it possible to enable heap poisoning via make variable."

9 years agoMake it possible to enable heap poisoning via make variable.
Hiroshi Yamauchi [Mon, 8 Dec 2014 20:08:46 +0000 (12:08 -0800)]
Make it possible to enable heap poisoning via make variable.

If ART_HEAP_POISONING=true, build with heap poisoning enabled.

Bug: 8367515
Change-Id: I818e86047e6dd99b5bc9920713ef943a65b677e6

9 years agoMerge "Re-add missing read barriers"
Mathieu Chartier [Mon, 8 Dec 2014 21:42:02 +0000 (21:42 +0000)]
Merge "Re-add missing read barriers"

9 years agoRe-add missing read barriers
Mathieu Chartier [Mon, 8 Dec 2014 20:59:27 +0000 (12:59 -0800)]
Re-add missing read barriers

Also added DCHECKS

Change-Id: Ie4c43432479e0e8db197f7a6568a33126e38ccdb

9 years agoMerge "Clean up ReferenceTable::Dump"
Mathieu Chartier [Mon, 8 Dec 2014 20:06:54 +0000 (20:06 +0000)]
Merge "Clean up ReferenceTable::Dump"

9 years agoClean up ReferenceTable::Dump
Mathieu Chartier [Mon, 8 Dec 2014 19:50:36 +0000 (11:50 -0800)]
Clean up ReferenceTable::Dump

Make sure that we never have nulls and cleared weak globals in the
sorted table. Cleaned up comparator.

Bug: 18597401
Change-Id: I5f437dfa29c813e17cdde411175abc927283716d

9 years agoMerge "Quick: Kill unreachable blocks instead of just hiding them."
Vladimir Marko [Mon, 8 Dec 2014 19:03:05 +0000 (19:03 +0000)]
Merge "Quick: Kill unreachable blocks instead of just hiding them."

9 years agoMerge "Re-factor Quick ABI support"
Vladimir Marko [Mon, 8 Dec 2014 18:38:42 +0000 (18:38 +0000)]
Merge "Re-factor Quick ABI support"

9 years agoMerge "[optimizing compiler] Add REM_FLOAT and REM_DOUBLE"
Calin Juravle [Mon, 8 Dec 2014 18:07:32 +0000 (18:07 +0000)]
Merge "[optimizing compiler] Add REM_FLOAT and REM_DOUBLE"

9 years ago[optimizing compiler] Add REM_FLOAT and REM_DOUBLE
Calin Juravle [Mon, 8 Dec 2014 14:24:46 +0000 (14:24 +0000)]
[optimizing compiler] Add REM_FLOAT and REM_DOUBLE

- for arm, x86, x86_64 backends
- reinstated fmod quick entry points for x86. This is a partial revert
of bd3682eada753de52975ae2b4a712bd87dc139a6 which added inline assembly
for floting point rem on x86. Note that Quick still uses the inline
version.
- fix rem tests for longs

Change-Id: I73be19a9f2f2bcf3f718d9ca636e67bdd72b5440

9 years agoQuick: Kill unreachable blocks instead of just hiding them.
Vladimir Marko [Mon, 8 Dec 2014 15:16:54 +0000 (15:16 +0000)]
Quick: Kill unreachable blocks instead of just hiding them.

This changes the block type from kDalvikByteCode to kDead
and properly cleans up predecessors and MIRGraph::catches_.

Bug: 18626174
Change-Id: I268bf68f7947604bcb82caf95ee79c6831ee6e2a

9 years agoMerge "Test has been updated, does not fail anymore."
Nicolas Geoffray [Mon, 8 Dec 2014 14:00:55 +0000 (14:00 +0000)]
Merge "Test has been updated, does not fail anymore."

9 years agoTest has been updated, does not fail anymore.
Nicolas Geoffray [Mon, 8 Dec 2014 14:00:02 +0000 (14:00 +0000)]
Test has been updated, does not fail anymore.

Change-Id: Ie0506d048eb9dd7f356ba29ce8b58f9bec336ea0