summaryrefslogtreecommitdiffstats
path: root/dexopt
Commit message (Collapse)AuthorAgeFilesLines
* Remove unnecessary JNI_H_INCLUDE from LOCAL_C_INCLUDESBrian Carlstrom2013-05-031-2/+1
| | | | Change-Id: I463a62898e5dd8eb01d1dfbaf71f67d8e1b4e67c
* Tracking changes to *-host for host shared librariesBrian Carlstrom2013-05-011-9/+2
| | | | Change-Id: I764889011cc259cdca306e2145bcc4c8c75eced5
* Lose libnativehelper to its own project for the PDK.Elliott Hughes2012-05-031-2/+2
| | | | | Bug: 6369821 Change-Id: Iae06cf1570a14ddefad6b31eec904d9fa598d89f
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-081-10/+10
| | | | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Also fix an occurrence of LOGW missed in an earlier change. Bug: 5449033 Change-Id: I2e3b23839e6dcd09015d6402280e9300c75e3406
* Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-061-4/+4
| | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: Ia5d301248024df26c2a29dabdfe738e39ec87c82
* Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGESteve Block2012-01-051-1/+1
| | | | | | | See https://android-git.corp.google.com/g/156801 Bug: 5449033 Change-Id: Ic558031c75b3702d90eb78bd730501ae5d3c077b
* Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGESteve Block2012-01-031-1/+1
| | | | | | | See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: Ic663376d1ad6a6cb14bf81405ad9afd247cf2f60
* Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-5/+5
| | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I8bd96961e369a08e86ff78b82d90f20f42787eb1
* Remove the simulator target from all makefiles.Jeff Brown2011-07-111-4/+2
| | | | | | Bug: 5010576 Change-Id: I544b54b673d9fd42197a5c97a291578a0bd0db5f
* Break a dependency on frameworks/base when building a host VM.Elliott Hughes2011-06-151-2/+2
| | | | | | | These aren't necessarily good abstractions, but they're no worse than what we had, and having them factored out is a step in the right direction. Change-Id: I5b839608317d2ca1ca54d8a38624fb686f2c37de
* Tidy up some includes.Elliott Hughes2011-06-081-1/+1
| | | | Change-Id: I5abd4f8ab06db0c77fa369fcd97d8f1259b343df
* Use std::string rather than malloc/free for saneDirName.Elliott Hughes2011-06-071-0/+7
| | | | | | Also use std::vector instead of the cutils/array cruft. Change-Id: I273147335cafbac5d336955f53b0b29d015f0589
* Prefer printf format "%#x" over "0x%x".Dan Bornstein2011-05-261-1/+1
| | | | | | I exist to serve. Change-Id: I8e2880b20eefd466da8515d5b6b0c5cb75d56169
* Further conservation of newlines.Dan Bornstein2011-05-261-20/+20
| | | | | | Friends don't let friends end LOG() strings with newlines. Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00
* Make libdex structures tool friendly.Carl Shapiro2011-04-272-16/+12
| | | | | | | | | | Previously, the struct name and its typedef name were identical. This confuses emacs and etags. This change eliminates the typedef names and removes the extern "C" wrapping the libdex header files. To support this change the transitive C dependencies have been made to compile as C++ instead. Change-Id: I7065f32d61d776f9b09c7b461adf2502268d852f
* Update dexopt control logicAndy McFadden2011-02-251-0/+1
| | | | | | | | | | | | | | | | | This adds a new mode, -Xdexopt:full. In most ways it behaves like -Xdexopt:verified (the default), but when an un-optimized class is loaded we will do a full set of optimizations instead of just the "essential" set. For classes that are verified and optimized by dexopt (which is to say, most of them), this has no effect. For the others, this trades off speed for space, substituting quickened instructions but causing copy-on-write of pages mapped from the DEX file. This also demotes the substitution of execute-inline opcodes to "non-essential" status. Change-Id: I392fb2ff0bf0af83c000937079895d25ce7f0cb1
* Minor tweaks.Andy McFadden2010-12-101-11/+0
| | | | | | | | | | | | | Clean up replaceFailingInstruction() a little. In particular, use the appropriate method for extracting the opcode, and assert that the instruction we're replacing was marked "can throw" (if it wasn't, the list of predecessors in the catch handler will be wrong). Also remove a declaration that became redundant when we started replacing instructions in place (as opposed to making a copy of the method body). Strip out a bit of stale #if 0 code. Change-Id: Iccf80647237672e2da4b1b46ca9627ae3344704d
* Fix debug statements.Patrick Scott2010-10-211-1/+1
| | | | | | Shows up without NDEBUG. Change-Id: I1270266369beb783242283af60ee268118c8fb3d
* Correct dexopt for uniprocessors.Andy McFadden2010-09-301-9/+14
| | | | | | | | | | | | | | | | | | The SMP flag was defaulting to "true" for dexopt, even on uniprocessors. With this change the VM now has three choices: dexopt for SMP, dexopt for uniprocessor, or dexopt for current system. The last is used for just-in-time dexopt (used by -eng and -userdebug builds on bootstrap DEX files) and installd dexopt (used for apps on all builds). The dexopt used by the build system during -user builds will either be explicitly SMP or explicitly uniprocessor, since "current system" has no meaning when you're cross-dexopting. Also, unified the dexopt control flags into a single enum. (cherry-pick from dalvik-dev) Change-Id: Id1d9c548ca8567585a28ef9ee911cc2ac6b116dd
* Plumb SMP optimization control through to dexopt.Dan Bornstein2010-09-281-3/+13
| | | | Change-Id: I3bfaf6723e7b14d001f9de60cc1c1fd4f8e1ed99
* Add optional tags to dalvik.Jesse Wilson2010-09-161-0/+2
| | | | Change-Id: I29a78ccb6312d12b3ef0ed02cfbc638a5b01db9c
* We also need to tell it the file mode when creating the output.Dan Bornstein2010-09-121-1/+1
| | | | | | Thanks to Elliott for catching this. Change-Id: Ibb89ece3dd2e1d39a8a2d51cb8b7278842e057a1
* Actually, dexopt needs to read the optimized dex file too.Dan Bornstein2010-09-121-1/+1
| | | | Change-Id: Ib36cc0fd134a6916100060c8e2eee5158ac87201
* Move declarations to the top to avoid potential uninitialized use.Dan Bornstein2010-09-121-5/+10
| | | | | | | I didn't catch the warnings among the build spew before. Also, made "--preopt" use stderr for its complaints about arguments. Change-Id: I8d470ccc40c4cdc9131beb0991060358039e2727
* Add a new "--preopt" mode to dexopt, for running on the host.Dan Bornstein2010-09-121-44/+130
| | | | | | | | 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
* Support dalvikvm on a Linux x86 hostJesse Wilson2010-08-181-10/+23
| | | | Change-Id: Id166ab03a01833e06ec1a9aa0059e4eb28ec04ce
* Remove repeated newlines at the end of files.Carl Shapiro2010-06-081-1/+0
| | | | Change-Id: I1e3d103a7b932ef21acedb6438c0f26b315df28f
* resolved conflicts for merge of fc0dcfa2 to dalvik-devAndy McFadden2010-05-211-0/+6
|\ | | | | | | Change-Id: I54a5b9996252a22e8dd0214f4a4ccc8914f876ea
| * Atomic/SMP update.Andy McFadden2010-05-201-0/+6
| | | | | | | | | | | | | | | | | | Moved quasiatomic 64-bit operations in here. They still need work. Use the new libcutils atomic-inline header for our memory barriers. Adjust makefiles to set SMP definition appropriately. Change-Id: Id2ab2123724bb0baeb32f862b5568392aba35a59
| * Dalvik Zip rewrite.Andy McFadden2010-05-061-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the way zip archives are handled. This is necessary to deal with very large (~1GB) APK files, for which our current approach of mapping the entire file falls over. We now do the classic scavenger hunt for the End Of Central Directory magic on a buffer of data read from the file, instead of a memory-mapped section. We use what we find to create a map that covers the Central Directory only. For most uses in the VM this is all we really need, since we just want to check file attributes vs. the optimized DEX to see if we're out of date. If the caller is interested in unpacking the file contents, we have to do an additional file read to discover the size of the Local File Header section so we can skip past it. We also now do a file-to-file extraction using read() calls instead of a buffer-to-file extraction on mmap()ed data. No difference in performance (as measured by first-boot dexopt). Since this is more of a rewrite than an update, I also took the opportunity to change buffer size variables from "long" to "size_t", and normalized return values to int (some were using bool, which is common in the VM but was mixed in the zip code). Failure messages are now all LOGW with the word "Zip" up front (didn't want to change log tag away from "dalvikvm"). Also, removed a not-quite-right check in the "map part of a file" code, and clarified that the file offset is absolute. For bug 2620103. Change-Id: I745fb15abb541376f467969ffe422222676f1e5f
* | Dalvik Zip rewrite.Andy McFadden2010-04-291-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change the way zip archives are handled. This is necessary to deal with very large (~1GB) APK files, for which our current approach of mapping the entire file falls over. We now do the classic scavenger hunt for the End Of Central Directory magic on a buffer of data read from the file, instead of a memory-mapped section. We use what we find to create a map that covers the Central Directory only. For most uses in the VM this is all we really need, since we just want to check file attributes vs. the optimized DEX to see if we're out of date. If the caller is interested in unpacking the file contents, we have to do an additional file read to discover the size of the Local File Header section so we can skip past it. We also now do a file-to-file extraction using read() calls instead of a buffer-to-file extraction on mmap()ed data. No difference in performance (as measured by first-boot dexopt). Since this is more of a rewrite than an update, I also took the opportunity to change buffer size variables from "long" to "size_t", and normalized return values to int (some were using bool, which is common in the VM but was mixed in the zip code). Failure messages are now all LOGW with the word "Zip" up front (didn't want to change log tag away from "dalvikvm"). Also, removed a not-quite-right check in the "map part of a file" code, and clarified that the file offset is absolute. For bug 2620103. Change-Id: I745fb15abb541376f467969ffe422222676f1e5f
* | Do not include assert.h in places where it may shadow the definitionCarl Shapiro2010-02-111-1/+0
|/ | | | | | provided by Common.h if WITH_DALVIK_ASSERTS is defined. The include from HeapBitmap.h was notable as it redefined the Dalvik friendly assert macro with the useless libc macro across all of the GC sources.
* Add back missing shared libraries used by executable in link command. TheseDoug Kwan2009-10-021-0/+2
| | | | | libraries are linked though dependencies of other libraries. While that works, it is not the right thing to do.
* Inline some java.lang.Math functions.Andy McFadden2009-06-301-1/+1
| | | | | | | | | | | | For a first pass, I inlined the various flavors of abs(), min()/max() on integers, sqrt(), cos(), and sin(). These were selected based on a static analysis of a few of our jar files. A test of repeated sin/cos/sqrt calls on a G1-class device showed an improvement of 28%. This would improve more on devices with VFP support if the VM is compiled with -mfpu=vfp. Also: clarified a warning and removed some "#if 0" stuff.
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-032-0/+526
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-032-526/+0
|
* auto import from //branches/cupcake/...@130745The Android Open Source Project2009-02-101-5/+49
|
* auto import from //branches/cupcake/...@125939The Android Open Source Project2009-01-091-0/+9
|
* Initial ContributionThe Android Open Source Project2008-10-212-0/+473