OSDN Git Service
Brian Carlstrom [Wed, 15 Sep 2010 22:24:08 +0000 (15:24 -0700)]
Merge commit '
def30fc213d62fc93edce2ca63967ab93380075d' into mm
Change-Id: Ifb62d9074c3717c01bac712749f89c81757ebb33
Andy McFadden [Wed, 15 Sep 2010 20:57:01 +0000 (13:57 -0700)]
Merge "Update docs for removal of dalvik.vm.deadlock-predict." into dalvik-dev
Dan Bornstein [Wed, 15 Sep 2010 20:13:33 +0000 (13:13 -0700)]
resolved conflicts for merge of
a5d99892 to dalvik-dev
Change-Id: I3c030a6b19416a2ac3ca709cdbcbc6b41e6379d3
Dan Bornstein [Wed, 15 Sep 2010 18:39:00 +0000 (11:39 -0700)]
am
8f069486: am
32bc0787: Add use of sentinel in BOOTCLASSPATH entries during preopt.
Merge commit '
8f069486a35e9032762063cb7c389ebde76d3529'
* commit '
8f069486a35e9032762063cb7c389ebde76d3529':
Add use of sentinel in BOOTCLASSPATH entries during preopt.
Andy McFadden [Wed, 15 Sep 2010 18:22:26 +0000 (11:22 -0700)]
Update docs for removal of dalvik.vm.deadlock-predict.
I don't think any external developers have used this, so there's not
much risk of breaking a script. The feature itself still exists, but
now you have to use the more general dalvik.vm.extra-opts property
to enable it.
Bug
2844083
Change-Id: Id4e1d8466e9b9e5818331ab1f40429040c49437b
Andy McFadden [Wed, 15 Sep 2010 17:32:20 +0000 (10:32 -0700)]
No longer exciting.
Bug
3001709.
Change-Id: I7cb2033265f419b8a0cfc148cbc8e976686489d9
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
Dan Bornstein [Tue, 14 Sep 2010 23:15:49 +0000 (16:15 -0700)]
Clarify the use of --boot-dirs in the header comment.
Change-Id: I89cf275e6188d5615bfb4e45fe35580b0ebe5be2
Dan Bornstein [Tue, 14 Sep 2010 20:01:58 +0000 (13:01 -0700)]
am
32bc0787: Add use of sentinel in BOOTCLASSPATH entries during preopt.
Merge commit '
32bc0787307ba57e92fa74c52da550e2ca22af7f' into gingerbread-plus-aosp
* commit '
32bc0787307ba57e92fa74c52da550e2ca22af7f':
Add use of sentinel in BOOTCLASSPATH entries during preopt.
Dan Bornstein [Tue, 14 Sep 2010 00:30:10 +0000 (17:30 -0700)]
Add use of sentinel in BOOTCLASSPATH entries during preopt.
This change introduces the use of the sentinel string "/./" inside
BOOTCLASSPATH entries to signal the start of the portion of the paths
that should be preserved in optimized dex file dependency lists. It's
a little grotty, but it does serve the purpose of allowing host side
dexopt to do its thing inside a build directory without letting the
host path leading up to that build directory to leak into the results.
This change also makes it an error (instead of just a warning) for
there to be BOOTCLASSPATH entries that are not absolute paths (either
truly absolute or ones with the sentinels as per above).
FWIW, dx uses this sentinel in a similar way.
Change-Id: Ic8d0533d3ee0bd7a1d4d06fcf9232c56f0a60abf
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.