OSDN Git Service

android-x86/art.git
8 years agoAdd immune spaces abstraction
Mathieu Chartier [Tue, 17 Nov 2015 00:05:55 +0000 (16:05 -0800)]
Add immune spaces abstraction

ImmuneSpaces is a set of spaces which are not reclaimable by the GC in
the current collection. This set of spaces does not have requirements
about space adjacency like the old ImmuneRegion. ImmuneSpaces generates
the largest immune region for the GC. Since there is no requirement on
adjacency, it is possible to have multiple non-adjacent applicaton
image files.

For image spaces, we also look at the oat code which is normally after
the application image. In this case, we add the code as part of the
immune region. This is required to have both the boot image and the
zygote space be in the same immune region (for performance reasons).

Bug: 22858531

Change-Id: I5103b31c0e39ad63c594f5557fc848a3b288b43e

8 years agoMerge "Fix an assert in lse."
Mingyao Yang [Wed, 18 Nov 2015 23:33:40 +0000 (23:33 +0000)]
Merge "Fix an assert in lse."

8 years agoFix an assert in lse.
Mingyao Yang [Wed, 18 Nov 2015 23:20:37 +0000 (15:20 -0800)]
Fix an assert in lse.

Wrong assert. Just deleted it.

Change-Id: I6f051609d87b2c6da081ee63f783ce99462f8a09

8 years agoMerge "Revert "Revert "Enable store elimination for singleton objects."""
Mingyao Yang [Wed, 18 Nov 2015 21:29:47 +0000 (21:29 +0000)]
Merge "Revert "Revert "Enable store elimination for singleton objects."""

8 years agoRevert "Revert "Enable store elimination for singleton objects.""
Mingyao Yang [Mon, 2 Nov 2015 18:56:59 +0000 (10:56 -0800)]
Revert "Revert "Enable store elimination for singleton objects.""

This reverts commit 55d02cf056f993aeafebd54e7b7c68c7a48507c9, and
makes the following change:
Currently we leverage loop side effects to decide whether heap values are
killed by the loop. Stores need to be kept if heap values may be killed
by loops and the corresponding loads cannot be eliminated. Similar thing
need to be done for each predecessor when we merge predecessor heap values.
To do that, the HInstanceFieldSet instruction itself is put in the heap
value array instead of the value of the store instruction. The store
instruction may be added to possibly_removed_stores_ first, but can later
be removed from possibly_removed_stores_ when it's found out that the store
needs to be kept due to merging/loop side effects.

Change-Id: I4f7bb1960f7b47240873e00ff1adac46fc102a02

8 years agoMerge "Remove incorrect iterator increment"
Mathieu Chartier [Wed, 18 Nov 2015 20:06:43 +0000 (20:06 +0000)]
Merge "Remove incorrect iterator increment"

8 years agoRemove incorrect iterator increment
Mathieu Chartier [Wed, 18 Nov 2015 18:24:43 +0000 (10:24 -0800)]
Remove incorrect iterator increment

Erase already goes to the next element.

Bug: 25738102
Change-Id: Iea31a7fb27ce9f810acf019a7b59dda7704b8f26

8 years agoMerge "Opt compiler: Arm64 packed-switch jump tables."
Vladimir Marko [Wed, 18 Nov 2015 17:09:04 +0000 (17:09 +0000)]
Merge "Opt compiler: Arm64 packed-switch jump tables."

8 years agoOpt compiler: Arm64 packed-switch jump tables.
Zheng Xu [Wed, 18 Nov 2015 09:46:25 +0000 (17:46 +0800)]
Opt compiler: Arm64 packed-switch jump tables.

In this patch, we set a rough threshold and only generate jump table
with limited number of HIRs in the graph. This is because current VIXL
can only handle Adr with label in the range of +/-1Mb.

Change-Id: I42bff2095ec26caeacc5efc90afebe34e229b518

8 years agoMerge "Fix bogus DCHECK and rename DidForkFromZygote."
Nicolas Geoffray [Wed, 18 Nov 2015 10:56:51 +0000 (10:56 +0000)]
Merge "Fix bogus DCHECK and rename DidForkFromZygote."

8 years agoFix bogus DCHECK and rename DidForkFromZygote.
Nicolas Geoffray [Tue, 17 Nov 2015 13:50:21 +0000 (13:50 +0000)]
Fix bogus DCHECK and rename DidForkFromZygote.

The method can also be called for non-zygote forked processes.

(cherry picked from commit 9d157e48e0abc48f08fd98e4c5e918d029c1b84c)

Change-Id: Id4f57b77c1a7f802f80e066afcf30afecc198bfc

8 years agoMerge "Remove DEBUG_JIT from Zygote flags."
Nicolas Geoffray [Wed, 18 Nov 2015 10:47:50 +0000 (10:47 +0000)]
Merge "Remove DEBUG_JIT from Zygote flags."

8 years agoMerge "Implement common super type in reference type propagation."
Calin Juravle [Wed, 18 Nov 2015 10:41:41 +0000 (10:41 +0000)]
Merge "Implement common super type in reference type propagation."

8 years agoMerge "Support deoptimization only to set vreg"
Sebastien Hertz [Wed, 18 Nov 2015 10:29:22 +0000 (10:29 +0000)]
Merge "Support deoptimization only to set vreg"

8 years agoMerge "Fix StackVisitor::GetVReg for reference in shadow frame"
Sebastien Hertz [Wed, 18 Nov 2015 10:17:46 +0000 (10:17 +0000)]
Merge "Fix StackVisitor::GetVReg for reference in shadow frame"

8 years agoRemove DEBUG_JIT from Zygote flags.
Nicolas Geoffray [Thu, 5 Nov 2015 11:32:24 +0000 (11:32 +0000)]
Remove DEBUG_JIT from Zygote flags.

The flag is being obsolete by the move to JIT.

(cherry picked from commit 0f042e04efba887557e40f981bd9c41b121c4652)

Change-Id: I32c3183e791690964c00fab02a6ee7bbacf6b665

8 years agoMerge "RosAlloc fast path inline in assembly for x86 32bit."
Hiroshi Yamauchi [Tue, 17 Nov 2015 21:53:34 +0000 (21:53 +0000)]
Merge "RosAlloc fast path inline in assembly for x86 32bit."

8 years agoMerge "Refactor some patching logic"
Mathieu Chartier [Tue, 17 Nov 2015 20:10:24 +0000 (20:10 +0000)]
Merge "Refactor some patching logic"

8 years agoImplement common super type in reference type propagation.
Calin Juravle [Wed, 11 Nov 2015 16:58:31 +0000 (16:58 +0000)]
Implement common super type in reference type propagation.

Currently only if both types are classes.

Change-Id: I06e98211ead56875a42bd17f099e319b107a50d4

8 years agoMerge "Minor fixes and cleaning of arm64 static and direct calls code."
Vladimir Marko [Tue, 17 Nov 2015 17:40:57 +0000 (17:40 +0000)]
Merge "Minor fixes and cleaning of arm64 static and direct calls code."

8 years agoMerge "ART: add kryo to a53 #835769 & #843419 erratum exception list"
Vladimir Marko [Tue, 17 Nov 2015 17:40:34 +0000 (17:40 +0000)]
Merge "ART: add kryo to a53 #835769 & #843419 erratum exception list"

8 years agoMerge "ART: Refactor GenerateTestAndBranch"
David Brazdil [Tue, 17 Nov 2015 16:46:49 +0000 (16:46 +0000)]
Merge "ART: Refactor GenerateTestAndBranch"

8 years agoMerge "Change roots view to "rooted"."
Richard Uhler [Tue, 17 Nov 2015 16:21:12 +0000 (16:21 +0000)]
Merge "Change roots view to "rooted"."

8 years agoART: Refactor GenerateTestAndBranch
David Brazdil [Thu, 12 Nov 2015 18:37:00 +0000 (18:37 +0000)]
ART: Refactor GenerateTestAndBranch

Each code generator implements a method for generating condition
evaluation and branching to arbitrary labels. This patch refactors
it for better clarity but also to generate fewer jumps when the true
branch is the fallthrough successor.

This is preliminary work for implementing HSelect.

Change-Id: Iaa545a5ecbacb761c5aa241fa69140cf6eb5952f

8 years agoSupport deoptimization only to set vreg
Mingyao Yang [Fri, 31 Jul 2015 23:40:24 +0000 (16:40 -0700)]
Support deoptimization only to set vreg

This CL removes the old API that was used to update vreg. We now rely
exclusively on deoptimization to change the value of a vreg (mainly
from the debugger). This allows to have only one mechanism working
with both Quick and Optimizing compilers. It also remove run-test
455-set-vreg which was the only user of the old API.

This CL also renames StackVisitor::SetVReg[Pair]FromDebugger to
StackVisitor::SetVReg[Pair] to reflect that change.

Bug: 25428216
Change-Id: Ib09510185280dbd0f6d02c52549ae9671c187e32

8 years agoFix StackVisitor::GetVReg for reference in shadow frame
Sebastien Hertz [Tue, 17 Nov 2015 09:35:39 +0000 (10:35 +0100)]
Fix StackVisitor::GetVReg for reference in shadow frame

Also fixes 457-regs run-test that used to pass an incorrect
vreg kind.

Bug: 25428216
Change-Id: Ic31b51ca0f72350db6325f23087b06e93055d750

8 years agoRefactor some patching logic
Mathieu Chartier [Fri, 13 Nov 2015 18:42:08 +0000 (10:42 -0800)]
Refactor some patching logic

Reduce duplication since app images in-place relocation will require
this code also.

Bug: 22858531
Change-Id: Ibb901b67267e27ef3bc2a0baff77189d4dcd018a

8 years agoMerge "Add ability to skip run-tests with ART_TEST_RUN_TEST_SKIP."
Alex Light [Mon, 16 Nov 2015 18:10:37 +0000 (18:10 +0000)]
Merge "Add ability to skip run-tests with ART_TEST_RUN_TEST_SKIP."

8 years agoMerge "Ignore NullConstants when computing the type for Phis."
Calin Juravle [Mon, 16 Nov 2015 17:00:23 +0000 (17:00 +0000)]
Merge "Ignore NullConstants when computing the type for Phis."

8 years agoMerge "Implemented control of "export only" feature in dexdump."
Aart Bik [Mon, 16 Nov 2015 16:41:21 +0000 (16:41 +0000)]
Merge "Implemented control of "export only" feature in dexdump."

8 years agoMerge "Mark kQuickReadBarrierForRootSlow as direct entry point on MIPS."
Roland Levillain [Mon, 16 Nov 2015 16:09:48 +0000 (16:09 +0000)]
Merge "Mark kQuickReadBarrierForRootSlow as direct entry point on MIPS."

8 years agoMark kQuickReadBarrierForRootSlow as direct entry point on MIPS.
Roland Levillain [Mon, 16 Nov 2015 15:59:08 +0000 (15:59 +0000)]
Mark kQuickReadBarrierForRootSlow as direct entry point on MIPS.

Change-Id: I35caa32c9773646692706642188ab522237a68ac

8 years agoMerge "x86/x86-64 read barrier support for concurrent GC in Optimizing."
Roland Levillain [Mon, 16 Nov 2015 15:34:28 +0000 (15:34 +0000)]
Merge "x86/x86-64 read barrier support for concurrent GC in Optimizing."

8 years agoMerge "Move the trace file out of the profiles folder."
Calin Juravle [Mon, 16 Nov 2015 11:04:13 +0000 (11:04 +0000)]
Merge "Move the trace file out of the profiles folder."

8 years agox86/x86-64 read barrier support for concurrent GC in Optimizing.
Roland Levillain [Fri, 13 Nov 2015 10:07:31 +0000 (10:07 +0000)]
x86/x86-64 read barrier support for concurrent GC in Optimizing.

This first implementation uses slow paths to instrument heap
reference loads and GC root loads for the concurrent copying
collector, respectively calling the artReadBarrierSlow and
artReadBarrierForRootSlow (new) runtime entry points.

Notes:
- This implementation does not instrument HInvokeVirtual
  nor HInvokeInterface instructions (for class reference
  loads), as the corresponding read barriers are not stricly
  required with the current concurrent copying collector.
- Intrinsics which may eventually call (on slow path) are
  disabled when read barriers are enabled, as the current
  slow path infrastructure does not support this case.
- When read barriers are enabled, the code generated for a
  HArraySet instruction always go into the array set slow
  path for object arrays (delegating the operation to the
  runtime), as we are lacking a mechanism to keep a
  temporary register live accross a runtime call (needed for
  the instrumentation of type checking code, which requires
  two successive read barriers).

Bug: 12687968
Change-Id: I14cd6107233c326389120336f93955b28ffbb329

8 years agoMerge "Fix class unloading with the CC collector."
Hiroshi Yamauchi [Sat, 14 Nov 2015 02:15:09 +0000 (02:15 +0000)]
Merge "Fix class unloading with the CC collector."

8 years agoAdd ability to skip run-tests with ART_TEST_RUN_TEST_SKIP.
Alex Light [Fri, 13 Nov 2015 18:51:10 +0000 (10:51 -0800)]
Add ability to skip run-tests with ART_TEST_RUN_TEST_SKIP.

One can skip running specific run-tests under any configuration by
setting the ART_TEST_RUN_TEST_SKIP variable to a list of the run-test
names to skip.

    $ # None of the variants of 022-interfaces will be run.
    $ ART_TEST_RUN_TEST_SKIP=022-interface mm test-art-host-run-test

Change-Id: I33f24dd7f1eb9f4d6dc407a4abc3c5919437d4fa

8 years agoFix class unloading with the CC collector.
Hiroshi Yamauchi [Thu, 12 Nov 2015 07:45:34 +0000 (23:45 -0800)]
Fix class unloading with the CC collector.

Avoid unnecessarily decoding dex cache and class loader weak roots,
which would trigger read barriers.

Re-enable 141-class-unload with the CC collector.

Bug: 12687968
Bug: 24468364
Change-Id: Ib4c19f25000873cab0e06047040442d135285745

8 years agoMerge "Disable test 964 with gcstress since it often times out."
Alex Light [Fri, 13 Nov 2015 19:07:37 +0000 (19:07 +0000)]
Merge "Disable test 964 with gcstress since it often times out."

8 years agoDisable test 964 with gcstress since it often times out.
Alex Light [Fri, 13 Nov 2015 18:39:34 +0000 (10:39 -0800)]
Disable test 964 with gcstress since it often times out.

Change-Id: Ice9b25d373b849d4415f9189fe94d8ccd6d05cbe

8 years agoART: add kryo to a53 #835769 & #843419 erratum exception list
Ajay Dudani [Thu, 12 Nov 2015 22:28:58 +0000 (14:28 -0800)]
ART: add kryo to a53 #835769 & #843419 erratum exception list

Kryo is custom-designed 64-bit ARM CPU and does not need this A53
erratum handling.

https://www.qualcomm.com/news/snapdragon/2015/09/02/snapdragon-820-and-kryo-cpu-heterogeneous-computing-and-role-custom

Change-Id: Id8f6c616ab2ed19056fd1e3829b85b94a6e6eb84

8 years agoMerge "Revert "Revert "Add missing null check to String::ToCharArray"""
Mathieu Chartier [Fri, 13 Nov 2015 18:33:54 +0000 (18:33 +0000)]
Merge "Revert "Revert "Add missing null check to String::ToCharArray"""

8 years agoImplemented control of "export only" feature in dexdump.
Aart Bik [Fri, 13 Nov 2015 18:06:01 +0000 (10:06 -0800)]
Implemented control of "export only" feature in dexdump.

Rationale:
Export only is now under explicit control of a new -e flag, and
can be used to control both -l xml and -l plain. The result is
that, by default, xml output now shows all items (old behavior
can be forced with -e -l xml). This solution feels a bit cleaner
than adding a flag to override export only when -l xml is given
(old dexdump forced this tight relation).

Bug: 25673756 (feature request).

Change-Id: I7cfd48bf91195d2a81d134936719d267fda399f5

8 years agoRevert "Revert "Add missing null check to String::ToCharArray""
Mathieu Chartier [Fri, 13 Nov 2015 16:36:59 +0000 (08:36 -0800)]
Revert "Revert "Add missing null check to String::ToCharArray""

Fix flaky test.

Bug: 25641543

This reverts commit b52a39c76e0cb0638c92cdcf6b5c5aa551420e1a.

Change-Id: I6b0d3087dba3680252e65af554530e2769cde55c

8 years agoMerge "Stream DWARF debug section directly to disk."
David Srbecky [Fri, 13 Nov 2015 15:53:30 +0000 (15:53 +0000)]
Merge "Stream DWARF debug section directly to disk."

8 years agoMerge "Revert "Add missing null check to String::ToCharArray""
Nicolas Geoffray [Fri, 13 Nov 2015 08:16:55 +0000 (08:16 +0000)]
Merge "Revert "Add missing null check to String::ToCharArray""

8 years agoRevert "Add missing null check to String::ToCharArray"
Nicolas Geoffray [Fri, 13 Nov 2015 08:16:23 +0000 (08:16 +0000)]
Revert "Add missing null check to String::ToCharArray"

Does not work with the interpreter.

Bug: 25641543

This reverts commit 952d608062eec2d7f47f9b45dba935ad8b4d23e5.

Change-Id: Ic112fa69c7ddd119cbccc5b65007b5ee4dfccd09

8 years agoMerge "Add missing null check to String::ToCharArray"
Mathieu Chartier [Fri, 13 Nov 2015 01:32:44 +0000 (01:32 +0000)]
Merge "Add missing null check to String::ToCharArray"

8 years agoAdd missing null check to String::ToCharArray
Mathieu Chartier [Fri, 13 Nov 2015 00:53:41 +0000 (16:53 -0800)]
Add missing null check to String::ToCharArray

Added test.

Bug: 25641543
Change-Id: Ic9a21ce8bc530dbedf14334ad47f5faa90ae4ddc

8 years agoMerge "Fix bug with test 964."
Alex Light [Fri, 13 Nov 2015 00:50:11 +0000 (00:50 +0000)]
Merge "Fix bug with test 964."

8 years agoFix bug with test 964.
Alex Light [Thu, 12 Nov 2015 23:38:24 +0000 (15:38 -0800)]
Fix bug with test 964.

An indentation error meant that some test cases would not be
generated. Also fixed run-test script since fixing this causes the
output to be larger than the default ulimit.

Change-Id: I454f89078f8307f400b66627fdab13feaf492512

8 years agoMerge "Add class loader argument to openDexFileNative"
Mathieu Chartier [Thu, 12 Nov 2015 19:19:36 +0000 (19:19 +0000)]
Merge "Add class loader argument to openDexFileNative"

8 years agoAdd class loader argument to openDexFileNative
Mathieu Chartier [Thu, 12 Nov 2015 18:00:58 +0000 (10:00 -0800)]
Add class loader argument to openDexFileNative

Bug: 22858531
Change-Id: I315919d91822db0c73cf16b21d660d5870d5746f

8 years agoMinor fixes and cleaning of arm64 static and direct calls code.
Alexandre Rames [Thu, 12 Nov 2015 14:44:19 +0000 (14:44 +0000)]
Minor fixes and cleaning of arm64 static and direct calls code.

Fixes:
The proper way to avoid the MacroAssembler to generate code before or
after an instruction is to block the pools (usually via
`vixl::BlockPoolsScope`). Here we can use
`vixl::SingleEmissionCheckScope`, that checks we generate only one
instruction and also blocks the pools.
In practice the current code would have worked fine because VIXL would
not have generated anything after `Bl()` or `Ldr()`, but that was not
guaranteed.

Cleaning:
- `XRegisterFrom()` returns an X register. Calling `.X()` is not
  required.
- Since we are sure (after the previous fixes) that nothing will be
  emitted around the instructions we care about, update the code to
  bind labels before the instructions for simplicity.

Change-Id: I42d49976721e380e66bcd7a5b345f1777009434a

8 years agoMerge "Optimizing/X86: PC-relative dex cache array addressing."
Vladimir Marko [Thu, 12 Nov 2015 15:20:08 +0000 (15:20 +0000)]
Merge "Optimizing/X86: PC-relative dex cache array addressing."

8 years agoMerge "Optimizing: Clean up constant location handling."
Vladimir Marko [Thu, 12 Nov 2015 11:56:22 +0000 (11:56 +0000)]
Merge "Optimizing: Clean up constant location handling."

8 years agoMerge "Revert "Mark __jit_debug_register_code as a unique symbol""
Tamas Berghammer [Thu, 12 Nov 2015 11:06:38 +0000 (11:06 +0000)]
Merge "Revert "Mark __jit_debug_register_code as a unique symbol""

8 years agoRevert "Mark __jit_debug_register_code as a unique symbol"
Tamas Berghammer [Thu, 12 Nov 2015 11:05:50 +0000 (11:05 +0000)]
Revert "Mark __jit_debug_register_code as a unique symbol"

This reverts commit e7132a9a5d98103fa52a750287476b063fa88863.

We are still using ld on some targets instead of gold when compiling for ararch64. Revert until we figure out why.

Change-Id: If09fac8d72485dc8adbc81e44a2af84ed91dcd91

8 years agoMerge "JDWP: default implementation of Method.IsObsolete"
Sebastien Hertz [Thu, 12 Nov 2015 11:00:38 +0000 (11:00 +0000)]
Merge "JDWP: default implementation of Method.IsObsolete"

8 years agoOptimizing/X86: PC-relative dex cache array addressing.
Vladimir Marko [Mon, 2 Nov 2015 14:36:43 +0000 (14:36 +0000)]
Optimizing/X86: PC-relative dex cache array addressing.

Add PC-relative dex cache array addressing for X86 and use
it for better invoke-static/-direct dispatch. Also delay
the initialization to the PC-relative base until needed.

Change-Id: Ib8634d5edce4920cd70172fd13211809cf6948d1

8 years agoMerge "MIPS64: fix calling conventions in LoadClass and field accesses"
Roland Levillain [Thu, 12 Nov 2015 10:43:30 +0000 (10:43 +0000)]
Merge "MIPS64: fix calling conventions in LoadClass and field accesses"

8 years agoMerge "Mark __jit_debug_register_code as a unique symbol"
Tamas Berghammer [Thu, 12 Nov 2015 10:40:23 +0000 (10:40 +0000)]
Merge "Mark __jit_debug_register_code as a unique symbol"

8 years agoMerge "ART: Add comments to Scoped-/ArenaAllocator."
Vladimir Marko [Thu, 12 Nov 2015 10:16:29 +0000 (10:16 +0000)]
Merge "ART: Add comments to Scoped-/ArenaAllocator."

8 years agoRosAlloc fast path inline in assembly for x86 32bit.
lwang85 [Tue, 10 Nov 2015 09:26:31 +0000 (17:26 +0800)]
RosAlloc fast path inline in assembly for x86 32bit.

Port patch https://android-review.googlesource.com/#/c/180014/ for
x86 32bit.
Measurement:
AndroidGCTest(ms, the lower the better): 73372->68165, 7.10% improvement.

Signed-off-by: lwang85 <li.w.wang@intel.com>
Change-Id: I9ac3fc56f98574c41fc070dbf12ce7474d6a3610

8 years agoMerge "Image space cleanup for app images"
Mathieu Chartier [Thu, 12 Nov 2015 03:23:54 +0000 (03:23 +0000)]
Merge "Image space cleanup for app images"

8 years agoImage space cleanup for app images
Mathieu Chartier [Tue, 10 Nov 2015 22:13:23 +0000 (14:13 -0800)]
Image space cleanup for app images

Removed Heap::GetImageSpace, added Heap::GetBootImageSpace.

Generalized some logic in the class linker for image spaces.

Bug: 22858531

Change-Id: Ib3e12bb061a247e232d3dc93b0d6b35eb3a34d25

8 years agoMerge "Get class loader to remember interrupts"
Hans Boehm [Thu, 12 Nov 2015 02:51:20 +0000 (02:51 +0000)]
Merge "Get class loader to remember interrupts"

8 years agoGet class loader to remember interrupts
Hans Boehm [Thu, 12 Nov 2015 00:13:57 +0000 (16:13 -0800)]
Get class loader to remember interrupts

Bug: 25606036

Monitor::Wait should not reset the interrupt flag unless it actually
throws the exception.

Change-Id: Id6a35c888160043831f30055f9bd39e7f0440439

8 years agoMIPS64: fix calling conventions in LoadClass and field accesses
Alexey Frunze [Wed, 11 Nov 2015 21:31:12 +0000 (13:31 -0800)]
MIPS64: fix calling conventions in LoadClass and field accesses

This fixes failures in test 529-checker-unresolved

Change-Id: I6170c22059e9711b2fcc965b00d6e34edd839539

8 years agoMerge "Make test 968's name shorter"
Alex Light [Wed, 11 Nov 2015 23:36:15 +0000 (23:36 +0000)]
Merge "Make test 968's name shorter"

8 years agoMake test 968's name shorter
Alex Light [Wed, 11 Nov 2015 23:32:24 +0000 (15:32 -0800)]
Make test 968's name shorter

It was causing intermittent CI breaks due to the long name of the
generated oat file.

Change-Id: I71b4b3aa1a13df2696b276998cafe40006d54b66

8 years agoMerge "Revert "lambda: unit test for lambda expressions at Java Language source level.""
Aart Bik [Wed, 11 Nov 2015 22:38:10 +0000 (22:38 +0000)]
Merge "Revert "lambda: unit test for lambda expressions at Java Language source level.""

8 years agoRevert "lambda: unit test for lambda expressions at Java Language source level."
Aart Bik [Wed, 11 Nov 2015 22:36:19 +0000 (22:36 +0000)]
Revert "lambda: unit test for lambda expressions at Java Language source level."

REASON: Buildbots are having jack issues

This reverts commit 152ee552652691ecaec2db420d468cb178647952.

Change-Id: I650fe1a94f1b97c14a689599703498506dd70b23

8 years agoMerge "Move .debug_line before .debug_info."
David Srbecky [Wed, 11 Nov 2015 21:36:22 +0000 (21:36 +0000)]
Merge "Move .debug_line before .debug_info."

8 years agoStream DWARF debug section directly to disk.
David Srbecky [Wed, 11 Nov 2015 20:19:38 +0000 (20:19 +0000)]
Stream DWARF debug section directly to disk.

Change the structure so that the debug sections are written to
disk as we go.  There are still some temporary buffers, however,
we no longer hold all of the data in memory before writing it.
We can not avoid buffering of some things (e.g. .debug_str).

Change-Id: Id4940cf10ae5b6f3cac7fb8d20197f0304079b92

8 years agoMove .debug_line before .debug_info.
David Srbecky [Wed, 11 Nov 2015 20:38:16 +0000 (20:38 +0000)]
Move .debug_line before .debug_info.

Swap the order since .debug_info depends on .debug_line, but
not vice versa.  This is for disk streaming convenience.

Change-Id: Iabe18fea97aa5527aedfc55c9bdf66e5587568bc

8 years agoART: Add comments to Scoped-/ArenaAllocator.
Vladimir Marko [Wed, 11 Nov 2015 18:45:50 +0000 (18:45 +0000)]
ART: Add comments to Scoped-/ArenaAllocator.

Change-Id: Iba7350114fb998ac9ee1466ef12f4a5024a18e8e

8 years agoMerge "ART: Fix arena allocation for valgrind."
Vladimir Marko [Wed, 11 Nov 2015 18:44:25 +0000 (18:44 +0000)]
Merge "ART: Fix arena allocation for valgrind."

8 years agoMerge "lambda: unit test for lambda expressions at Java Language source level."
Aart Bik [Wed, 11 Nov 2015 18:30:36 +0000 (18:30 +0000)]
Merge "lambda: unit test for lambda expressions at Java Language source level."

8 years agolambda: unit test for lambda expressions at Java Language source level.
Aart Bik [Wed, 11 Nov 2015 00:49:45 +0000 (16:49 -0800)]
lambda: unit test for lambda expressions at Java Language source level.

Rationale: having a checkers-flavored unit test will enable testing
           both if the correct HIR is generated using the checker
           as well as the correctness of execution (interpreter for now,
           but native code later).

Change-Id: I588e9955efaaf53e5c5e3398399e009041cd65f0

8 years agoMove the trace file out of the profiles folder.
Calin Juravle [Wed, 4 Nov 2015 16:16:47 +0000 (16:16 +0000)]
Move the trace file out of the profiles folder.

/dalvik-cache/profiles/ is going away. Create the trace file under
/data/misc/trace.

This enable tracing without forcing SElinux into permissive mode.

Bug: 24698874
Bug: 25612377
Change-Id: I78d09ef629bebe635c3baabaf88f01996d3333e5

8 years agoMerge "Correct exception behavior for default methods"
Alex Light [Wed, 11 Nov 2015 18:07:14 +0000 (18:07 +0000)]
Merge "Correct exception behavior for default methods"

8 years agoART: Fix arena allocation for valgrind.
Vladimir Marko [Tue, 10 Nov 2015 20:54:22 +0000 (20:54 +0000)]
ART: Fix arena allocation for valgrind.

Move the zero-initialization check after marking the newly
allocated chunk as defined and check only the allocated
space without the red zone. Also mark unallocated space as
inaccessible instead of just undefined.

Change-Id: I74fc65f5b53acb74cec4e5a0146f41dacf4a1470

8 years agoChange roots view to "rooted".
Richard Uhler [Wed, 11 Nov 2015 17:13:23 +0000 (09:13 -0800)]
Change roots view to "rooted".

Instead of just showing roots in the roots view, show all objects
whose immediate dominator is the SENTINEL_ROOT.

Bug: 24613815
Change-Id: I96429d75395edfe109222e88d31cdc0bd87a7767

8 years agoIgnore NullConstants when computing the type for Phis.
Calin Juravle [Wed, 11 Nov 2015 14:59:46 +0000 (14:59 +0000)]
Ignore NullConstants when computing the type for Phis.

NullConstants are always typed as Object and they widen the
type of Phis unnecessarily.

Change-Id: I2b29e67617a22120642cb23d2bc6c1ff75b4e7c2

8 years agoOptimizing: Clean up constant location handling.
Vladimir Marko [Wed, 11 Nov 2015 12:37:46 +0000 (12:37 +0000)]
Optimizing: Clean up constant location handling.

Locations builder should use ConstantLocation() when the
code generator relies on a location to be constant. Code
generator should interrogate locations, not inputs, about
being const.

Change-Id: Ic35bb84aa9f83e0977b151a0430aca6c88f19cf0

8 years agoMark __jit_debug_register_code as a unique symbol
Tamas Berghammer [Wed, 2 Sep 2015 10:24:33 +0000 (11:24 +0100)]
Mark __jit_debug_register_code as a unique symbol

This symbol is used to notify the debugger about JIT library load/unload
events. Because of ICF, several functions with the same body put to the
same adress by the linker what causes the debugger to get notifictaion
about JIT load/unload events in several case where it isn't really happened.

This change disable ICF for the __jit_debug_register_code symbol to prevent
this behavior with keeping the symbol unique in the object file.

This is the recommit of 5caf652d7bfb43bdd2f3addfe8021a5fb8e3f796 after
fixing the compilation issue on sdk_phone_armv7-sdk (mac) target.

Change-Id: I027d2c7964098d47ed350ee6b7c74d82c88a5d1f

8 years agoMerge "Revert "Revert "Run type propagation after inliner only when needed."""
Calin Juravle [Wed, 11 Nov 2015 13:55:39 +0000 (13:55 +0000)]
Merge "Revert "Revert "Run type propagation after inliner only when needed."""

8 years agoRevert "Revert "Run type propagation after inliner only when needed.""
Calin Juravle [Mon, 26 Oct 2015 14:05:01 +0000 (14:05 +0000)]
Revert "Revert "Run type propagation after inliner only when needed.""

This reverts commit 271743601650308c7ac5c7a3ec35025d8130a298.

Change-Id: I173e27a0a4d7d54f90ca459eb48d280d1d40ab70

8 years agoMerge "Ignore failures of WeakHashMapTest#test_keySet in libcore tests."
Roland Levillain [Wed, 11 Nov 2015 12:40:26 +0000 (12:40 +0000)]
Merge "Ignore failures of WeakHashMapTest#test_keySet in libcore tests."

8 years agoIgnore failures of WeakHashMapTest#test_keySet in libcore tests.
Roland Levillain [Wed, 11 Nov 2015 12:16:52 +0000 (12:16 +0000)]
Ignore failures of WeakHashMapTest#test_keySet in libcore tests.

The outcome of this test depends on a weak reference being
collected before a timeout, which sometimes fails.  This
test used to pass, but recent changes have made this
non-determinism more frequent.  Until we rewrite this
properly (if ever), just ignore these failures.

Bug: 25437292
Change-Id: I1f041f6dfc1318026bce966575477486207f5351

8 years agoMerge "Optimizing/ARM: Improve shifts of long values by a constant."
Vladimir Marko [Wed, 11 Nov 2015 11:27:03 +0000 (11:27 +0000)]
Merge "Optimizing/ARM: Improve shifts of long values by a constant."

8 years agoOptimizing/ARM: Improve shifts of long values by a constant.
Vladimir Marko [Tue, 10 Nov 2015 19:31:26 +0000 (19:31 +0000)]
Optimizing/ARM: Improve shifts of long values by a constant.

Change-Id: Id66ef8cdb9e64306f2be547370b90cc100a3e086

8 years agoCorrect exception behavior for default methods
Alex Light [Fri, 9 Oct 2015 22:59:48 +0000 (15:59 -0700)]
Correct exception behavior for default methods

Default methods are defined to throw an IncompatibleClassChangeError
(ICCE) when they are called and there is no "best" implementation.
Previously we would simply throw an ICCE during class loading as soon
as we noticed that this would happen if called. This makes us wait
until we actually attempt to execute the method. Furthermore, this
allows us to use other, non-conflicting, methods on the object as
normal.

Furthermore, this makes us correctly throw AbstractMethodErrors in
cases where all default implementations of a method are overridden by
abstract declarations.

Adds 3 tests for this new behavior.

Bug: 24618811

Change-Id: Id891958a81f9b3862b2ce5919636aabef7d3422e

8 years agoMerge "Don't use fixed addresses in mem map test"
Mathieu Chartier [Tue, 10 Nov 2015 22:09:40 +0000 (22:09 +0000)]
Merge "Don't use fixed addresses in mem map test"

8 years agoDon't use fixed addresses in mem map test
Mathieu Chartier [Tue, 10 Nov 2015 18:32:52 +0000 (10:32 -0800)]
Don't use fixed addresses in mem map test

We obtain a valid address instead of assuming there won't be a map
there.

These checks used to be OK when we didn't start the runtime.

Change-Id: Ie636ed3773d2c0c62d87e57623ee4ce380c64db0

8 years agoMerge "ART: Fix leak in Heap"
Andreas Gampe [Tue, 10 Nov 2015 21:55:08 +0000 (21:55 +0000)]
Merge "ART: Fix leak in Heap"

8 years agoART: Fix leak in Heap
Andreas Gampe [Tue, 10 Nov 2015 21:34:17 +0000 (13:34 -0800)]
ART: Fix leak in Heap

Delete a mutex in the destructor.

Change-Id: I7fb8f3f9e7a30baf352f384f38520eb0dd4906eb

8 years agoMerge "Optimizing: Clean up Equal/NotEqual constant folding for nulls."
Vladimir Marko [Tue, 10 Nov 2015 20:04:08 +0000 (20:04 +0000)]
Merge "Optimizing: Clean up Equal/NotEqual constant folding for nulls."

8 years agoMerge "Rosalloc fast path in assembly for x86_64."
Hiroshi Yamauchi [Tue, 10 Nov 2015 19:55:05 +0000 (19:55 +0000)]
Merge "Rosalloc fast path in assembly for x86_64."