OSDN Git Service

android-x86/art.git
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 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 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>
10 years agoAArch64: Enable FLOAT and DOUBLE opcodes
Serban Constantinescu [Fri, 23 May 2014 16:38:18 +0000 (17:38 +0100)]
AArch64: Enable FLOAT and DOUBLE opcodes

This patch enables all the DOUBLE and FLOAT opcodes except for REM ones.
It has been tested and passes all Dalvik tests except for:

failed: 018-stack-overflow[pid=1076]
failed: 107-int-math2[pid=1593]

Change-Id: I581f219bde354e3402aa3ad6e24ef15566da5f78
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
10 years agoMerge "Fix x86_64 test failures."
Brian Carlstrom [Mon, 26 May 2014 16:57:58 +0000 (16:57 +0000)]
Merge "Fix x86_64 test failures."

10 years agoFix x86_64 test failures.
Nicolas Geoffray [Mon, 26 May 2014 13:01:46 +0000 (14:01 +0100)]
Fix x86_64 test failures.

Change-Id: I97b3d1755d2e205ca7423248a2af37f1875d5116

10 years agoMerge "Add a linear scan register allocator to the optimizing compiler."
Nicolas Geoffray [Mon, 26 May 2014 10:53:44 +0000 (10:53 +0000)]
Merge "Add a linear scan register allocator to the optimizing compiler."

10 years agoAdd a linear scan register allocator to the optimizing compiler.
Nicolas Geoffray [Thu, 22 May 2014 11:50:17 +0000 (12:50 +0100)]
Add a linear scan register allocator to the optimizing compiler.

This is a "by-the-book" implementation. It currently only deals
with allocating registers, with no hint optimizations.

The changes remaining to make it functional are:
- Allocate spill slots.
- Resolution and placements of Move instructions.
- Connect it to the code generator.

Change-Id: Ie0b2f6ba1b98da85425be721ce4afecd6b4012a4

10 years agoMerge "Make DexFile content read only before running DexFileVerifier"
Brian Carlstrom [Mon, 26 May 2014 05:44:55 +0000 (05:44 +0000)]
Merge "Make DexFile content read only before running DexFileVerifier"

10 years agoMake DexFile content read only before running DexFileVerifier
Brian Carlstrom [Sun, 25 May 2014 23:08:51 +0000 (16:08 -0700)]
Make DexFile content read only before running DexFileVerifier

(cherry picked from commit 98725444129efe2b1b51c87740860caadaef2bf7)

Change-Id: I18a932b2f19d44b820232f4d4e9c358df20ab364

10 years agoAArch64: Add suspend check in managed code.
Zheng Xu [Fri, 23 May 2014 03:52:42 +0000 (11:52 +0800)]
AArch64: Add suspend check in managed code.

TODO: Remove x19 in the frame in runtime, generic jni, compiled jni.

Change-Id: Ibdc292c9e7adb3a5d3eff353c22f60ffc101f549

10 years agoMerge "Add TARGET_2ND_ARCH support for dump-oat-boot"
Brian Carlstrom [Sun, 25 May 2014 23:30:49 +0000 (23:30 +0000)]
Merge "Add TARGET_2ND_ARCH support for dump-oat-boot"

10 years agoQuick compiler: generalize NarrowRegLoc()
buzbee [Sun, 25 May 2014 22:10:52 +0000 (15:10 -0700)]
Quick compiler: generalize NarrowRegLoc()

Some of the RegStorage utilites (DoubleToLowSingle(),
DoubleToHighSingle(), etc.) worked only for targets which
which treat double precision registers as a pair of aliased
single precision registers.

This CL elminates those utilities, and replaces them with
a new RegisterInfo utility that will search an aliased register
set and return the member matching the required storage
configuration (if it exists).

Change-Id: Iff5de10f467d20a56e1a89df9fbf30d1cf63c240

10 years agoAdd TARGET_2ND_ARCH support for dump-oat-boot
Brian Carlstrom [Sun, 25 May 2014 21:38:17 +0000 (14:38 -0700)]
Add TARGET_2ND_ARCH support for dump-oat-boot

Change-Id: I87f1742f401af37893d336074c53dee92993b769

10 years agoMerge "Fix ExtractToMemMap to show original zip file name in ashmem"
Brian Carlstrom [Sun, 25 May 2014 21:14:29 +0000 (21:14 +0000)]
Merge "Fix ExtractToMemMap to show original zip file name in ashmem"

10 years agoMerge "x86_64: Rebase on top of "64-bit temp register support""
Bill Buzbee [Sat, 24 May 2014 16:01:22 +0000 (16:01 +0000)]
Merge "x86_64: Rebase on top of "64-bit temp register support""

10 years agoMerge "Implement all vector instructions for X86"
Bill Buzbee [Sat, 24 May 2014 15:35:09 +0000 (15:35 +0000)]
Merge "Implement all vector instructions for X86"

10 years agoImplement all vector instructions for X86
Mark Mendell [Thu, 22 May 2014 13:52:36 +0000 (09:52 -0400)]
Implement all vector instructions for X86

Add X86 code generation for the vector operations.  Added support for
X86 disassembler for the new instructions.

Change-Id: I72b48f5efa3a516a16bb1dd4bdb5c9270a8db53a
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Quick compiler: fix register clobbering."
buzbee [Sat, 24 May 2014 13:15:42 +0000 (13:15 +0000)]
Merge "Quick compiler: fix register clobbering."

10 years agoQuick compiler: fix register clobbering.
buzbee [Fri, 23 May 2014 23:04:08 +0000 (16:04 -0700)]
Quick compiler: fix register clobbering.

Ensure all aliased children of a register set are clobbered
when any member is clobbered.  Additionally, use a clobbering
mask to avoid clobbering non-overlapping siblings.

Change-Id: Ic0d88a30f3e5b7a359396f6541d602739fa3124a

10 years agoAllocate large enough space bitmaps for malloc spaces.
Hiroshi Yamauchi [Sat, 24 May 2014 04:27:30 +0000 (21:27 -0700)]
Allocate large enough space bitmaps for malloc spaces.

Fix a bug that we don't allocate space bitmaps for a malloc space that
are large enough to cover the non-growth-limited capacity.

Change-Id: I2e99a70eb8cddc284dffafa2d2afcc2f0c9074c7