summaryrefslogtreecommitdiffstats
path: root/src/oat_file.h
Commit message (Collapse)AuthorAgeFilesLines
* Create separate Android.mk for main build targetsBrian Carlstrom2013-07-121-259/+0
| | | | | | | | | | The runtime, compiler, dex2oat, and oatdump now are in seperate trees to prevent dependency creep. They can now be individually built without rebuilding the rest of the art projects. dalvikvm and jdwpspy were already this way. Builds in the art directory should behave as before, building everything including tests. Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
* Move art to use dalvik names for .oat filesBrian Carlstrom2013-06-201-2/+3
| | | | Change-Id: Ia383c0a0847684a513cab7db44b4ecf8fe05e1c3
* Refactor ElfWriter and introduce ElfWriterQuickBrian Carlstrom2013-05-211-2/+1
| | | | Change-Id: I3eaa1fa1085bb4d28fe342a7420272720e48274b
* Various GCC 3.6 and clang build fixes.Ian Rogers2013-05-201-2/+3
| | | | | | | | | | | Remove #error in common_test.h that fires with clang build and replace with runtime error. Fix bit rot caused by not compiling with Wthread-safety. Fix clang build issues in compiler relating to missing header file definitions in object files. Other minor build and tidying issues. Change-Id: Ife829ab0664581936155be524de46e6181c750b0
* Remove remaining code related to compiled invoke and proxy stubs.Jeff Hao2013-04-081-11/+0
| | | | Change-Id: Ib0b2829fed9d7efee09d098ce4db9d13f2fa2eac
* Gracefully valdiate oat magic on OatFile::OpenBrian Carlstrom2013-03-281-1/+1
| | | | Change-Id: If234c2bfae2a7211caed0b7471d7661f2e69e2f0
* Remove code related to compiled invoke stubs.Jeff Hao2013-03-271-9/+1
| | | | | | | Note that the oat file version is now bumped to 004. A clean-oat will be necessary after syncing this change. Change-Id: If8875335b7fcc39b6b40c6f95de07da50da7b6b8
* Remove ExtractCodeAndPrelink and switch Portable to MCLinkerBrian Carlstrom2013-03-061-11/+8
| | | | Change-Id: Ia2459c7da6b79e0a1c0f1148c6e28ad9cbbe27a2
* Remove Iceland.Ian Rogers2013-02-271-3/+3
| | | | | | | ART_USE_LLVM_COMPILER is removed and when necessary ART_USE_PORTABLE_COMPILER is used in #ifdefs. Change-Id: Iffa9ce5b0246c7c427ccc4e67ecc134624632e55
* Directory restructuring of object.hIan Rogers2013-01-301-8/+11
| | | | | | | | | Break object.h into constituent files. Reduce number of #includes in other GC header files. Introduce -inl.h files to avoid mirror files #include-ing each other. Check invariants of verifier RegTypes for all constructors. Change-Id: Iecf1171c02910ac152d52947330ef456df4043bc
* Move .oat files to ELF formatBrian Carlstrom2013-01-251-12/+44
| | | | | | | | | | | | | | | Generates .oat in ELF file format using MCLinker - Uses MCLinker IRBuilder to create a synthetic .o from OatWriter output. - Uses new ElfFile for prelinking to support art image optimizations. Adapted OatFile to load using dlopen, ElfFile, or memory, removing raw MemMap mechanism. Changed image code to not assume oat data will be immediately after image to allow space for ELF headers. Passes test-art and works with installd. Change-Id: Idc026eddb5de93f4b97490c405f3ed7b39589749
* Remove now unused RelocateExecutableBrian Carlstrom2012-12-121-2/+0
| | | | Change-Id: Ief03e9154d038fa977fe5eb38b1b9aef6659231f
* Remove now unused RelocationBehaviorBrian Carlstrom2012-12-121-8/+1
| | | | Change-Id: Ifdb98a63376014a698b53bc926fb1c5512dc2e57
* Dump dex file sizes in oatdump.Ian Rogers2012-10-241-0/+1
| | | | Change-Id: I15d1ecfb9900a07b36209015e8b47718fdee19a7
* Change dex cache to be java object instead of array, add pointer to dex file ↵Mathieu Chartier2012-09-211-3/+3
| | | | | | | | | | | | | | | | in dex cache. Generic clean up to facilitate having GDB macros for Pretty* helper functions. Improved cleanliness of DexCache since having it as an object array was not the best solution. Fixed a bug in InOrderWalk caused by ResolveType sometimes allocating classes. Rename C++ Method to AbstractMethod and add two new classes Constructor, Method which both inherit from AbstractMethod. Rename done to have the C++ code be closer to the java code. Change-Id: I4995b4c5e47a3822192b08afa24a639d3b1f4da9
* NativePcOffsetToReferenceMapIan Rogers2012-09-201-5/+5
| | | | | | | | | Rather than translate a native PC to a Dex PC and then to the reference bitmap, just go straight from the native PC to the reference bitmap. Encode the native PC offsets using a hash rather than linearly searching. Change-Id: Iee1073d93c941c0a31f639e5f23cea9e9f747bee
* Syntax clean up to make clang happy.Ian Rogers2012-08-201-1/+1
| | | | Change-Id: I0984c395bbd1ee4b206eafd19915b6f68781dd16
* Compile method one-by-one.Logan Chien2012-06-271-92/+2
| | | | Change-Id: Ic56fb397f3bd6dee32372eb875261a3383eaf30c
* Fix a bunch more lint.Elliott Hughes2012-06-211-0/+1
| | | | | | | (If you ignore the compilers, we've got relatively little lint now. Fits on a single screen.) Change-Id: I51389002894d4fd8cf46f79d2bac57079322a030
* Cleanup proxy stub compiler code.Logan Chien2012-06-061-0/+2
| | | | Change-Id: I2a5815cc2a38f5cea9e9c36e5e6db92c1a861eaa
* Implement proxy stub for compiler_llvm.TDYa1272012-06-031-1/+7
| | | | Change-Id: Id8ba59c62795d885a18b3cc634e7ef370a2d2f97
* Add a SafeMap equivalent to std::map but without the error-prone operator[].Elliott Hughes2012-04-141-1/+1
| | | | Change-Id: Iae5ba2091c55a34dbd1005cf3d25fce2a8d5c1f9
* Use ELF function index to distinguish generated functions.Logan Chien2012-04-061-8/+20
| | | | | | | | | | | | | | | | | | | | We replaced LLVMLongName and LLVMStubName with ElfFuncName, and we are using the simple name: Art0, Art1, ..., ArtN, as the function name of every generated functions. This gives us 3 benefits: 1. We can avoid the ambiguous function name returned by LLVMLongName() in some special situation. 2. We don't need to have the art::Method object during the executable linking procedure. Besides, this will make bootstrapping easier. 3. Reduce the size of the ELF executable, since we don't have to save a long function name, which usually contains more than 30 characters. Change-Id: Ib698062b272458e847ad5545d7acf33a4dc9eb85
* Add ELF loader to OatFile.Logan Chien2012-04-061-22/+66
| | | | Change-Id: I062c3cc78ff9a35d0efcbc9451e7e7ccb055667b
* Kill constants.h and fix some copyright headers.Elliott Hughes2012-03-301-1/+0
| | | | Change-Id: I51c04d731d6de035328781d8ac134ad6fcf49897
* Add ELF extractor to oatdump.Logan Chien2012-03-261-0/+31
| | | | | | (cherry picked from commit 0228e7eacadb1c829e4e1064bec0792c2696e66f) Change-Id: I649b14b6f8ec9ba43f82c3670f88b064ac008ada
* Fix cpplint's whitespace complaints.Elliott Hughes2012-03-261-2/+2
| | | | Change-Id: I11fd2db2badf7bd98e7866ca2155d8ef1e112408
* oat file patchingBrian Carlstrom2012-03-191-3/+5
| | | | Change-Id: Idbbdf19f3a77498d79d043fd33ca12ce39cafbb7
* Add code size to oat filesBrian Carlstrom2012-03-151-0/+16
| | | | Change-Id: Ic2519551864dd7090ba98f2fc92318f95f92947f
* Add code dumping to oatdump.Elliott Hughes2012-02-291-1/+1
| | | | Change-Id: I7dccdffb3bac422fee52a4bd82dfac220da91722
* user build support for art (2 of 3)Brian Carlstrom2012-02-161-1/+1
| | | | Change-Id: I4696fee58e43db48540e2442c4235fc4bb02d9e3
* Fix checksum verification when opening DexFiles from OatFilesBrian Carlstrom2012-02-031-4/+9
| | | | Change-Id: Ic3d13f3d591c34f159bf0739536a1751c3e7dc75
* Fix copyright headers.Elliott Hughes2012-01-301-1/+15
| | | | Change-Id: I5b7bc76a370238d810d78522bd5531600746700f
* Upgrade to latest dlmalloc. Refactor Heap and related APIs to use STL like ↵Ian Rogers2012-01-261-6/+6
| | | | | | | | | | | | | | | | | | | | naming. We fail assertions in the existing heap code, as does Dalvik. This refactoring is to clean the heap and space APIs and to reduce duplication of data and thereby solve a failing assertion in the card table. This change also wires up clearing of soft references including before out-of-memory errors are reported. In doing this change it was made clear that mspaces are buggy (and violating invariants with the garbage collector). This change upgrades to an un-Android molested version of dlmalloc-2.8.5 and implements a version of the mspace morecore routine under ART control. run-test 061-out-of-memory is updated for current heap sizes. Change-Id: I377e83ab2a8c78afb9b1881f03356929e2c9dc64
* Add GC map to oat fileBrian Carlstrom2012-01-171-0/+8
| | | | Change-Id: Ied0462c711a09e2542f231c3b2fa31239958bd28
* Make CHECKs with char*s do what you mean.Elliott Hughes2012-01-131-1/+1
| | | | | | | | char*s are pointers in CHECKs, not 1970s-style strings. Also fix an unnecessary std::string copy and remove two unused #includes. Change-Id: I0045878f86e15c4f1d0fd4f61953334e826eb75c
* Record Class::Status information in oat fileBrian Carlstrom2012-01-111-3/+8
| | | | Change-Id: I328de86a89c7d84a211b3aed3d42b8c92c1f3464
* Combine OatDexFile and OatClasses sections of oat fileBrian Carlstrom2012-01-111-2/+2
| | | | Change-Id: Ic300c0ee60f9699a2ef351c89121750af637dade
* Merge art-cache dex files into oat filesBrian Carlstrom2012-01-041-0/+3
| | | | Change-Id: I5a327a4e0b678bd9dabb12de4e21ef05e3fefd0b
* Don't log "Failed to find OatDexFile" when failure may be expected.Ian Rogers2011-12-061-1/+2
| | | | Change-Id: I82b8eac2f90902b2adaca67d97dbf4d601c19122
* Add --image-classes to dex2oatBrian Carlstrom2011-11-291-22/+64
| | | | Change-Id: Ia88f9d302e0f9cd72be2199ee46d212d99864c67
* Refactor the use of Method by the compiler.Ian Rogers2011-11-131-2/+0
| | | | | | | | | Remove the dependence on the Method object in dex2oat, allowing lazier resolution. Introduce new find and iterators in DexFile to simplify common operations and avoid misuse of class data items. Change-Id: I39fb8252190f543d89d8b233076355cec310fe08
* dex2oat invoked by system if it can't find an oat file for a dex file.jeffhao2011-10-241-1/+1
| | | | | | | | This allows the old dalvik tests to be run without ever explicitly running dex2oat on anything. Just upload the jar files and the system will take care of generating the files it needs. Change-Id: Iad553bf6f57e28da4edb8eb0df47e62e08a0be44
* Add missing 'explicit's on single-argument constructors.Elliott Hughes2011-10-171-1/+1
| | | | Change-Id: I1494df6e74ec16238971fb4346ba184eb61c37ab
* Add oatopt drop in replacement for dexoptBrian Carlstrom2011-10-141-0/+3
| | | | Change-Id: I094375230af2d9a88e30245b390cac71be7b50f4
* Working ClassLoaderBrian Carlstrom2011-10-101-4/+10
| | | | Change-Id: Ia1122165e47f846a1d4506111849f830d9f14c1b
* Move rest of code related blobs from Method to oatBrian Carlstrom2011-10-071-4/+43
| | | | Change-Id: I55041b564ab65317c8b1f863005f20ba650a0322
* Simplify command line argumentsBrian Carlstrom2011-10-041-1/+6
| | | | Change-Id: I9d6902b0c447fd8fbe5600fd36139791b2ceefb7
* Separate oat from imageBrian Carlstrom2011-10-031-0/+101
Change-Id: If2abdb99826ead14e3465d90ba2acffd89709389