OSDN Git Service
Bill Buzbee [Wed, 23 Jun 2010 23:36:50 +0000 (16:36 -0700)]
Jit: Fix for
2793725 SIGSEGV in JIT code cache
r8 was missing from the handler clobber set, and is stepped on by
the handlers for inline string compareto and indexof.
Change-Id: I6e5d6f46b595d638863b27edcc8718157a3e411f
Carl Shapiro [Wed, 23 Jun 2010 21:28:14 +0000 (14:28 -0700)]
Merge "Make the copying collector build again." into dalvik-dev
Carl Shapiro [Wed, 23 Jun 2010 21:25:07 +0000 (14:25 -0700)]
Make the copying collector build again.
Change-Id: I248babd7062d9c1dccabdcfcd81b5b06e06b314e
Andy McFadden [Tue, 22 Jun 2010 18:01:20 +0000 (11:01 -0700)]
Relocate OpCodeNames.[ch].
The JIT was pulling it out of the dexdump directory, which is Just
Plain Wrong[tm]. Now it's part of libdex, for all to enjoy.
Change-Id: Ic1e4c981eb2d70ccc3c841ceb5a54f4f77af2008
Andy McFadden [Tue, 22 Jun 2010 17:34:21 +0000 (10:34 -0700)]
Fix dexdump.
It was printing bad output or crashing on the -wide-volatile instructions
generated by "dx". This inverts the "else" clause, treating new-array
and instance-of as the special case.
Change-Id: I1717508d2e41cdc9a2396e2eaa215d7f9f8ac21b
Barry Hayes [Fri, 11 Jun 2010 23:12:47 +0000 (16:12 -0700)]
Put wrappers on all stores of Object pointers into heap Objects.
Also:
Changed ++ loops to [i] loops where I'm touching.
Added some asserts.
Added dvmHeapSourceContainsAddress
Added dvmIsValidObjectAddress
Change-Id: I6586688246064aecabb1e22e1dca276fecee7795
Andy McFadden [Mon, 21 Jun 2010 20:50:13 +0000 (13:50 -0700)]
Merge "Fix ENFORCE_READ_ONLY mode for LinearAlloc." into dalvik-dev
Andy McFadden [Mon, 21 Jun 2010 19:58:20 +0000 (12:58 -0700)]
Fix ENFORCE_READ_ONLY mode for LinearAlloc.
Just need to wrap a memset call that zeroes out the interface indices
before the class is marked GC-able.
Change-Id: I734985f668d224f674d95faa4854db4d4978a4d0
Carl Shapiro [Mon, 21 Jun 2010 19:51:25 +0000 (12:51 -0700)]
Merge "Clean-up the use of barriers in the synchronization code." into dalvik-dev
Andy McFadden [Mon, 21 Jun 2010 18:14:49 +0000 (11:14 -0700)]
Merge "Fiddle with SMP_DMB." into dalvik-dev
The Android Open Source Project [Mon, 21 Jun 2010 18:08:33 +0000 (11:08 -0700)]
am
65c3e699: am
577198ac: merge from froyo-plus-aosp
Merge commit '
65c3e6993c33115931d8a2e27010d14f9bc0d42c' into dalvik-dev
* commit '
65c3e6993c33115931d8a2e27010d14f9bc0d42c':
New implementation for java.lang.Runtime's availableProcessors().
Carl Shapiro [Mon, 21 Jun 2010 18:04:33 +0000 (11:04 -0700)]
Clean-up the use of barriers in the synchronization code.
* Use a releasing store to update the lockword when inflating.
* Remove the barrier following the interrupted flag update. The
mutex release that follows should have the same effect.
Change-Id: I9c8b31769e5767a9748d01278cf01be9678de2a5
The Android Open Source Project [Mon, 21 Jun 2010 18:02:29 +0000 (11:02 -0700)]
am
577198ac: merge from froyo-plus-aosp
Merge commit '
577198ac632e57ac327555443cb0185d45ed3250'
* commit '
577198ac632e57ac327555443cb0185d45ed3250':
New implementation for java.lang.Runtime's availableProcessors().
The Android Open Source Project [Mon, 21 Jun 2010 17:59:37 +0000 (10:59 -0700)]
merge from froyo-plus-aosp
Change-Id: I42dc1a2946b44b870f4fbf21522c20974e8dfd39
Barry Hayes [Tue, 15 Jun 2010 23:17:37 +0000 (16:17 -0700)]
Remove the "allocFlags" parameter from dvmCreateStringFromCstr and
dvmCreateStringFromCstrAndLength.
The only valid argument would be ALLOC_DEFAULT, so drop the parameter.
Change-Id: Idf469ef0ec12b0743792fc525e0c53fc7486eab6
Andy McFadden [Fri, 18 Jun 2010 21:04:12 +0000 (14:04 -0700)]
Fiddle with SMP_DMB.
This changes it from a macro that takes an argument to a simpler
macro that is named explicitly by the 8 instructions that want it.
Change-Id: Ie17a9722823d590851776b6b9b057eadf22fa6a8
Andy McFadden [Thu, 17 Jun 2010 19:36:00 +0000 (12:36 -0700)]
Add opcodes for volatile field accesses
This adds instructions for {i,s}{get,put}{,-object}-volatile, for a
total of eight new instructions.
On SMP systems, these instructions will be substituted in for existing
field access instructions, either by dexopt or during just-in-time
verification. Unlike the wide-volatile instructions, these will not be
used at all when the VM is not built for SMP.
(Ideally we'd omit the volatile instruction implementations entirely on
non-SMP builds, but that requires a little work in gen-mterp.py.)
The change defines and implements the opcodes and support methods, but
does not cause them to be used.
Also, changed dvmQuasiAtomicRead64's argument to be const.
Change-Id: I9e44fe881e87f27aa41f6c6e898ec4402cb5493e
Andy McFadden [Fri, 18 Jun 2010 16:54:31 +0000 (09:54 -0700)]
Merge "Dalvik SMP update" into dalvik-dev
Andy McFadden [Wed, 16 Jun 2010 15:32:04 +0000 (08:32 -0700)]
Dalvik SMP update
Fix some SMP correctness issues in the VM:
- Correct AtomicCache implementation, inserting barriers where needed
and correcting existing usage.
- Emphasize that String startup isn't expected to be reentrant, and
use atomic ops to ensure that we explode if anybody tries it.
- Use 64-bit quasiatomic ops to manage the "last activity" timer in
JDWP. (Also, provide some documented but unimplemented behavior.)
- Updated the volatile operations in sun.misc.Unsafe to include
appropriate barriers.
(This does not purport to correct all SMP issues, just some of the
more obvious ones.)
Change-Id: I06957ebcf2724fe7a228b30d00194b9b4808fae0
Elliott Hughes [Thu, 17 Jun 2010 21:41:23 +0000 (14:41 -0700)]
Merge "Move the implementation of JNIHelp.h's FileDescriptor helpers into JNIHelp.c." into dalvik-dev
Elliott Hughes [Thu, 17 Jun 2010 20:19:01 +0000 (13:19 -0700)]
Move the implementation of JNIHelp.h's FileDescriptor helpers into JNIHelp.c.
These functions used to be declared in dalvik/ but defined in libcore/, which
was a layering violation but not important. It now stands in the way of
switching FileDescriptor's JNI over to C++, so out it goes.
There's a functional change here: the libcore code was going out of its way
to ensure that FileDescriptor's <clinit> was being invoked, but it's not
obvious that there was any reason for this: the static initializers just set
the err/in/out fields' descriptor fields to the appropriate integers.
A separate change rewrites FileDescriptor's JNI in terms of JNIHelp.h's API,
so it no longer needs to know anything about FileDescriptor itself. (Amusingly,
the original motivation for switching to C++ was to rewrite code that I've now
simply deleted.)
Change-Id: I5d79e5b91835183c21a6b7a1545178d9d93f4b69
Andy McFadden [Thu, 17 Jun 2010 20:04:43 +0000 (13:04 -0700)]
Merge "Implement 64-bit atomic ops for ARMv6K+." into dalvik-dev
Andy McFadden [Wed, 16 Jun 2010 23:28:07 +0000 (16:28 -0700)]
Implement 64-bit atomic ops for ARMv6K+.
This implements the "quasi-atomic" 64-bit operations using LDREXD/STREXD
when those instructions are available (e.g. our ARMv7-A devices).
Also, folded in an expanded version of AtomicSpeed.c that has been
floating around my hard drive for a while.
(This time, without Condition Code Roulette.)
Change-Id: I90803794994373e2c620be423c081f0da4469fdf
Brian Carlstrom [Thu, 17 Jun 2010 18:47:32 +0000 (11:47 -0700)]
Revert "Implement 64-bit atomic ops for ARMv6K+."
This reverts commit
05ce82aa4685beb59d37b4ef655ff2750808aca2.
Andy McFadden [Wed, 16 Jun 2010 23:28:07 +0000 (16:28 -0700)]
Implement 64-bit atomic ops for ARMv6K+.
This implements the "quasi-atomic" 64-bit operations using LDREXD/STREXD
when those instructions are available (e.g. our ARMv7-A devices).
Also, folded in an expanded version of AtomicSpeed.c that has been
floating around my hard drive for a while.
Change-Id: I2d10c60ce2bce846218c3ac6dc22a54bc6627919
Andy McFadden [Mon, 14 Jun 2010 22:24:39 +0000 (15:24 -0700)]
Atomic op cleanup.
Replaced VM-local macros for barrier and CAS calls with the actual
versions provided by cutils.
ATOMIC_CMP_SWAP(addr,old,new) --> android_atomic_release_cas(old,new,addr)
MEM_BARRIER --> ANDROID_MEMBAR_FULL
Renamed android_quasiatomic* to dvmQuasiAtomic*.
Didn't change how anything works, just the names.
Change-Id: I8c68f28e1f7c9cb832183e0918d097dfe6a2cac8
Ying Wang [Tue, 15 Jun 2010 22:55:32 +0000 (15:55 -0700)]
am
90788e58: am
cd401135: am
ff9aa9bf: am
9a2b2f76: Don\'t build dx if it\'s an app-only build.
Merge commit '
90788e58e5d1ca2475fe795f3274ddab6ff055a3' into dalvik-dev
* commit '
90788e58e5d1ca2475fe795f3274ddab6ff055a3':
Don't build dx if it's an app-only build.
Ying Wang [Tue, 15 Jun 2010 22:48:43 +0000 (15:48 -0700)]
am
cd401135: am
ff9aa9bf: am
9a2b2f76: Don\'t build dx if it\'s an app-only build.
Merge commit '
cd401135df4c66b6bfe2bfd3c2af125d103c098a'
* commit '
cd401135df4c66b6bfe2bfd3c2af125d103c098a':
Don't build dx if it's an app-only build.
Ying Wang [Tue, 15 Jun 2010 22:23:41 +0000 (15:23 -0700)]
am
ff9aa9bf: am
9a2b2f76: Don\'t build dx if it\'s an app-only build.
Merge commit '
ff9aa9bfadcd4b17b078dfad65e0d700ea8c237a' into gingerbread-plus-aosp
* commit '
ff9aa9bfadcd4b17b078dfad65e0d700ea8c237a':
Don't build dx if it's an app-only build.
Ying Wang [Tue, 15 Jun 2010 22:21:26 +0000 (15:21 -0700)]
am
9a2b2f76: Don\'t build dx if it\'s an app-only build.
Merge commit '
9a2b2f7678128a5385c83ea393d73cf3cdfcbe46' into gingerbread
* commit '
9a2b2f7678128a5385c83ea393d73cf3cdfcbe46':
Don't build dx if it's an app-only build.
Carl Shapiro [Tue, 15 Jun 2010 21:59:11 +0000 (14:59 -0700)]
Merge "Add a context argument to the visitor callback." into dalvik-dev
The Android Open Source Project [Tue, 15 Jun 2010 21:46:37 +0000 (14:46 -0700)]
merge from open-source master
Change-Id: I919a5dd1cc8d615c2d9224ff08e849394ee84df0
Carl Shapiro [Tue, 15 Jun 2010 21:40:20 +0000 (14:40 -0700)]
Add a context argument to the visitor callback.
Change-Id: I1e49d66043ebe8cbc9cbf5edf167c37bc52fad48
Elliott Hughes [Tue, 15 Jun 2010 21:39:13 +0000 (14:39 -0700)]
resolved conflicts for merge of
6894177c to dalvik-dev
Change-Id: I103557faf107a9663ce6b04227db0f2f993e5830
Ying Wang [Tue, 15 Jun 2010 21:27:30 +0000 (14:27 -0700)]
am
9a2b2f76: Don\'t build dx if it\'s an app-only build.
Merge commit '
9a2b2f7678128a5385c83ea393d73cf3cdfcbe46' into froyo-plus-aosp
* commit '
9a2b2f7678128a5385c83ea393d73cf3cdfcbe46':
Don't build dx if it's an app-only build.
Elliott Hughes [Tue, 15 Jun 2010 20:34:30 +0000 (13:34 -0700)]
Remove run-core-tests.sh.
This script is always broken. Anyone wanting to run tests on a sim build should
use "vogar --mode sim" for one-offs or one of the dalvik-prebuild scripts to
run large batches.
Change-Id: Ie6b6a918d891589b071d4f07c766305561d80543
Mikael Ohlson [Tue, 23 Mar 2010 13:06:19 +0000 (14:06 +0100)]
New implementation for java.lang.Runtime's availableProcessors().
This patch adds a native implementation for availableProcessors(),
replacing the hardcoded "always return 1" implementation.
It uses sysconf(_SC_NPROCESSORS_ONLN) to get the number of online
processors.
Signed-off-by: Christian Bejram <christian.bejram@stericsson.com>
Andy McFadden [Mon, 14 Jun 2010 23:07:10 +0000 (16:07 -0700)]
Fix test 059.
Looks like somebody fixed Timer so that it creates a non-daemon thread
by default. Specify that the Timer should be a daemon so that the
test can exit before the watchdog fires.
Change-Id: I554f005e7e664b08cefa1731e48c067d05310ebb
Andy McFadden [Tue, 4 May 2010 22:02:32 +0000 (15:02 -0700)]
Forward progress on verifier.
Promoted VerifierData to a more prominent role in passing state around.
This will (a) allow us to pass fewer explicit arguments around in the
core of the verifier, and (b) make it easier to maintain some fancier
data structures that we will need shortly.
Made use of dexGetInstrOrTableWidthAbs() in a couple of places where
we were still explicitly calculating the sizes of NOP data chunks.
Converted some things from int to size_t.
Change-Id: I206f588bf1fc116a9d1f50fb631a9af33479b291
Andy McFadden [Mon, 14 Jun 2010 21:51:01 +0000 (14:51 -0700)]
am
48184679: am
c12b0da0: am
e0b23da8: Merge "Tweak sanity check." into gingerbread
Merge commit '
48184679e8caa9d4c637187cd94f59d38929ac7a' into dalvik-dev
* commit '
48184679e8caa9d4c637187cd94f59d38929ac7a':
Tweak sanity check.
Andy McFadden [Mon, 14 Jun 2010 21:44:13 +0000 (14:44 -0700)]
am
c12b0da0: am
e0b23da8: Merge "Tweak sanity check." into gingerbread
Merge commit '
c12b0da035901923893f50663c48cb4efd390712'
* commit '
c12b0da035901923893f50663c48cb4efd390712':
Tweak sanity check.
Andy McFadden [Mon, 14 Jun 2010 20:41:09 +0000 (13:41 -0700)]
am
e0b23da8: Merge "Tweak sanity check." into gingerbread
Merge commit '
e0b23da8dfde8ed232bb03887762e580e0c4e04c' into gingerbread-plus-aosp
* commit '
e0b23da8dfde8ed232bb03887762e580e0c4e04c':
Tweak sanity check.
Andy McFadden [Mon, 14 Jun 2010 20:39:32 +0000 (13:39 -0700)]
Merge "Tweak sanity check." into gingerbread
Andy McFadden [Mon, 14 Jun 2010 20:37:49 +0000 (13:37 -0700)]
Tweak sanity check.
Somebody managed to overrun this.
Change-Id: Ibf7d6a9831d20ce4093fae8e67c835257b2c51a1
The Android Open Source Project [Mon, 14 Jun 2010 18:33:59 +0000 (11:33 -0700)]
am
a224c03a: am
36b3b873: merge from froyo-plus-aosp
Merge commit '
a224c03a19423e9b2827dddd53fde5535da7b8ef' into dalvik-dev
* commit '
a224c03a19423e9b2827dddd53fde5535da7b8ef':
Fix for x86-atom/CALLABI.S to handle failure for android.jni.cts.JniStaticTest#test_returnChar. CALLABI.S was not returning unsigned shorts correctly.
The Android Open Source Project [Mon, 14 Jun 2010 18:28:35 +0000 (11:28 -0700)]
am
36b3b873: merge from froyo-plus-aosp
Merge commit '
36b3b873fdd85cbcd89b158f5e211cfa934f12a1'
* commit '
36b3b873fdd85cbcd89b158f5e211cfa934f12a1':
Fix for x86-atom/CALLABI.S to handle failure for android.jni.cts.JniStaticTest#test_returnChar. CALLABI.S was not returning unsigned shorts correctly.
The Android Open Source Project [Mon, 14 Jun 2010 18:24:54 +0000 (11:24 -0700)]
merge from froyo-plus-aosp
Change-Id: Ie16c2a8d6465fb0b2d2a06027b29a6bbe4ff9d16
Carl Shapiro [Sat, 12 Jun 2010 02:36:12 +0000 (19:36 -0700)]
Remove commented out logging code.
Change-Id: I81dcd8441391c4c40b6e4ba61efd3634934b930c
Elliott Hughes [Fri, 11 Jun 2010 23:13:15 +0000 (16:13 -0700)]
Consistently use strerror(3) rather than reporting raw errno values.
We were doing the decoding almost everywhere, leaving just this handful of
places to fix.
Change-Id: I76100c213ded50e544eb6f740fea0b1633068b92
Ying Wang [Fri, 11 Jun 2010 20:54:13 +0000 (13:54 -0700)]
Don't build dx if it's an app-only build.
Change-Id: I609f21e78b7bbac9af25ac1bc6bd5d3941ea462a
Carl Shapiro [Fri, 11 Jun 2010 19:19:24 +0000 (12:19 -0700)]
Remove some stale comments and code.
Change-Id: Iad76c9a4168195461110af736af2e98f5025e6d4
Andy McFadden [Fri, 11 Jun 2010 17:55:29 +0000 (10:55 -0700)]
Andy McFadden [Fri, 11 Jun 2010 17:49:11 +0000 (10:49 -0700)]
Andy McFadden [Fri, 11 Jun 2010 17:47:28 +0000 (10:47 -0700)]
am
891416ef: Update armv7-a-neon.
Merge commit '
891416ef725a5d9e64e5a1422f65394068c6e106' into gingerbread-plus-aosp
* commit '
891416ef725a5d9e64e5a1422f65394068c6e106':
Update armv7-a-neon.
Andy McFadden [Fri, 11 Jun 2010 17:43:37 +0000 (10:43 -0700)]
Update armv7-a-neon.
An externally-contributed fix was not able to update the armv7-a-neon
output files, because they don't exist in the open-source repository.
All I did was re-run rebuild.sh.
Change-Id: I3bf436ee8c0f57deb033815fd07f1a531ce851a1
Carl Shapiro [Fri, 11 Jun 2010 17:41:13 +0000 (10:41 -0700)]
Merge "Eliminate pointer tagging on the reference operation queue." into dalvik-dev
Carl Shapiro [Thu, 10 Jun 2010 22:17:00 +0000 (15:17 -0700)]
Eliminate pointer tagging on the reference operation queue.
Tags are unconditionally added before references are added to the
reference queue. This tag is checked when a reference is removed from
the queue and subsequently cleared. There are no other observers of
this tag and so it is equivalent to not tag the reference in the first
place. The original intent may have been to tag the references in
different ways. Removing this code simplifies reference tracing.
Change-Id: Idb18929e601acdd049b4a92ebf588f3f5febb75c
The Android Open Source Project [Fri, 11 Jun 2010 16:33:03 +0000 (09:33 -0700)]
merge from open-source master
Change-Id: I5eed9fe77b936312b227cca4b7f3a9da2f5bf694
jeffhao [Thu, 10 Jun 2010 21:30:54 +0000 (14:30 -0700)]
Added escape analysis and scalar replacement of arrays in dx.
Change-Id: Ic7a0e8042860af8ee167444f0b9f92198b1c28b2
Andy McFadden [Thu, 10 Jun 2010 17:30:03 +0000 (10:30 -0700)]
am
cd6e05e8: am
41c2b663: am
805800d7: Merge "Up the version to 1.3.0." into kraken
Merge commit '
cd6e05e8b25410a008d3d7e5fc9b6de7d2c4d4c3' into dalvik-dev
* commit '
cd6e05e8b25410a008d3d7e5fc9b6de7d2c4d4c3':
Up the version to 1.3.0.
Andy McFadden [Thu, 10 Jun 2010 17:24:47 +0000 (10:24 -0700)]
am
41c2b663: am
805800d7: Merge "Up the version to 1.3.0." into kraken
Andy McFadden [Thu, 10 Jun 2010 17:23:50 +0000 (10:23 -0700)]
am
805800d7: Merge "Up the version to 1.3.0." into kraken
Andy McFadden [Thu, 10 Jun 2010 17:22:29 +0000 (10:22 -0700)]
Merge "Up the version to 1.4.0." into dalvik-dev
Andy McFadden [Thu, 10 Jun 2010 17:22:17 +0000 (10:22 -0700)]
Merge "Up the version to 1.3.0." into kraken
Andy McFadden [Thu, 10 Jun 2010 05:32:09 +0000 (22:32 -0700)]
Up the version to 1.4.0.
This makes it one more than the last one.
Change-Id: I7227f8c08dab5cec8f878a888382a851339fccde
Andy McFadden [Thu, 10 Jun 2010 05:31:32 +0000 (22:31 -0700)]
Up the version to 1.3.0.
Make it one up from froyo.
Change-Id: I9f5170be0ab5f301e994f10300d81f60a01335f7
Johnnie Birch [Wed, 9 Jun 2010 22:03:27 +0000 (15:03 -0700)]
Fix for x86-atom/CALLABI.S to handle failure for android.jni.cts.JniStaticTest#test_returnChar. CALLABI.S was not returning unsigned shorts correctly.
Change-Id: Ia6b443d41a96b0f65739c0b16a0ddb39f7eb33fa
Carl Shapiro [Wed, 9 Jun 2010 22:17:47 +0000 (15:17 -0700)]
Merge "Treat warnings as errors for ARM target builds." into dalvik-dev
Carl Shapiro [Wed, 9 Jun 2010 22:10:16 +0000 (15:10 -0700)]
Merge "Rename the heap virtual memory allocation to "dalvik-heap"." into dalvik-dev
buzbee [Wed, 9 Jun 2010 21:43:27 +0000 (14:43 -0700)]
Merge "Jit: Add parenthesis to fix expression" into dalvik-dev
buzbee [Wed, 9 Jun 2010 21:22:50 +0000 (14:22 -0700)]
Jit: Add parenthesis to fix expression
Yay compiler warnings. Boo failing to notice compiler warnings.
Change-Id: I8ec85e2898b1675105ebd593f2ff47a06e425802
Carl Shapiro [Wed, 9 Jun 2010 21:23:25 +0000 (14:23 -0700)]
Treat warnings as errors for ARM target builds.
Change-Id: Icbc4867a001f33abebb759ddcc69dd877950b69a
Carl Shapiro [Wed, 9 Jun 2010 21:15:09 +0000 (14:15 -0700)]
Rename the heap virtual memory allocation to "dalvik-heap".
Change-Id: I05b9af92c4026be9445aff87520b2529b4757fe7
Barry Hayes [Wed, 9 Jun 2010 19:09:12 +0000 (12:09 -0700)]
Merge "ALLOC_NO_GC is no longer used; remove it, and the nonCollectableRefs table. Clean up dvmHeapInitHeapRefTable's interface to know the default size." into dalvik-dev
Barry Hayes [Tue, 8 Jun 2010 16:34:42 +0000 (09:34 -0700)]
ALLOC_NO_GC is no longer used; remove it, and the nonCollectableRefs table.
Clean up dvmHeapInitHeapRefTable's interface to know the default size.
Change-Id: I535fdfe39924f6f65f286e2809002c2a0e6411b6
Carl Shapiro [Wed, 9 Jun 2010 18:20:33 +0000 (11:20 -0700)]
Merge "Clean up the use of condition variables in the HeapWorker." into dalvik-dev
Carl Shapiro [Tue, 8 Jun 2010 23:19:45 +0000 (16:19 -0700)]
Clean up the use of condition variables in the HeapWorker.
Except for the timed wait case, use the error checking function
wrappers for all condition variable uses. Also, do not accept an
EINTR return value for the timed wait. These functions are never
supposed to return EINTR.
Change-Id: I867522b9ecea34dbe29ecc6bef1b3e3586c48414
buzbee [Wed, 9 Jun 2010 17:28:46 +0000 (10:28 -0700)]
Merge "JIT: Trace selection tuning to reduce number of spurious "hot" traces." into dalvik-dev
buzbee [Tue, 8 Jun 2010 23:24:46 +0000 (16:24 -0700)]
JIT: Trace selection tuning to reduce number of spurious "hot" traces.
This change trades a smallish adverse performance impact on programs
with flat execution profiles (for example, dacapo's xalan) for significant
reductions in useless translations. For dacapo, performance dropped
by about 2% in return for a 40% reduction in memory usage (300 Kbytes).
No significant performance drop in loopy profiles, but ocassionally good
memory savings. BenchmarkPi performance unchanged, but memory usage
after 4 runs went from 120 Kbytes to 55 Kbytes.
This is still not ideal (and probably will never be). For programs with
flat execution profiles we do best with loose hotness detection - try to
get as much of the working set compiled as quickly as possible. However,
too loose and we end up translating a lot of little-used UI code.
My current inclination is to err towards tight standards for the trace
JIT and push better performance for flat profiles in a future world in
which we analyze profile data across runs - perhaps in conjunction with
a method JIT.
Change-Id: If1b6e940ca7799acd6266e47175dae644269bc87
Carl Shapiro [Wed, 9 Jun 2010 01:08:14 +0000 (18:08 -0700)]
Remove repeated newlines at the end of files.
Change-Id: I1e3d103a7b932ef21acedb6438c0f26b315df28f
Carl Shapiro [Tue, 8 Jun 2010 23:37:12 +0000 (16:37 -0700)]
Remove trailing whitespace.
Change-Id: I95534bb2b88eaf48f2329282041118cd034c812b
Carl Shapiro [Tue, 8 Jun 2010 20:42:05 +0000 (13:42 -0700)]
Remove several obsolete logging macros.
Change-Id: I3bd6d950168e462556eeb2c219685a269a2cd65c
Carl Shapiro [Tue, 8 Jun 2010 20:19:57 +0000 (13:19 -0700)]
Replace a missing HPROF call in scanObject.
This code was accidentally removed when the implementation of the
scanObject routines in MarkSweep.c was superseded by code from their
analogs in Verify.c.
Change-Id: I9da6de01949130648d11172198b76db98dc184ee
Barry Hayes [Tue, 8 Jun 2010 16:59:12 +0000 (09:59 -0700)]
Further clean-up now that class == NULL has been eliminated.
Change-Id: I8be4bb4e46813ec04a0f8cd22d30f9e9b28895f0
Barry Hayes [Fri, 14 May 2010 20:43:34 +0000 (13:43 -0700)]
Send unlinkedClass back to hell, as requested.
The GC and Verify routines now can look inside classes better as well.
Basic ideas:
1) Pre-allocate the java.lang.Class class, and explicitly
set its clazz field to itself.
2) Put ClassObjects in status CLASS_IDX when their super and interface
array contain Dex indexes rather than object pointers. The GC
understands this, and uses that status to decide on marking those
fields or not.
Change-Id: Id84310b8a4ee27bf1b33e5b58ad9739fad659c4e
Andy McFadden [Mon, 7 Jun 2010 14:41:56 +0000 (07:41 -0700)]
Merge "Make attached threads visible to the GC sooner" into dalvik-dev
Andy McFadden [Fri, 4 Jun 2010 23:52:23 +0000 (16:52 -0700)]
Merge "Trivial formatting fix." into dalvik-dev
Andy McFadden [Fri, 4 Jun 2010 23:51:47 +0000 (16:51 -0700)]
Trivial formatting fix.
Change-Id: I89277db5a2278a9e4d584ffb4b24d5cd77f71a3c
The Android Open Source Project [Fri, 4 Jun 2010 22:38:23 +0000 (15:38 -0700)]
am
7c13ed2a: am
1dd067d9: am
54709cb2: am
bf11852a: merge from open-source master
Merge commit '
7c13ed2afba1abe63f39b0f563978e04e849ae00' into dalvik-dev
* commit '
7c13ed2afba1abe63f39b0f563978e04e849ae00':
Fix for use of UNPREDICTABLE register combination
Jeff Brown [Fri, 4 Jun 2010 22:38:20 +0000 (15:38 -0700)]
am
db00fdd3: am
09eae10c: am
23971e39: Merge "Added a new JNI helper for logging exceptions. Plugged some JNI reference leaks in existing JNI helpers." into kraken
Merge commit '
db00fdd383809700a01b2a19386f1ca81e94c6f0' into dalvik-dev
* commit '
db00fdd383809700a01b2a19386f1ca81e94c6f0':
Added a new JNI helper for logging exceptions.
Andy McFadden [Wed, 2 Jun 2010 22:37:21 +0000 (15:37 -0700)]
Make attached threads visible to the GC sooner
Threads that are created outside the VM and then attached were
allocating objects (Thread, VMThread, a String for the name) before
they were on the internal thread list. This made for some awkward
moments and required the use of an ALLOC_NO_GC flag.
With this change we now add the thread to the list first, and perform
the object creation afterward. This is saner from the perspective
of the GC, and may allow us to eliminate ALLOC_NO_GC.
As it happens, the places that would care about a null threadObj
(thread dump, get thread name, debugger request for thread list)
already check for it, making this pretty straightforward.
While I was in here I also took some steps to ensure that threadObj
doesn't get rewritten by the copying collector while something is in
the process of examining it. This involved a bit of paranoia in the
thread dump.
For bug
2603988.
Change-Id: Ibf2fdb917618277e75a79df113180f1d7f616e14
The Android Open Source Project [Fri, 4 Jun 2010 21:11:21 +0000 (14:11 -0700)]
am
1dd067d9: am
54709cb2: am
bf11852a: merge from open-source master
The Android Open Source Project [Fri, 4 Jun 2010 21:03:54 +0000 (14:03 -0700)]
am
54709cb2: am
bf11852a: merge from open-source master
The Android Open Source Project [Fri, 4 Jun 2010 21:02:48 +0000 (14:02 -0700)]
am
bf11852a: merge from open-source master
Merge commit '
bf11852aa3b56f1f77841dd0dbb3cc984711d674' into kraken
* commit '
bf11852aa3b56f1f77841dd0dbb3cc984711d674':
Fix for use of UNPREDICTABLE register combination
The Android Open Source Project [Fri, 4 Jun 2010 21:01:00 +0000 (14:01 -0700)]
merge from open-source master
Change-Id: Ic827f3b9a61ba4bfe72606950b6b34a5caf9d9bd
Carl Shapiro [Fri, 4 Jun 2010 17:16:03 +0000 (10:16 -0700)]
Merge "Pin objects in the debug registry hash table." into dalvik-dev
Dave Butcher [Wed, 2 Jun 2010 13:52:21 +0000 (14:52 +0100)]
Fix for use of UNPREDICTABLE register combination
Use of the LDRD instruction form LDRD Rt, Rt2, [Rn, Rm] has restrictions
on the register combinations - specifically if Rt or Rt2 is equal to Rn or
Rm the behaviour is defined as 'UNPREDICTABLE'.
Change-Id: I19834783865e07897cc7012367e698447f023ce6
Carl Shapiro [Fri, 4 Jun 2010 06:01:39 +0000 (23:01 -0700)]
Add a callback driven visitor routine and make verify use it.
This is the first step along the way to ending the proliferation of
one-off object walking routines. This code should supersede similar
code in the mark sweep collector, the copying collector, the hprof
tool, etc.. Once all of its uses have been debugged the routines in
the .c file should be hoisted into the .h file and marked as inline.
Soon, the signature of the visitor will probably have to be converted
to a functor with members specialized to reference type and, in
addition, given an extra parameter for a context structure.
Change-Id: Ib00850f22374c5aca51fa3708304774da90d8bc4
Carl Shapiro [Fri, 4 Jun 2010 07:03:18 +0000 (00:03 -0700)]
Pin objects in the debug registry hash table.
Evidently, these objects are presumed to have stable addresses.
Change-Id: I20ba2adc9b78ac157ba210a8a4d5b2b7355c33fb
Ben Cheng [Thu, 3 Jun 2010 21:48:14 +0000 (14:48 -0700)]
Merge "Check the mprotect() result when initializing the JIT code cache." into dalvik-dev