OSDN Git Service

android-x86/art.git
10 years agoMerge "Switch on implicit checks and bump oat version to force recompilation"
Dave Allison [Mon, 2 Jun 2014 18:06:48 +0000 (18:06 +0000)]
Merge "Switch on implicit checks and bump oat version to force recompilation"

10 years agoMerge "Added workaround passing empty arg array for proxy invocation."
Jeff Hao [Mon, 2 Jun 2014 17:01:01 +0000 (17:01 +0000)]
Merge "Added workaround passing empty arg array for proxy invocation."

10 years agoAdded workaround passing empty arg array for proxy invocation.
Jeff Hao [Fri, 30 May 2014 00:29:47 +0000 (17:29 -0700)]
Added workaround passing empty arg array for proxy invocation.

This recreates old Dalvik behavior for older target sdk versions,
but will still pass null for newer ones.

Bug: 13247236

(cherry picked from commit 01d5a146e20660bd06f026c16f19ec080f8fdd7b)

Change-Id: I911889cf559ad8d9f37ea9be3929387c86446851

10 years agoMerge "ART: Fix comments and link before MIR to next in Remove method"
Ian Rogers [Mon, 2 Jun 2014 16:27:18 +0000 (16:27 +0000)]
Merge "ART: Fix comments and link before MIR to next in Remove method"

10 years agoMerge "x86: art_quick_instrumentation_entry should not use offset address"
Ian Rogers [Mon, 2 Jun 2014 16:07:44 +0000 (16:07 +0000)]
Merge "x86: art_quick_instrumentation_entry should not use offset address"

10 years agoMerge "Fix GC race condition in visit roots"
Ian Rogers [Mon, 2 Jun 2014 16:06:03 +0000 (16:06 +0000)]
Merge "Fix GC race condition in visit roots"

10 years agoART: Fix comments and link before MIR to next in Remove method
Jean Christophe Beyler [Mon, 2 Jun 2014 16:04:32 +0000 (09:04 -0700)]
ART: Fix comments and link before MIR to next in Remove method

There are some comments without a period at the end and the remove does not
link the MIR before the one we want to remove to the one after.

Change-Id: Ia1263d3191e39b4f8f76ef62b28f7fbb1c6c0403
Signed-off-by: Jean Christophe Beyler jean.christophe.beyler@intel.com
10 years agox86: art_quick_instrumentation_entry should not use offset address
Serguei Katkov [Thu, 22 May 2014 03:07:44 +0000 (10:07 +0700)]
x86: art_quick_instrumentation_entry should not use offset address

art_quick_instrumentation_entry uses offset of the address
instead of full adress but this address is used in ret instruction
which does not expect it.

Change-Id: I9e576037d7adf14a7e9fa8f6d4aba4ee540fcc14
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoFix GC race condition in visit roots
Serguei Katkov [Mon, 26 May 2014 04:23:39 +0000 (11:23 +0700)]
Fix GC race condition in visit roots

While GC visits roots other code can change the set pending exception
due to lack of synchronization.

Change-Id: If387944ac933a66fe176df066c3a0ea52131cad4
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoMerge "Quick compiler: fix array overrun."
buzbee [Sun, 1 Jun 2014 18:37:53 +0000 (18:37 +0000)]
Merge "Quick compiler: fix array overrun."

10 years agoQuick compiler: fix array overrun.
buzbee [Sat, 31 May 2014 15:59:01 +0000 (08:59 -0700)]
Quick compiler: fix array overrun.

MIRGraph::InlineCalls() was using the MIR opcode to recover
Dalvik instruction flags - something that is only valid for
Dalvik opcodes and not the set of extended MIR opcodes.

This is probably the 3rd or 4th time we've had a bug using
the MIR opcode in situations that are only valid for the Dalvik
opcode subset.  I took the opportunity to scan the code for
other cases of this (didn't find any), and did some cleanup while
I was in the neighborhood.

We should probably rework the DalvikOpcode/MirOpcode model whenver we
get around to removing DalvikInstruction from MIR.

Internal bug b/15352667: out-of-bound access in mir_optimization.cc

Change-Id: I75f06780468880892151e3cdd313e14bfbbaa489

10 years agoMerge "ART: Add thread safety test for LargeObjectSpace"
Andreas Gampe [Fri, 30 May 2014 22:10:57 +0000 (22:10 +0000)]
Merge "ART: Add thread safety test for LargeObjectSpace"

10 years agoART: Add thread safety test for LargeObjectSpace
Andreas Gampe [Fri, 30 May 2014 21:42:59 +0000 (14:42 -0700)]
ART: Add thread safety test for LargeObjectSpace

Add a test that just calls Alloc and Free repeatedly with multiple
threads, checking whether things are really race-free.

Change-Id: I39ea9e7449e3354b49c3aa11c27fcfeb07acff9f

10 years agoMerge "AArch64: Enable extended MIR"
Bill Buzbee [Fri, 30 May 2014 21:49:34 +0000 (21:49 +0000)]
Merge "AArch64: Enable extended MIR"

10 years agoMerge "Compaction cleanup for FindArrayClass."
Mathieu Chartier [Fri, 30 May 2014 21:15:32 +0000 (21:15 +0000)]
Merge "Compaction cleanup for FindArrayClass."

10 years agoCompaction cleanup for FindArrayClass.
Mathieu Chartier [Thu, 29 May 2014 21:31:33 +0000 (14:31 -0700)]
Compaction cleanup for FindArrayClass.

We now pass double pointer in to signify that it can cause thread
suspension, this double pointer gets wrapped by a handle if don't
find the array class in the cache.

Change-Id: I43436b6c35597c7252b65d1180baddb5ac4caabb

10 years agoMerge "Support disassembly of 16-bit immediates"
Ian Rogers [Fri, 30 May 2014 20:26:12 +0000 (20:26 +0000)]
Merge "Support disassembly of 16-bit immediates"

10 years agoMerge "Fix race condition in MemMap::MapAnonymous."
Mathieu Chartier [Fri, 30 May 2014 20:24:53 +0000 (20:24 +0000)]
Merge "Fix race condition in MemMap::MapAnonymous."

10 years agoFix race condition in MemMap::MapAnonymous.
Mathieu Chartier [Fri, 30 May 2014 20:02:46 +0000 (13:02 -0700)]
Fix race condition in MemMap::MapAnonymous.

Previously we were using MAP_FIXED which introduced a serious race
condition if MAP_32BIT was set since it would possibly overwrite
an existing map at the address which we determined was free with
msync. There was a window of time after we had msynced a page where
another thread could map something at that page. The new method
avoids using MAP_FIXED and unmaps allocations which succeed but
aren't in the low 4GB when MAP_32BIT is set.

Bug: 15338094
Bug: 14974497
Change-Id: I57f00baf4143e9fa17fb1d4c2be04b30705a2bfd

10 years agoSupport disassembly of 16-bit immediates
Mark Mendell [Fri, 30 May 2014 19:05:09 +0000 (15:05 -0400)]
Support disassembly of 16-bit immediates

Change-Id: I66f5ce93077241204311e52c547599f5287bae04
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Don't report down-calls as unhandled exceptions."
Ian Rogers [Fri, 30 May 2014 19:53:48 +0000 (19:53 +0000)]
Merge "Don't report down-calls as unhandled exceptions."

10 years agoMerge "Quick compiler: Method* as a reference"
buzbee [Fri, 30 May 2014 19:48:41 +0000 (19:48 +0000)]
Merge "Quick compiler: Method* as a reference"

10 years agoDon't report down-calls as unhandled exceptions.
Ian Rogers [Fri, 30 May 2014 04:31:50 +0000 (21:31 -0700)]
Don't report down-calls as unhandled exceptions.

Bug: 15310540
Also, narrow scope of catch/deoptimize stack visitors that are specific to
quick exception delivery.

Change-Id: Ib13a006ce1347acb93a36b0186550d4c3ec2034b

10 years agoSwitch on implicit checks and bump oat version to force recompilation
Dave Allison [Fri, 30 May 2014 18:25:06 +0000 (11:25 -0700)]
Switch on implicit checks and bump oat version to force recompilation

This switches on the compiler's implicit null pointer and stack
overflow checks.  These use signals

Change-Id: I7b536784bbca5f07e30379881a1eea6ab4c258ac

10 years agoMerge "Another workaround for stack overflow issue with clang"
Sebastien Hertz [Fri, 30 May 2014 18:14:35 +0000 (18:14 +0000)]
Merge "Another workaround for stack overflow issue with clang"

10 years agoMerge "Quick compiler: x86_64 workaround"
buzbee [Fri, 30 May 2014 16:52:12 +0000 (16:52 +0000)]
Merge "Quick compiler: x86_64 workaround"

10 years agoMerge "ART: Use StackReference in Quick Stack Frame"
Andreas Gampe [Fri, 30 May 2014 16:46:04 +0000 (16:46 +0000)]
Merge "ART: Use StackReference in Quick Stack Frame"

10 years agoMerge "Revert "Revert "Clean up image writer patching."""
Mathieu Chartier [Fri, 30 May 2014 16:45:04 +0000 (16:45 +0000)]
Merge "Revert "Revert "Clean up image writer patching."""

10 years agoMerge "Revert "Revert "Add support for relative patching to quick offsets."""
Mathieu Chartier [Fri, 30 May 2014 16:44:54 +0000 (16:44 +0000)]
Merge "Revert "Revert "Add support for relative patching to quick offsets."""

10 years agoRevert "Revert "Clean up image writer patching.""
Mathieu Chartier [Fri, 30 May 2014 16:44:47 +0000 (16:44 +0000)]
Revert "Revert "Clean up image writer patching.""

This reverts commit fb241b6e93f8b54122b978ad0df23a9e514eef0f.

Change-Id: I99da82fd549bcdc3c2fdfe496147897335c50b8e

10 years agoRevert "Revert "Add support for relative patching to quick offsets.""
Mathieu Chartier [Fri, 30 May 2014 16:44:41 +0000 (16:44 +0000)]
Revert "Revert "Add support for relative patching to quick offsets.""

This reverts commit 3e2e99484043aa25b8ed41509ac1b3ccd7d6a959.

Change-Id: Ifbe604330cd3a1dd0a8afa7c500868e2fd0fc500

10 years agoMerge "Revert "Add support for relative patching to quick offsets.""
Mathieu Chartier [Fri, 30 May 2014 16:32:42 +0000 (16:32 +0000)]
Merge "Revert "Add support for relative patching to quick offsets.""

10 years agoRevert "Add support for relative patching to quick offsets."
Mathieu Chartier [Fri, 30 May 2014 16:32:31 +0000 (16:32 +0000)]
Revert "Add support for relative patching to quick offsets."

This reverts commit 57d27334bcb9ea95c969be70d8d93eb1a9c72b41.

Change-Id: I5df09ee342c337291388a48e4975a6bf5c1f9944

10 years agoMerge "Revert "Clean up image writer patching.""
Mathieu Chartier [Fri, 30 May 2014 16:32:12 +0000 (16:32 +0000)]
Merge "Revert "Clean up image writer patching.""

10 years agoRevert "Clean up image writer patching."
Mathieu Chartier [Fri, 30 May 2014 16:31:49 +0000 (16:31 +0000)]
Revert "Clean up image writer patching."

This reverts commit fc3b871ca37593561e3b67006771710bf4d174ea.

Change-Id: I4d1250f3adcd17fcd1b63496816e098db4d5be3c

10 years agoMerge "Change GetFreeMemory to use the growth limit."
Mathieu Chartier [Fri, 30 May 2014 16:30:19 +0000 (16:30 +0000)]
Merge "Change GetFreeMemory to use the growth limit."

10 years agoMerge "Fix build."
Narayan Kamath [Fri, 30 May 2014 11:08:38 +0000 (11:08 +0000)]
Merge "Fix build."

10 years agoFix build.
Narayan Kamath [Fri, 30 May 2014 10:58:09 +0000 (11:58 +0100)]
Fix build.

Lint error due to a wrong #include guard.

Change-Id: I3b5d56c412580ec14f5c09b859a1bd6f9eb667ee

10 years agoMerge "ART: Setting up cleanup"
Vladimir Marko [Fri, 30 May 2014 10:35:30 +0000 (10:35 +0000)]
Merge "ART: Setting up cleanup"

10 years agoAArch64: Enable extended MIR
Serban Constantinescu [Wed, 28 May 2014 12:21:45 +0000 (13:21 +0100)]
AArch64: Enable extended MIR

This patch enables all the extended MIR opcodes for ARM64. Please note
that currently the compiler will never generate these opcodes since the
BB optimisations are not enabled.

Change-Id: Ia712b071f62301db868297d37567795128b5bf2e
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
10 years agoART: Setting up cleanup
Jean Christophe Beyler [Wed, 7 May 2014 03:36:55 +0000 (20:36 -0700)]
ART: Setting up cleanup

- Moved code around to actually have the clean-up code in a PassDriver format.
    This allows us to better control what is being called after an optimization
    It also allows the use of a centralized pass system for both optimizations
      and cleanup.

Change-Id: I9d21e9bb9ee663739722f440d82adf04f73e380c
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
10 years agoART: Use StackReference in Quick Stack Frame
Andreas Gampe [Thu, 29 May 2014 05:43:01 +0000 (22:43 -0700)]
ART: Use StackReference in Quick Stack Frame

The method reference at the bottom of a quick frame is a stack
reference and not a native pointer. This is important for 64b
architectures, where the notions do not coincide.

Change key methods to have StackReference<mirror::ArtMethod>*
parameter instead of mirror::ArtMethod**. Make changes to
invoke stubs for 64b archs, change the frame setup for JNI code
(both generic JNI and compilers), tie up loose ends.

Tested on x86 and x86-64 with host tests. On x86-64, tests succeed
with jni compiler activated. x86-64 QCG was not tested.

Tested on ARM32 with device tests.

Fix ARM64 not saving x19 (used for wSUSPEND) on upcalls.

Tested on ARM64 in interpreter-only + generic-jni mode.

Fix ARM64 JNI Compiler to work with the CL.

Tested on ARM64 in interpreter-only + jni compiler.

Change-Id: I77931a0cbadd04d163b3eb8d6f6a6f8740578f13

10 years agoMerge "Moved a BufferedOutputStream onto the heap to reduce stack usage."
Brian Carlstrom [Fri, 30 May 2014 00:57:10 +0000 (00:57 +0000)]
Merge "Moved a BufferedOutputStream onto the heap to reduce stack usage."

10 years agoMoved a BufferedOutputStream onto the heap to reduce stack usage.
Alex Light [Thu, 29 May 2014 22:42:47 +0000 (15:42 -0700)]
Moved a BufferedOutputStream onto the heap to reduce stack usage.

Bug: 15278350
Change-Id: I6aa7cf3979453e555686610e90520b762b812f8c

10 years agoChange GetFreeMemory to use the growth limit.
Mathieu Chartier [Fri, 30 May 2014 00:09:51 +0000 (17:09 -0700)]
Change GetFreeMemory to use the growth limit.

This makes more sense since it is what the allocator uses. Also fixed
somewhere where we were not properly passing in whether or not it was
a large object allocation.

Bug: 15327879
Change-Id: Ieab7af5427f5cdc2760390186b67e2c96d4bafa7

10 years agoMerge "Ignore catch blocks whose type can't be resolved."
Ian Rogers [Fri, 30 May 2014 00:05:29 +0000 (00:05 +0000)]
Merge "Ignore catch blocks whose type can't be resolved."

10 years agoIgnore catch blocks whose type can't be resolved.
Ian Rogers [Thu, 29 May 2014 23:55:06 +0000 (16:55 -0700)]
Ignore catch blocks whose type can't be resolved.

Reverts change 72b3e430d880ef57eaa6a34a0822165994052202 but keeps unit test and
missing delete that would fail assertions on long jump context recycling.

Change-Id: I926755e8b831b208aa7e1ce46421bef3793a1441

10 years agoMerge "Clean up image writer patching."
Mathieu Chartier [Thu, 29 May 2014 23:31:40 +0000 (23:31 +0000)]
Merge "Clean up image writer patching."

10 years agoQuick compiler: x86_64 workaround
buzbee [Thu, 29 May 2014 23:03:42 +0000 (16:03 -0700)]
Quick compiler: x86_64 workaround

A recent CL changed the allocation of temp registers destined to
hold a reference such that on 64-bit systems a 64-bit register
would be allocated.  However, for bring-up purposes, the x86_64
backend wants the ability to continue holding long values in a
register pair.

Change-Id: I25d9f755fafbe96144226677f85c6d5cad1ffa76

10 years agoClean up image writer patching.
Mathieu Chartier [Thu, 29 May 2014 22:36:38 +0000 (15:36 -0700)]
Clean up image writer patching.

Also fixed an issue related to incorrect patching of non relative
patches.

Change-Id: I55b0b3814b65b7fa8749a934dfaaf07b97735304

10 years agoMerge "Add support for relative patching to quick offsets."
Mathieu Chartier [Thu, 29 May 2014 22:00:50 +0000 (22:00 +0000)]
Merge "Add support for relative patching to quick offsets."

10 years agoMerge "Add read barriers for the weak roots in the JNI weak globals."
Hiroshi Yamauchi [Thu, 29 May 2014 21:14:56 +0000 (21:14 +0000)]
Merge "Add read barriers for the weak roots in the JNI weak globals."

10 years agoAdd support for relative patching to quick offsets.
Mathieu Chartier [Thu, 29 May 2014 17:19:19 +0000 (10:19 -0700)]
Add support for relative patching to quick offsets.

We now have support for patching relative patches to quick offsets
(interpreter bridge, generic trampoline). This fixes an issue where
the compiler was generating relative branches to methods but then
later deciding to not compile them, we now properly patch these in
the image writer.

Credits: agampe for help.
Bug: 15283931

Change-Id: I3ea5278b39def6c442432fb14103a91c6eae6d0f

10 years agoMerge "Make use of sigchainlib for signal chaining for implicit checks"
Dave Allison [Thu, 29 May 2014 19:51:32 +0000 (19:51 +0000)]
Merge "Make use of sigchainlib for signal chaining for implicit checks"

10 years agoAdd read barriers for the weak roots in the JNI weak globals.
Hiroshi Yamauchi [Thu, 29 May 2014 19:16:04 +0000 (12:16 -0700)]
Add read barriers for the weak roots in the JNI weak globals.

Bug: 12687968
Change-Id: Ic265a0e162e8cc9edc4ab7fa34f8afd5ce968d08

10 years agoQuick compiler: Method* as a reference
buzbee [Thu, 29 May 2014 19:37:25 +0000 (12:37 -0700)]
Quick compiler: Method* as a reference

This is the first of two CLs intended to fix up and make consistent
the handling of references in the Quick backend.  A sibling
CL c/96237 updates the runtime to treat Method* as a compressed
reference when stored.  This CL makes a similar change for the
backend.

As far as the general handling of in-register references, though,
the current Quick backend is not consistent even for non-Method*
references.  Sometimes they are treated as references, but other
times are handled as if they were 32-bit ints.  A subsequent CL
will deal with that issue.

Change-Id: I5591c5eea6cca6ed22208ab806fd38b959c9d03d

10 years agoMerge "AArch64: fixing some assertions."
Bill Buzbee [Thu, 29 May 2014 17:44:40 +0000 (17:44 +0000)]
Merge "AArch64: fixing some assertions."

10 years agoMerge "Improve tracking of memory locations in LVN."
Vladimir Marko [Thu, 29 May 2014 16:46:27 +0000 (16:46 +0000)]
Merge "Improve tracking of memory locations in LVN."

10 years agoMake use of sigchainlib for signal chaining for implicit checks
Dave Allison [Wed, 14 May 2014 22:41:25 +0000 (15:41 -0700)]
Make use of sigchainlib for signal chaining for implicit checks

This adds a preload library that overrides sigaction and sigprocmask
to implement signal chaining.  Signal chaining allows us to chain
any signal so that the ART runtime receives it before any signal
handler registered in native code by an application.  If the
ART signal handler doesn't want it, it will pass it on to the
user's handler.

ART uses signals for null pointer checks, stack overflow checks and
suspend points.

Also adds an OAT test to test this in isolation.

Change-Id: I9545f9f7343774c091410eb810504d9855fd399f

10 years agoImprove tracking of memory locations in LVN.
Vladimir Marko [Thu, 22 May 2014 11:09:08 +0000 (12:09 +0100)]
Improve tracking of memory locations in LVN.

Rewrite the tracking of values stored in memory to allow
recognizing the same value after storing it in memory and
loading it back to vreg. Drop reliance on value name
ordering for memory versioning in preparation for GVN.

Also fix a few minor issues in LVN.

Change-Id: Ifabe2d47d669d9ec43942cea6fd157e41af77ec8

10 years agoAArch64: fixing some assertions.
Matteo Franchin [Fri, 23 May 2014 16:32:52 +0000 (17:32 +0100)]
AArch64: fixing some assertions.

Fixing some assertions while attempting to get libartd.so to work.
Fixing also the shift logic in LoadBaseIndexed() and StoreBaseIndexed().
This commit only fixes a part of the assertion issues.

Change-Id: I473194d4260dd59a8ee6d73114429728c977ee0e

10 years agoMerge "Fix pass driver's dump_pass_list_ and print_pass_list_."
Vladimir Marko [Thu, 29 May 2014 09:55:11 +0000 (09:55 +0000)]
Merge "Fix pass driver's dump_pass_list_ and print_pass_list_."

10 years agoFix pass driver's dump_pass_list_ and print_pass_list_.
Vladimir Marko [Wed, 28 May 2014 20:41:35 +0000 (21:41 +0100)]
Fix pass driver's dump_pass_list_ and print_pass_list_.

The lists were allocated with new char[], so they should
have been held by std::unique_ptr<const char[]> rather than
std::unique_ptr<const char>. However, it's much cleaner with
std::string.

Change-Id: Ie7c604773272194345f5e6e3c4803c3a914edf99

10 years agoMerge "Move to dalvik.vm.lib.2 to force default to libart"
Brian Carlstrom [Wed, 28 May 2014 22:28:32 +0000 (22:28 +0000)]
Merge "Move to dalvik.vm.lib.2 to force default to libart"

10 years agoMove to dalvik.vm.lib.2 to force default to libart
Brian Carlstrom [Wed, 28 May 2014 21:56:39 +0000 (14:56 -0700)]
Move to dalvik.vm.lib.2 to force default to libart

Bug: 14298175

(cherry picked from commit b9c0c40e1f7eb38337919200f1fa328eaed92c1d)

Change-Id: I453d5391d757dcdac1f6fa3b1fb7bc85144177e1

10 years agoMerge "Fix DexFile.entries to return class names, not class descriptors"
Brian Carlstrom [Wed, 28 May 2014 21:52:50 +0000 (21:52 +0000)]
Merge "Fix DexFile.entries to return class names, not class descriptors"

10 years agoMerge "Use a heap allocated free buffer in MarkSweep::SweepArray()."
Hiroshi Yamauchi [Wed, 28 May 2014 21:27:36 +0000 (21:27 +0000)]
Merge "Use a heap allocated free buffer in MarkSweep::SweepArray()."

10 years agoUse a heap allocated free buffer in MarkSweep::SweepArray().
Hiroshi Yamauchi [Wed, 28 May 2014 21:04:59 +0000 (14:04 -0700)]
Use a heap allocated free buffer in MarkSweep::SweepArray().

This is for avoiding a large stack frame size.

Bug: 15278350
Change-Id: I63e92c2dd0ad7078fd74ee2392717dc44b431e9a

10 years agoFix DexFile.entries to return class names, not class descriptors
Brian Carlstrom [Wed, 28 May 2014 18:09:10 +0000 (11:09 -0700)]
Fix DexFile.entries to return class names, not class descriptors

Bug: 15141726

(cherry picked from commit f2f9daf9ba33b15abddfc8f8d03a708a7908b765)

Change-Id: I28ce8aae1713a9826a3373e1eb60e0edf267f64c

10 years agoMerge "ART: Print and dump functionalities per pass"
Ian Rogers [Wed, 28 May 2014 19:47:01 +0000 (19:47 +0000)]
Merge "ART: Print and dump functionalities per pass"

10 years agoMerge "Don't create bump pointer spaces unless necessary."
Mathieu Chartier [Wed, 28 May 2014 19:38:53 +0000 (19:38 +0000)]
Merge "Don't create bump pointer spaces unless necessary."

10 years agoMerge "x86_64: Support r8-r15, xmm8-xmm15 in assembler"
Bill Buzbee [Wed, 28 May 2014 19:32:41 +0000 (19:32 +0000)]
Merge "x86_64: Support r8-r15, xmm8-xmm15 in assembler"

10 years agoDon't create bump pointer spaces unless necessary.
Mathieu Chartier [Tue, 27 May 2014 17:10:11 +0000 (10:10 -0700)]
Don't create bump pointer spaces unless necessary.

We now only create these spaces if the foreground or background
collector is a moving collector.

Bug: 13564922
Bug: 14059466
Change-Id: I9f83c7881bc28423b78d5249c8e8854add91b60c

10 years agoMerge "Add read barriers to the weak roots in the intern table."
Hiroshi Yamauchi [Wed, 28 May 2014 19:20:28 +0000 (19:20 +0000)]
Merge "Add read barriers to the weak roots in the intern table."

10 years agoAdd read barriers to the weak roots in the intern table.
Hiroshi Yamauchi [Sat, 24 May 2014 02:58:15 +0000 (19:58 -0700)]
Add read barriers to the weak roots in the intern table.

Bug: 12687968
Change-Id: I424f1df76a7e3d7154fb9f3c951c973d19bd640f

10 years agoMerge "Allocate large enough space bitmaps for malloc spaces."
Hiroshi Yamauchi [Wed, 28 May 2014 18:04:31 +0000 (18:04 +0000)]
Merge "Allocate large enough space bitmaps for malloc spaces."

10 years agoMerge "Add option to specify compiler executable."
Brian Carlstrom [Wed, 28 May 2014 17:34:38 +0000 (17:34 +0000)]
Merge "Add option to specify compiler executable."

10 years agoMerge "x86_64: Add 64-bit version of instructions in asm"
Bill Buzbee [Wed, 28 May 2014 17:33:50 +0000 (17:33 +0000)]
Merge "x86_64: Add 64-bit version of instructions in asm"

10 years agoAnother workaround for stack overflow issue with clang
Sebastien Hertz [Wed, 28 May 2014 17:28:31 +0000 (19:28 +0200)]
Another workaround for stack overflow issue with clang

Bug: 14882674
Change-Id: I465fda533714021b39b847afe89e454758646b47

10 years agox86_64: Support r8-r15, xmm8-xmm15 in assembler
Dmitry Petrochenko [Wed, 30 Apr 2014 06:40:19 +0000 (13:40 +0700)]
x86_64: Support r8-r15, xmm8-xmm15 in assembler

Added REX support. The TARGET_REX_SUPPORT should be used during build.

Change-Id: I82b457ff5085c8192ad873923bd939fbb91022ce
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoMerge "Fix method tracing's handling of shadow frames on startup."
Jeff Hao [Wed, 28 May 2014 15:42:18 +0000 (15:42 +0000)]
Merge "Fix method tracing's handling of shadow frames on startup."

10 years agoAdd option to specify compiler executable.
Tsu Chiang Chuang [Thu, 22 May 2014 17:22:25 +0000 (10:22 -0700)]
Add option to specify compiler executable.

Change-Id: I973da5e74be5a62461caacbc708288fb95e1b99b

10 years agoFix method tracing's handling of shadow frames on startup.
Jeff Hao [Wed, 28 May 2014 01:25:47 +0000 (18:25 -0700)]
Fix method tracing's handling of shadow frames on startup.

Bug: 15142926
Change-Id: I7d7896ec3f62f46a43578f536292db6e219d83f0

10 years agoMerge "Fix the problem of not shutting down the profiler in ART properly"
Ian Rogers [Tue, 27 May 2014 23:00:36 +0000 (23:00 +0000)]
Merge "Fix the problem of not shutting down the profiler in ART properly"

10 years agoMerge "Set the type of a RegStorage correctly"
Bill Buzbee [Tue, 27 May 2014 21:49:36 +0000 (21:49 +0000)]
Merge "Set the type of a RegStorage correctly"

10 years agoMerge "ART: Fix sharpening across dex files"
Andreas Gampe [Tue, 27 May 2014 21:47:10 +0000 (21:47 +0000)]
Merge "ART: Fix sharpening across dex files"

10 years agoMerge "Art compiler: remove unnecessary sqrt call"
buzbee [Tue, 27 May 2014 21:43:47 +0000 (21:43 +0000)]
Merge "Art compiler: remove unnecessary sqrt call"

10 years agoART: Fix sharpening across dex files
Andreas Gampe [Tue, 27 May 2014 21:43:03 +0000 (14:43 -0700)]
ART: Fix sharpening across dex files

Bug: 15196336
Change-Id: If4301bcddce0ddbc60bb33403e4a76eed35bcb2f

10 years agoArt compiler: remove unnecessary sqrt call
buzbee [Tue, 27 May 2014 20:59:04 +0000 (13:59 -0700)]
Art compiler: remove unnecessary sqrt call

For reasons lost in the mists of time, the Dalvik JIT tested
the results of an inlined sqrt for NaN on Arm targets, and then
called an out-of-line routine to recompute if true.  The Quick
compiler inherited this behavior.  It is not necessary, and the CL
purges it (along with the out-of-line sqrt entrypoint).

Change-Id: I8c8fa6feacf9b7c3b9e190dfc6f728932fd948c6

10 years agoMerge "Quick compiler: generalize NarrowRegLoc()"
buzbee [Tue, 27 May 2014 20:18:06 +0000 (20:18 +0000)]
Merge "Quick compiler: generalize NarrowRegLoc()"

10 years agoSet the type of a RegStorage correctly
Mark Mendell [Tue, 27 May 2014 19:52:21 +0000 (15:52 -0400)]
Set the type of a RegStorage correctly

This will be used as a FP value, so call the right function to create
the RegStorage.

Change-Id: I2bd832746afac509d20f195a7770f2fbd215cbd7
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agox86_64: Add 64-bit version of instructions in asm
Dmitry Petrochenko [Mon, 19 May 2014 21:03:46 +0000 (04:03 +0700)]
x86_64: Add 64-bit version of instructions in asm

Add missed 64-bit versions of instructions.

Change-Id: I8151484d909dff487cb7e521494a0be249a42214
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoART: Print and dump functionalities per pass
Jean Christophe Beyler [Tue, 29 Apr 2014 20:42:08 +0000 (13:42 -0700)]
ART: Print and dump functionalities per pass

LOG is a great logging tool but sometimes a pass has some debugging text it
 want to be able to turn on/off easily.

By going via a print_pass flag, we can actually turn it on/off easily per pass
 when debugging/instrumenting.

- Added a pass printer to help debug messages for future passes.
- Added a print_pass flag in CompilationUnit to filter out messages.

At the same time, did a similar system for dumping the CFG.

- Also moved some API into public from protected.

Change-Id: Ie0e89a8fc773e8583f3e4ffd6e4bd2eebdbb2bf4
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
10 years agoMerge "Workaround apparent clang compilation issue"
Brian Carlstrom [Tue, 27 May 2014 18:39:03 +0000 (18:39 +0000)]
Merge "Workaround apparent clang compilation issue"

10 years agoWorkaround apparent clang compilation issue
Brian Carlstrom [Tue, 27 May 2014 18:14:12 +0000 (11:14 -0700)]
Workaround apparent clang compilation issue

Bug: 15014252

(cherry picked from commit ec80e7e1506e7099210399626b46cb8183534e70)

Change-Id: I159d66764749e41d2a97e0912f796085b4fdb6e1

10 years agoMerge "AArch64: Add suspend check in managed code."
Bill Buzbee [Tue, 27 May 2014 18:08:40 +0000 (18:08 +0000)]
Merge "AArch64: Add suspend check in managed code."

10 years agoMerge "ART: Better SSA Allocation when recreating SSA"
Bill Buzbee [Tue, 27 May 2014 18:08:25 +0000 (18:08 +0000)]
Merge "ART: Better SSA Allocation when recreating SSA"

10 years agoMerge "AArch64: Enable FLOAT and DOUBLE opcodes"
Bill Buzbee [Tue, 27 May 2014 18:08:11 +0000 (18:08 +0000)]
Merge "AArch64: Enable FLOAT and DOUBLE opcodes"

10 years agoFix the problem of not shutting down the profiler in ART properly
Wei Jin [Wed, 21 May 2014 23:07:40 +0000 (16:07 -0700)]
Fix the problem of not shutting down the profiler in ART properly

This CL fixes the problem of not saving the last batch of profile data to the
external file when the runtime exits before the end of the current iteration of
profile sampling. This problem was fixed by shutting down the ART profiler
when the runtime exits and allowing the profiler to write the last batch of
data even it was signaled to shut down. This CL increases the precision of
profile data and fixes the bug that no data is saved if the duration of profile
sampling specified by VM arguments (by default 20 seconds) is longer than the
length of a single execution because the profiler was never signaled when the
runtime exits.

Change-Id: I7cc4805b7e2a22a990d04a5b9724ad1d931d7152
Signed-off-by: Wei Jin <wejin@google.com>
10 years agoART: Better SSA Allocation when recreating SSA
Jean Christophe Beyler [Thu, 1 May 2014 22:36:22 +0000 (15:36 -0700)]
ART: Better SSA Allocation when recreating SSA

The SSA calculation is not allocation friendly. This makes the
SSARepresentation remember how much is allocated and not reallocate
if SSA should be recalculated.

Also added some allocation friendly code for the dominance code.

Change-Id: Icd5586b7e2fefae8e1535975ab400b1ca95b500f
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>