OSDN Git Service
Andy McFadden [Thu, 16 Sep 2010 22:32:43 +0000 (15:32 -0700)]
Use Throwable.getMessage() when logging exceptions.
The VM's internal exception logger was pulling the exception's detail
message out of a field in Throwable. This gets the wrong answer when
the exception overrides getMessage().
The VM now invokes the appropriate getMessage() method and displays
that instead. This is of particular interest in CheckJNI failure
messages.
Also, don't assert that switching from "running" to "running" is
a problem. It's a bit weird, but there's nothing wrong with it,
and there's a fair chance that the updated exception log function
will do it.
Bug
2845581
Change-Id: Id8d77221129ae7b45473e700a79a335164049362
Andy McFadden [Thu, 16 Sep 2010 20:33:32 +0000 (13:33 -0700)]
Make exception logging a little prettier.
Convert the class descriptor to dotted form when logging an exception
from the VM (e.g. when CheckJNI gets upset). Instead of
Ljava/lang/Throwable;: yikes
at android.test.JNITest.part1a(Native Method)
we now show:
java.lang.Throwable: yikes
at android.test.JNITest.part1a(Native Method)
Change-Id: I8b65920b85f03a1871e6a417b43b269b448340d5
Andy McFadden [Tue, 14 Sep 2010 23:23:49 +0000 (16:23 -0700)]
Stop cheating in reflective field access.
The java.lang.reflect.Field get/set calls have been "cheating" by
reading and writing 32-bit or 64-bit values without regard to the
underlying field type. This worked fine until recently, when we
developed three special cases:
(1) writing to a reference field (must notify the GC)
(2) reading/writing a volatile field (must emit barrier on SMP,
and 64-bit accesses must be atomic on all platforms)
(3) writing to a final field (must emit barrier on SMP)
This replaces the old "get a pointer and do stuff" approach with a
bunch of switch statements that call the ObjectInlines functions.
Bug
2992610
Change-Id: Ib30f043d325363743112e9b1bb170d9d232bca6b
Andy McFadden [Tue, 14 Sep 2010 14:51:16 +0000 (07:51 -0700)]
Merge "Emit return-void-barrier when appropriate." into dalvik-dev
Dan Bornstein [Tue, 14 Sep 2010 02:03:12 +0000 (19:03 -0700)]
am
6a695324: am
e5a8cd42: am
96604831: First possibly-working cut of dex-preopt.
Merge commit '
6a695324a98add795cc07161e4cd480ba63c46eb' into dalvik-dev
* commit '
6a695324a98add795cc07161e4cd480ba63c46eb':
First possibly-working cut of dex-preopt.
Dan Bornstein [Tue, 14 Sep 2010 01:58:04 +0000 (18:58 -0700)]
am
e5a8cd42: am
96604831: First possibly-working cut of dex-preopt.
Merge commit '
e5a8cd42a5d9ab9c8466fe7b333f94fe1a034f52'
* commit '
e5a8cd42a5d9ab9c8466fe7b333f94fe1a034f52':
First possibly-working cut of dex-preopt.
Dan Bornstein [Mon, 13 Sep 2010 23:43:59 +0000 (16:43 -0700)]
am
96604831: First possibly-working cut of dex-preopt.
Merge commit '
96604831505a9ffef8d2da38c24a533a593efb34' into gingerbread-plus-aosp
* commit '
96604831505a9ffef8d2da38c24a533a593efb34':
First possibly-working cut of dex-preopt.
Dan Bornstein [Mon, 13 Sep 2010 22:37:28 +0000 (15:37 -0700)]
First possibly-working cut of dex-preopt.
Change-Id: I65c8ca76d75285ebd510babe5d0b3e0a157f82b7
Andy McFadden [Mon, 13 Sep 2010 21:04:02 +0000 (14:04 -0700)]
Emit return-void-barrier when appropriate.
If SMP is enabled, and we're optimizing a constructor, and the
class in question has final fields, we replace all occurrences of
"return-void" with "return-void-barrier".
This is an "essential" optimization for SMP, meaning it will be done
regardless of the verification/optimization settings.
Also, split the updateCode() helper function into two versions (one
to update the whole 16-bit code unit, one to replace just the opcode).
Also, make the presence of a duplicate class in the bootstrap class
path a failure for optimization as well as verification. Otherwise,
if you have "-Xdexopt:all", you could end up trying to optimize a
class loaded from a bootstrap DEX file, which doesn't work well
since those classes are mapped read-only in dexopt.
Bug
2965743.
Change-Id: I29e67133731b59beb6af5003f3cd69302c5c20f5
Dan Bornstein [Mon, 13 Sep 2010 22:08:39 +0000 (15:08 -0700)]
am
282cb814: am
10a1d761: am
20228de2: Flesh out dex-preopt a bit more.
Merge commit '
282cb814c1324273098adb496cc15d4f007b54d2' into dalvik-dev
* commit '
282cb814c1324273098adb496cc15d4f007b54d2':
Flesh out dex-preopt a bit more.
Dan Bornstein [Mon, 13 Sep 2010 22:02:35 +0000 (15:02 -0700)]
am
10a1d761: am
20228de2: Flesh out dex-preopt a bit more.
Merge commit '
10a1d7615652de5de0214265123044f032d45177'
* commit '
10a1d7615652de5de0214265123044f032d45177':
Flesh out dex-preopt a bit more.
Dan Bornstein [Mon, 13 Sep 2010 21:48:25 +0000 (14:48 -0700)]
am
deb42ded: am
de9307da: am
46f7d54c: We also need to tell it the file mode when creating the output.
Merge commit '
deb42dedbf8fa31f9812f138361559eace4e980e' into dalvik-dev
* commit '
deb42dedbf8fa31f9812f138361559eace4e980e':
We also need to tell it the file mode when creating the output.
Dan Bornstein [Mon, 13 Sep 2010 21:42:26 +0000 (14:42 -0700)]
am
de9307da: am
46f7d54c: We also need to tell it the file mode when creating the output.
Merge commit '
de9307dace945eea0bbcfa008d7e164f8777e28d'
* commit '
de9307dace945eea0bbcfa008d7e164f8777e28d':
We also need to tell it the file mode when creating the output.
Piotr Gurgul [Mon, 13 Sep 2010 21:14:54 +0000 (14:14 -0700)]
am
b9ef0a4b: Merge "Add several classes from dx tool to the dexgen project"
Merge commit '
b9ef0a4b5b3fdbb388ba2f262a370fc3aa66cae5' into dalvik-dev
* commit '
b9ef0a4b5b3fdbb388ba2f262a370fc3aa66cae5':
Add several classes from dx tool to the dexgen project
Piotr Gurgul [Mon, 13 Sep 2010 21:02:31 +0000 (14:02 -0700)]
Merge "Add several classes from dx tool to the dexgen project"
Andy McFadden [Mon, 13 Sep 2010 21:02:24 +0000 (14:02 -0700)]
Merge "Added a barrier to final field updates." into dalvik-dev
Dan Bornstein [Mon, 13 Sep 2010 20:49:41 +0000 (13:49 -0700)]
am
20228de2: Flesh out dex-preopt a bit more.
Merge commit '
20228de2a8b0902d919b8acc27a9e954a597d16b' into gingerbread-plus-aosp
* commit '
20228de2a8b0902d919b8acc27a9e954a597d16b':
Flesh out dex-preopt a bit more.
Dan Bornstein [Mon, 13 Sep 2010 20:40:33 +0000 (13:40 -0700)]
Flesh out dex-preopt a bit more.
It's still not done.
Change-Id: I8b1cbe14841f12c8f299638c1ddaeec659ec441b
Dan Bornstein [Mon, 13 Sep 2010 18:52:10 +0000 (11:52 -0700)]
am
46f7d54c: We also need to tell it the file mode when creating the output.
Merge commit '
46f7d54cbda931213bbe710c065e1bd82aa0af6c' into gingerbread-plus-aosp
* commit '
46f7d54cbda931213bbe710c065e1bd82aa0af6c':
We also need to tell it the file mode when creating the output.
Dan Bornstein [Mon, 13 Sep 2010 01:27:00 +0000 (18:27 -0700)]
We also need to tell it the file mode when creating the output.
Thanks to Elliott for catching this.
Change-Id: Ibb89ece3dd2e1d39a8a2d51cb8b7278842e057a1
Dan Bornstein [Mon, 13 Sep 2010 01:22:06 +0000 (18:22 -0700)]
am
303d781d: am
1df6d930: am
17e4ea8f: Actually, dexopt needs to read the optimized dex file too.
Merge commit '
303d781dbeb04b9d5968a2b65b30a2a559a37fc7' into dalvik-dev
* commit '
303d781dbeb04b9d5968a2b65b30a2a559a37fc7':
Actually, dexopt needs to read the optimized dex file too.
Dan Bornstein [Mon, 13 Sep 2010 01:22:04 +0000 (18:22 -0700)]
am
8a042d4e: am
f3a6934b: am
dd2502bd: Move declarations to the top to avoid potential uninitialized use.
Merge commit '
8a042d4ee0fe84ca1f9a22090df3305782bcff67' into dalvik-dev
* commit '
8a042d4ee0fe84ca1f9a22090df3305782bcff67':
Move declarations to the top to avoid potential uninitialized use.
Dan Bornstein [Mon, 13 Sep 2010 01:18:48 +0000 (18:18 -0700)]
am
1df6d930: am
17e4ea8f: Actually, dexopt needs to read the optimized dex file too.
Merge commit '
1df6d93064c3e43356869407eff41a03bc9ca4b8'
* commit '
1df6d93064c3e43356869407eff41a03bc9ca4b8':
Actually, dexopt needs to read the optimized dex file too.
Dan Bornstein [Mon, 13 Sep 2010 01:18:46 +0000 (18:18 -0700)]
am
f3a6934b: am
dd2502bd: Move declarations to the top to avoid potential uninitialized use.
Merge commit '
f3a6934bbe1e295956f3d9f16ac675fb7d4232b7'
* commit '
f3a6934bbe1e295956f3d9f16ac675fb7d4232b7':
Move declarations to the top to avoid potential uninitialized use.
Dan Bornstein [Mon, 13 Sep 2010 01:17:08 +0000 (18:17 -0700)]
am
17e4ea8f: Actually, dexopt needs to read the optimized dex file too.
Merge commit '
17e4ea8f17b6e4e14c483de49b3a3f053af188b4' into gingerbread-plus-aosp
* commit '
17e4ea8f17b6e4e14c483de49b3a3f053af188b4':
Actually, dexopt needs to read the optimized dex file too.
Dan Bornstein [Mon, 13 Sep 2010 01:17:06 +0000 (18:17 -0700)]
am
dd2502bd: Move declarations to the top to avoid potential uninitialized use.
Merge commit '
dd2502bd371ddca554b7a3d900fe120a3e7767ec' into gingerbread-plus-aosp
* commit '
dd2502bd371ddca554b7a3d900fe120a3e7767ec':
Move declarations to the top to avoid potential uninitialized use.
Dan Bornstein [Mon, 13 Sep 2010 01:12:27 +0000 (18:12 -0700)]
Actually, dexopt needs to read the optimized dex file too.
Change-Id: Ib36cc0fd134a6916100060c8e2eee5158ac87201
Dan Bornstein [Mon, 13 Sep 2010 00:34:35 +0000 (17:34 -0700)]
Move declarations to the top to avoid potential uninitialized use.
I didn't catch the warnings among the build spew before. Also, made
"--preopt" use stderr for its complaints about arguments.
Change-Id: I8d470ccc40c4cdc9131beb0991060358039e2727
Dan Bornstein [Mon, 13 Sep 2010 00:31:33 +0000 (17:31 -0700)]
am
7d7efa59: am
3bb31513: am
4701d5f8: Add a new "--preopt" mode to dexopt, for running on the host.
Merge commit '
7d7efa596870843f35defd52306f23d4dc519df1' into dalvik-dev
* commit '
7d7efa596870843f35defd52306f23d4dc519df1':
Add a new "--preopt" mode to dexopt, for running on the host.
Dan Bornstein [Mon, 13 Sep 2010 00:26:49 +0000 (17:26 -0700)]
am
3bb31513: am
4701d5f8: Add a new "--preopt" mode to dexopt, for running on the host.
Merge commit '
3bb31513f5aa1e3c4860947287a6edf7842d2c49'
* commit '
3bb31513f5aa1e3c4860947287a6edf7842d2c49':
Add a new "--preopt" mode to dexopt, for running on the host.
Dan Bornstein [Mon, 13 Sep 2010 00:23:51 +0000 (17:23 -0700)]
am
4701d5f8: Add a new "--preopt" mode to dexopt, for running on the host.
Merge commit '
4701d5f8d0e691eeb9a0824311d5166d301a5aa5' into gingerbread-plus-aosp
* commit '
4701d5f8d0e691eeb9a0824311d5166d301a5aa5':
Add a new "--preopt" mode to dexopt, for running on the host.
Dan Bornstein [Sun, 12 Sep 2010 23:42:28 +0000 (16:42 -0700)]
Add a new "--preopt" mode to dexopt, for running on the host.
This change takes much of what used to be in the function fromZip()
(the "--zip" mode implementation) and pulls it into a helper function,
which is then also used by the new preopt() function.
Change-Id: Id54618047896366448adaec0bf973627a9f1f397
Dan Bornstein [Sun, 12 Sep 2010 21:07:04 +0000 (14:07 -0700)]
am
306c8e43: am
1c73c286: am
ab9d89fb: Pre-alpha cut of the new dex preoptimization script.
Merge commit '
306c8e43df16cddb34fac20a5deb0bc408f08fd8' into dalvik-dev
* commit '
306c8e43df16cddb34fac20a5deb0bc408f08fd8':
Pre-alpha cut of the new dex preoptimization script.
Dan Bornstein [Sun, 12 Sep 2010 21:01:40 +0000 (14:01 -0700)]
am
1c73c286: am
ab9d89fb: Pre-alpha cut of the new dex preoptimization script.
Merge commit '
1c73c2863feb505b2145566ec2bcc96d4ccc4641'
* commit '
1c73c2863feb505b2145566ec2bcc96d4ccc4641':
Pre-alpha cut of the new dex preoptimization script.
Dan Bornstein [Sun, 12 Sep 2010 20:12:29 +0000 (13:12 -0700)]
am
ab9d89fb: Pre-alpha cut of the new dex preoptimization script.
Merge commit '
ab9d89fb7417157c3972278d1bd899cc091a8168' into gingerbread-plus-aosp
* commit '
ab9d89fb7417157c3972278d1bd899cc091a8168':
Pre-alpha cut of the new dex preoptimization script.
Dan Bornstein [Sun, 12 Sep 2010 20:03:27 +0000 (13:03 -0700)]
Pre-alpha cut of the new dex preoptimization script.
This will successfully find all the right directories etc., but it doesn't
do any actual dex processing yet. Stay tuned!
Change-Id: I4926308231366d6bae7b6a4594b4edb99192bf42
Ben Cheng [Sat, 11 Sep 2010 00:36:37 +0000 (17:36 -0700)]
am
8d0facc6: am
fd93a495: am
23608ab4: Fix inliner bug for empty callees.
Merge commit '
8d0facc68407f28808594461cba4da6be2795a78' into dalvik-dev
* commit '
8d0facc68407f28808594461cba4da6be2795a78':
Fix inliner bug for empty callees.
Ben Cheng [Sat, 11 Sep 2010 00:24:57 +0000 (17:24 -0700)]
am
fd93a495: am
23608ab4: Fix inliner bug for empty callees.
Merge commit '
fd93a495deb6b1642925e0a98a63cd9b21b6a232'
* commit '
fd93a495deb6b1642925e0a98a63cd9b21b6a232':
Fix inliner bug for empty callees.
Ben Cheng [Sat, 11 Sep 2010 00:19:42 +0000 (17:19 -0700)]
am
23608ab4: Fix inliner bug for empty callees.
Merge commit '
23608ab40900463fc5c8461671ba3aa5d0a4260e' into gingerbread-plus-aosp
* commit '
23608ab40900463fc5c8461671ba3aa5d0a4260e':
Fix inliner bug for empty callees.
Ben Cheng [Sat, 11 Sep 2010 00:11:11 +0000 (17:11 -0700)]
Fix inliner bug for empty callees.
Add an explicit branch to continue from the next instruction.
Bug:
2992514
(cherry-picked from dalvik-dev)
Change-Id: I6e036e330255e7cd9d1504c50c4260910c38dfff
Ben Cheng [Sat, 11 Sep 2010 00:11:11 +0000 (17:11 -0700)]
Fix inliner bug for empty callees.
Add an explicit branch to continue from the next instruction.
Bug:
2992514
Change-Id: I87f7a2d86e34264688bf283e156816624556b46f
Andy McFadden [Fri, 10 Sep 2010 22:36:16 +0000 (15:36 -0700)]
Added a barrier to final field updates.
When deserializing an object, code can write to final fields. The JMM
requires that we give final fields written this way the same treatment
as we would final fields written directly in a constructor.
This adds memory barriers to the two reflection field-set handlers
when the field in question is marked "final".
Also, added a final field update to test 046.
Bug
2965743.
Change-Id: I5ea3cb49e04d932a655740058b847dcb8712e041
Andy McFadden [Fri, 10 Sep 2010 22:46:49 +0000 (15:46 -0700)]
Rename dalvik test 084 to 085.
Change-Id: I63d93389cf41006ffae0587e931aa2cd089f1675
Andy McFadden [Fri, 10 Sep 2010 15:04:52 +0000 (08:04 -0700)]
Add return-void-barrier instruction.
This introduces the return-void-barrier instruction, which is identical
to return-void on UP systems, but provides an additional store/store
barrier on SMP. This is intended for use in constructors of objects
with final fields.
The assembler doesn't like "dmb st", and we don't have an
ANDROID_MEMBAR_STORE barrier defined, so this currently uses full
fences.
This just defines the new instruction. It's not actually used yet.
Also, removed some stale "unused" files from the x86 and x86-atom
directories.
Bug
2965743.
Change-Id: I072e372fd2d57f2617a8d4fff5fd4b38bdda75d1
Piotr Gurgul [Fri, 10 Sep 2010 01:22:53 +0000 (18:22 -0700)]
Add several classes from dx tool to the dexgen project
Dexgen depends on many classes from dx tool but for now there is no target
build of dx. That is why some of its classes need to be moved directly into
dexgen source code, as building target version of the whole dx project
is not an option. This CL produces a lot of duplicate classes in
dalvik/dx and dalvik/dexgen, but this will be resolved in future by removing
these classes from dalvik/dx.
Change-Id: I5411f92761d73c3ab555feaa345e5d150aa280ef
buzbee [Thu, 9 Sep 2010 23:58:02 +0000 (16:58 -0700)]
am
c94d546e: am
24628c4c: am
50afc65c: Merge "JIT: Fix inconsistent handling of sub-word instance git/put" into gingerbread
Merge commit '
c94d546e99f18ba445b2fd3f8e91c93d14cd725d' into dalvik-dev
* commit '
c94d546e99f18ba445b2fd3f8e91c93d14cd725d':
JIT: Fix inconsistent handling of sub-word instance git/put
buzbee [Thu, 9 Sep 2010 23:52:00 +0000 (16:52 -0700)]
am
24628c4c: am
50afc65c: Merge "JIT: Fix inconsistent handling of sub-word instance git/put" into gingerbread
Merge commit '
24628c4c898930ba350b6ac99625c8ff700f35c8'
* commit '
24628c4c898930ba350b6ac99625c8ff700f35c8':
JIT: Fix inconsistent handling of sub-word instance git/put
buzbee [Thu, 9 Sep 2010 23:48:42 +0000 (16:48 -0700)]
am
50afc65c: Merge "JIT: Fix inconsistent handling of sub-word instance git/put" into gingerbread
Merge commit '
50afc65c674fee10ed9a0380daaee7862cc79d5d' into gingerbread-plus-aosp
* commit '
50afc65c674fee10ed9a0380daaee7862cc79d5d':
JIT: Fix inconsistent handling of sub-word instance git/put
buzbee [Thu, 9 Sep 2010 23:46:09 +0000 (16:46 -0700)]
Merge "JIT: Fix inconsistent handling of sub-word instance git/put" into gingerbread
buzbee [Thu, 9 Sep 2010 21:07:01 +0000 (14:07 -0700)]
JIT: Fix inconsistent handling of sub-word instance git/put
The portable interpreter and fast interpreter use 32-bit accesses
for all sub-word scalars. The JIT generated code to tailor the access
to the data size. It doesn't matter which approach is taken, but all
interpreters & JIT must be consistent. Changing the JIT to use 32-bit
accesses for all sub-word instance scalars.
Fix for Issue
2973137
Change-Id: I8b1e9e6be075012c7c174728b77c7a76884975b7
Piotr Gurgul [Thu, 9 Sep 2010 23:37:41 +0000 (16:37 -0700)]
am
b20c366a: Merge "Add dexgen helper classes and Android.mk"
Merge commit '
b20c366a4cc1dbaeb7aa14fae18baa9e45a86503' into dalvik-dev
* commit '
b20c366a4cc1dbaeb7aa14fae18baa9e45a86503':
Add dexgen helper classes and Android.mk
Piotr Gurgul [Thu, 9 Sep 2010 23:34:48 +0000 (16:34 -0700)]
Merge "Add dexgen helper classes and Android.mk"
Andy McFadden [Thu, 9 Sep 2010 23:28:43 +0000 (16:28 -0700)]
am
fb12fb32: am
fdc9cfa3: am
139bd978: Added "dexopt for SMP" flag.
Merge commit '
fb12fb3242e8735e07e1a4583517f2e36a79b200' into dalvik-dev
* commit '
fb12fb3242e8735e07e1a4583517f2e36a79b200':
Added "dexopt for SMP" flag.
Andy McFadden [Thu, 9 Sep 2010 23:19:42 +0000 (16:19 -0700)]
am
fdc9cfa3: am
139bd978: Added "dexopt for SMP" flag.
Merge commit '
fdc9cfa3bcf418d59c47a8d114ec84452b2f1d11'
* commit '
fdc9cfa3bcf418d59c47a8d114ec84452b2f1d11':
Added "dexopt for SMP" flag.
Andy McFadden [Thu, 9 Sep 2010 23:16:57 +0000 (16:16 -0700)]
am
139bd978: Added "dexopt for SMP" flag.
Merge commit '
139bd97804a69634e7c4cecf06910a050a4ac093' into gingerbread-plus-aosp
* commit '
139bd97804a69634e7c4cecf06910a050a4ac093':
Added "dexopt for SMP" flag.
Andy McFadden [Thu, 9 Sep 2010 19:54:43 +0000 (12:54 -0700)]
Added "dexopt for SMP" flag.
Currently, dexopt always runs on the target device, which means that
decisions about whether or not to convert certain opcodes to SMP-safe
variants could be made based on #ifdefs.
Since we are planning to run dexopt on the host, we need to be able
to configure SMP-mode independently. This change adds a global variable
that the dexopt code can check.
There is currently no command-line argument to set this, since it will
be set by "dexopt" rather than "dalvikvm", and the exact method of
launching dexopt from the host build is still mildly TBD.
Bug
2981136.
(cherry-pick from dalvik-dev)
Change-Id: I7474f79a25368223ecf1e491458f4a82e85db01f
Dan Bornstein [Thu, 9 Sep 2010 22:40:34 +0000 (15:40 -0700)]
am
611f0c0b: am
070fceca: am
d394371b: Remove the functionality in ReduceConstants.[ch].
Merge commit '
611f0c0b5075be16c517431354db4a3facd5a5ef' into dalvik-dev
* commit '
611f0c0b5075be16c517431354db4a3facd5a5ef':
Remove the functionality in ReduceConstants.[ch].
Piotr Gurgul [Fri, 3 Sep 2010 02:15:30 +0000 (19:15 -0700)]
Add dexgen helper classes and Android.mk
This commit adds the very first classes to the dexgen project together with
its Android.mk file. These are the helper classes needed by dex class builder.
Change-Id: I47f8132443f43881826d24a854ab6bafb14181bd
buzbee [Thu, 9 Sep 2010 22:03:03 +0000 (15:03 -0700)]
Merge "JIT: Fix inconsistent handling of sub-word instance git/put" into dalvik-dev
Dan Bornstein [Thu, 9 Sep 2010 21:23:28 +0000 (14:23 -0700)]
am
070fceca: am
d394371b: Remove the functionality in ReduceConstants.[ch].
Merge commit '
070fceca4bf6d717094a0be33b322e84c0a6874d'
* commit '
070fceca4bf6d717094a0be33b322e84c0a6874d':
Remove the functionality in ReduceConstants.[ch].
buzbee [Thu, 9 Sep 2010 21:07:01 +0000 (14:07 -0700)]
JIT: Fix inconsistent handling of sub-word instance git/put
The portable interpreter and fast interpreter use 32-bit accesses
for all sub-word scalars. The JIT generated code to tailor the access
to the data size. It doesn't matter which approach is taken, but all
interpreters & JIT must be consistent. Changing the JIT to use 32-bit
accesses for all sub-word instance scalars.
Fix for Issue
2973137
Change-Id: I6108ccc98c1b43974373764913d5f8d0d8723cd4
Andy McFadden [Thu, 9 Sep 2010 19:54:43 +0000 (12:54 -0700)]
Added "dexopt for SMP" flag.
Currently, dexopt always runs on the target device, which means that
decisions about whether or not to convert certain opcodes to SMP-safe
variants could be made based on #ifdefs.
Since we are planning to run dexopt on the host, we need to be able
to configure SMP-mode independently. This change adds a global variable
that the dexopt code can check.
There is currently no command-line argument to set this, since it will
be set by "dexopt" rather than "dalvikvm", and the exact method of
launching dexopt from the host build is still mildly TBD.
Bug
2981136.
Change-Id: If20aa6f513896fd8b35394388eaca6214f0449a7
Dan Bornstein [Thu, 9 Sep 2010 19:07:28 +0000 (12:07 -0700)]
am
d394371b: Remove the functionality in ReduceConstants.[ch].
Merge commit '
d394371bd84bacc51e96e2d2eacb8549d9110b1e' into gingerbread-plus-aosp
* commit '
d394371bd84bacc51e96e2d2eacb8549d9110b1e':
Remove the functionality in ReduceConstants.[ch].
Dan Bornstein [Wed, 8 Sep 2010 22:50:00 +0000 (15:50 -0700)]
Remove the functionality in ReduceConstants.[ch].
It was a good experiment to try, but it was never made production-ready,
and it doesn't look like it would be a net win at this point. We
metaphorically pour out a beer in its honor.
Change-Id: I7f6ac95f5b7c963df0a3015ed33595fa1a928636
Carl Shapiro [Wed, 8 Sep 2010 02:05:09 +0000 (19:05 -0700)]
am
194185e2: am
917aef91: am
2c81bdc3: Cherry pick new concurrent gc trigger change from dalvik-dev.
Merge commit '
194185e2ae8cb2d4b2828e9a1ba3d94adf9cd32f' into dalvik-dev
* commit '
194185e2ae8cb2d4b2828e9a1ba3d94adf9cd32f':
Cherry pick new concurrent gc trigger change from dalvik-dev.
Carl Shapiro [Wed, 8 Sep 2010 01:52:31 +0000 (18:52 -0700)]
am
917aef91: am
2c81bdc3: Cherry pick new concurrent gc trigger change from dalvik-dev.
Merge commit '
917aef916f31d087b31a99b396e39be885772a8d'
* commit '
917aef916f31d087b31a99b396e39be885772a8d':
Cherry pick new concurrent gc trigger change from dalvik-dev.
Ben Cheng [Wed, 8 Sep 2010 00:18:12 +0000 (17:18 -0700)]
Fix the Dalvik host build.
Change-Id: I7b019cfe6c6e1e37115fdcc9760c09d73dae0420
Carl Shapiro [Wed, 8 Sep 2010 00:10:32 +0000 (17:10 -0700)]
am
2c81bdc3: Cherry pick new concurrent gc trigger change from dalvik-dev.
Merge commit '
2c81bdc3bb892d7d60855e14f61854f20a9f6cb8' into gingerbread-plus-aosp
* commit '
2c81bdc3bb892d7d60855e14f61854f20a9f6cb8':
Cherry pick new concurrent gc trigger change from dalvik-dev.
Carl Shapiro [Tue, 7 Sep 2010 23:19:01 +0000 (16:19 -0700)]
Cherry pick new concurrent gc trigger change from dalvik-dev.
git cherry-pick
d370c7d8c5bd4f49274b5d306751c43c7bb44a0b --no-commit
git cherry-pick
562cafca106d36ae910fafa87f3d5f245fe818ae --no-commit
git cherry-pick
ab46f94967a76a1c141c1e719d5f2cffe2780a8c --no-commit
Change-Id: Iba35cd3afee5d575b8121f7ab3ef5b45b37f5278
Carl Shapiro [Tue, 7 Sep 2010 23:07:36 +0000 (16:07 -0700)]
Merge "Use the correct constant for the limit value of size_t." into dalvik-dev
Elliott Hughes [Tue, 7 Sep 2010 21:53:55 +0000 (14:53 -0700)]
Stop using getEffectiveAddress.
The corresponding field is now set in the constructor, thanks to:
https://android-git.corp.google.com/g/64867
Bug:
2935622
Change-Id: Ifcd77b3e83e046eb7ba6aa2d917aa434e508f3e8
Carl Shapiro [Tue, 7 Sep 2010 21:49:19 +0000 (14:49 -0700)]
Use the correct constant for the limit value of size_t.
Change-Id: Ic918a380b7f581c2cf9d3f28e6179cd0182cd495
Elliott Hughes [Tue, 7 Sep 2010 17:15:16 +0000 (10:15 -0700)]
Merge "Fix build (track Java class name change)." into dalvik-dev
Elliott Hughes [Tue, 7 Sep 2010 17:10:48 +0000 (10:10 -0700)]
Fix build (track Java class name change).
Change-Id: I731d8fe3d24becd284764f8f05d59340fbe02bb8
Barry Hayes [Fri, 3 Sep 2010 21:26:12 +0000 (14:26 -0700)]
The host build lacks SIZE_T_MAX, even though bionic has it.
Change SIZE_T_MAX to UINT_MAX.
Change-Id: Icbf74abb26cac680ff1b470260c1fba6991bc975
Carl Shapiro [Fri, 3 Sep 2010 19:59:02 +0000 (12:59 -0700)]
Merge "Change the concurrent trigger condition from "start after N bytes allocated" to "start when N bytes of free-space remain."" into dalvik-dev
Carl Shapiro [Fri, 3 Sep 2010 19:29:25 +0000 (12:29 -0700)]
am
dab09d9d: am
e67a0f17: am
44165848: Merge "Operate on bitmaps directly for live and mark checks." into gingerbread
Merge commit '
dab09d9d81d1a6a23f11739017cc619d0cb411c3' into dalvik-dev
* commit '
dab09d9d81d1a6a23f11739017cc619d0cb411c3':
Operate on bitmaps directly for live and mark checks.
Carl Shapiro [Fri, 3 Sep 2010 19:18:38 +0000 (12:18 -0700)]
am
e67a0f17: am
44165848: Merge "Operate on bitmaps directly for live and mark checks." into gingerbread
Merge commit '
e67a0f17f1c53f248d710fe8b1476abe8ef0f622'
* commit '
e67a0f17f1c53f248d710fe8b1476abe8ef0f622':
Operate on bitmaps directly for live and mark checks.
Barry Hayes [Tue, 31 Aug 2010 16:14:00 +0000 (09:14 -0700)]
Change the concurrent trigger condition from "start after N bytes
allocated" to "start when N bytes of free-space remain."
To avoid continuous concurrent collection: if free-space after a GC is
under set amount, the next GC will not be concurrent. When the
application is in steady-state near its max heap, concurrent
collection will be effectively disabled.
Change-Id: I248230ef42d49df93903b2c29faae7454eaed325
Carl Shapiro [Fri, 3 Sep 2010 19:16:34 +0000 (12:16 -0700)]
am
44165848: Merge "Operate on bitmaps directly for live and mark checks." into gingerbread
Merge commit '
4416584802dbda4ade8df7f81af84a73d6887049' into gingerbread-plus-aosp
* commit '
4416584802dbda4ade8df7f81af84a73d6887049':
Operate on bitmaps directly for live and mark checks.
Carl Shapiro [Fri, 3 Sep 2010 19:14:46 +0000 (12:14 -0700)]
Merge "Operate on bitmaps directly for live and mark checks." into gingerbread
Elliott Hughes [Fri, 3 Sep 2010 17:10:40 +0000 (10:10 -0700)]
Merge "Do less work in NewDirectByteBuffer." into dalvik-dev
Ben Cheng [Fri, 3 Sep 2010 17:00:59 +0000 (10:00 -0700)]
Merge "Collect method traces with the fast interpreter and the JIT'ed code." into dalvik-dev
buzbee [Fri, 3 Sep 2010 16:35:22 +0000 (09:35 -0700)]
am
8ef4d4f3: am
58a661c4: am
ddc7d29b: Correct Volatile SGET/SPUT format tag, add missing cases for JIT
Merge commit '
8ef4d4f3d050b0130dbf723285990b045f04d5f3' into dalvik-dev
* commit '
8ef4d4f3d050b0130dbf723285990b045f04d5f3':
Correct Volatile SGET/SPUT format tag, add missing cases for JIT
buzbee [Fri, 3 Sep 2010 16:27:53 +0000 (09:27 -0700)]
am
58a661c4: am
ddc7d29b: Correct Volatile SGET/SPUT format tag, add missing cases for JIT
Merge commit '
58a661c4ec0c18473b6b9814a78896caa74d0c8c'
* commit '
58a661c4ec0c18473b6b9814a78896caa74d0c8c':
Correct Volatile SGET/SPUT format tag, add missing cases for JIT
buzbee [Fri, 3 Sep 2010 16:22:41 +0000 (09:22 -0700)]
am
ddc7d29b: Correct Volatile SGET/SPUT format tag, add missing cases for JIT
Merge commit '
ddc7d29baa92cb24b7bfa80395479f878109f3f8' into gingerbread-plus-aosp
* commit '
ddc7d29baa92cb24b7bfa80395479f878109f3f8':
Correct Volatile SGET/SPUT format tag, add missing cases for JIT
buzbee [Fri, 3 Sep 2010 00:16:24 +0000 (17:16 -0700)]
Correct Volatile SGET/SPUT format tag, add missing cases for JIT
Fix for http://b/issue?id=
2971877, which was identified via
debug tracing on http://b/issue?id=
2971569. There were a couple
of problems: first, the volatile sget/sput byte codes had the
wrong format tag (22c instead of 21c). Second, the JIT was missing
a couple of case statments to handle these. As far as the JIT goes,
this would not have caused correctness problems, but would have
been slower than necessary.
Change-Id: I57a41c4e063642b0c19acba5bb0855dd8ce2d4ba
Carl Shapiro [Fri, 3 Sep 2010 06:32:25 +0000 (23:32 -0700)]
Operate on bitmaps directly for live and mark checks.
Previously, the card table scan use the valid object check to see if a
given address pointed to a live object header. This check is overkill
an requires out of line function calls. With this change, we query the
bitmaps directly during the scan avoiding significant overhead.
Change-Id: Ifccb93edb97154d44a652735c1d34845adf88740
Ben Cheng [Tue, 31 Aug 2010 16:30:37 +0000 (09:30 -0700)]
Collect method traces with the fast interpreter and the JIT'ed code.
Insert inline code instead of switching to the debug interpreter in the hope
that the time stamps collected in traceview are more close to the real
world behavior with minimal profiling overhead.
Because the inline polling still introduces additional overhead (20% ~ 100%),
it is only enabled in the special VM build called "libdvm_traceview.so".
It won't work on the emulator because it is not implemented to collect the
detailed instruction traces.
Here are some performance numbers using the FibonacciSlow microbenchmark
(ie recursive workloads / the shorter the faster):
time: configuration
8,162,602: profiling off/libdvm.so/JIT off
2,801,829: profiling off/libdvm.so/JIT on
9,952,236: profiling off/libdvm_traceview.so/JIT off
4,465,701: profiling off/libdvm_traceview.so/JIT on
164,786,585: profiling on/libdvm.so/JIT off
164,664,634: profiling on/libdvm.so/JIT on
11,231,707: profiling on/libdvm_traceview.so/JIT off
8,427,846: profiling on/libdvm_traceview.so/JIT on
Comparing the 8,427,846 vs 164,664,634 numbers againt the true baseline
performance number of 2,801,829, the new libdvm_traceview.so improves the time
skew from 58x to 3x.
Change-Id: I48611a3a4ff9c4950059249e5503c26abd6b138e
Carl Shapiro [Fri, 3 Sep 2010 01:57:55 +0000 (18:57 -0700)]
am
1311c9e5: am
3d1485b1: am
d7400e0e: Normalize the declaration style.
Merge commit '
1311c9e54386741f846d80c36c8474c0f5b77f6c' into dalvik-dev
* commit '
1311c9e54386741f846d80c36c8474c0f5b77f6c':
Normalize the declaration style.
Carl Shapiro [Fri, 3 Sep 2010 01:53:35 +0000 (18:53 -0700)]
am
3d1485b1: am
d7400e0e: Normalize the declaration style.
Merge commit '
3d1485b15d83dd920ffb1a826d42ae65f3b31a93'
* commit '
3d1485b15d83dd920ffb1a826d42ae65f3b31a93':
Normalize the declaration style.
Carl Shapiro [Fri, 3 Sep 2010 01:44:15 +0000 (18:44 -0700)]
am
d7400e0e: Normalize the declaration style.
Merge commit '
d7400e0ec701dd481489ad421d55c7cd903f77ee' into gingerbread-plus-aosp
* commit '
d7400e0ec701dd481489ad421d55c7cd903f77ee':
Normalize the declaration style.
Carl Shapiro [Fri, 3 Sep 2010 01:38:59 +0000 (18:38 -0700)]
am
b45efe57: am
23cdb738: am
3ba10c99: Use an acquiring CAS for lock acquisition.
Merge commit '
b45efe5722476fb6ad9e66b4b6fba0486f6fc221' into dalvik-dev
* commit '
b45efe5722476fb6ad9e66b4b6fba0486f6fc221':
Use an acquiring CAS for lock acquisition.
Carl Shapiro [Fri, 3 Sep 2010 01:24:29 +0000 (18:24 -0700)]
Normalize the declaration style.
Change-Id: I204dec4a80672ea10286cefcff7884b15ebaae51
Carl Shapiro [Fri, 3 Sep 2010 01:00:39 +0000 (18:00 -0700)]
am
23cdb738: am
3ba10c99: Use an acquiring CAS for lock acquisition.
Merge commit '
23cdb738c525ade350c441cf4b5edca4526aef07'
* commit '
23cdb738c525ade350c441cf4b5edca4526aef07':
Use an acquiring CAS for lock acquisition.
Carl Shapiro [Fri, 3 Sep 2010 00:45:25 +0000 (17:45 -0700)]
am
3ba10c99: Use an acquiring CAS for lock acquisition.
Merge commit '
3ba10c9932db4c7c9546081ea070c73d5001c168' into gingerbread-plus-aosp
* commit '
3ba10c9932db4c7c9546081ea070c73d5001c168':
Use an acquiring CAS for lock acquisition.
Elliott Hughes [Fri, 3 Sep 2010 00:04:50 +0000 (17:04 -0700)]
Do less work in NewDirectByteBuffer.
There's no obvious reason to be duplicating Java code in C, and incurring
the cost of repeated crossings of the JNI boundary. Plus I want to
change/remove the Java code...
Bug:
2935622
Change-Id: I4eb25dd4b83cdbefaeed7593d3a5bbdb6cc06ced
Carl Shapiro [Thu, 2 Sep 2010 23:43:16 +0000 (16:43 -0700)]
Use an acquiring CAS for lock acquisition.
Change-Id: Idca782aedc8f2071cdfde2fe3dcba0503fa6c9f0
Elliott Hughes [Thu, 2 Sep 2010 21:11:09 +0000 (14:11 -0700)]
Update the GetDirectBufferAddress implementation.
This change is the dalvik change corresponding to the following libcore change:
https://android-git.corp.google.com/g/64326
Bug:
2935622
Change-Id: If3687e3efcc322e651c685885f6701726b5d9efc
Carl Shapiro [Thu, 2 Sep 2010 18:44:45 +0000 (11:44 -0700)]
am
e07c0f48: am
f14d72d8: am
7d12781a: Merge "Add additional context to the contention event logging." into gingerbread
Merge commit '
e07c0f48a6aa2cb2d6301930e6b4290488cd7b46' into dalvik-dev
* commit '
e07c0f48a6aa2cb2d6301930e6b4290488cd7b46':
Add additional context to the contention event logging.