summaryrefslogtreecommitdiffstats
path: root/compiler/dex/arena_bit_vector.h
Commit message (Collapse)AuthorAgeFilesLines
* Move arena_bit_vector.h/cc to compiler/utils.Nicolas Geoffray2014-02-261-78/+0
| | | | | | | Also move MIR's BasicBlock related code from arena_bit_vector.h to bit_vector_block_iterator.cc. Change-Id: I85c224b387d31cf57a1ef1f1a36eaadf22f1c85d
* Implements a BasicBlock iterator using the ArenaBitVector.Jean Christophe Beyler2014-02-251-0/+31
| | | | | | | | | | | Added the implementation of a BasicBlock iterator using the ArenaBitVector. This patch only adds the implementation of the iterator and does not yet use it everywhere it could be. Added one example in ssa_transformation.cc of its use. Change-Id: Ia85d58320c80c48a43609265ea5318a416c71f18 Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
* Re-apply: Initial check-in of an optimizing compiler.Nicolas Geoffray2014-02-191-1/+1
| | | | | | | | | The classes and the names are very much inspired by V8/Dart. It currently only supports the RETURN_VOID dex instruction, and there is a pretty printer to check if the building of the graph is correct. Change-Id: I28e125dfee86ae6ec9b3fec6aa1859523b92a893
* Revert "Initial check-in of an optimizing compiler."Nicolas Geoffray2014-02-191-1/+1
| | | | | | | | g++ warnings turned into errors. This reverts commit 68a5fefa90f03fdf5a238ac85c9439c6b03eae96. Change-Id: I09bb95d9cc13764ca8a266c41af04801a34b9fd0
* Initial check-in of an optimizing compiler.Nicolas Geoffray2014-02-191-1/+1
| | | | | | | | | The classes and the names are very much inspired by V8/Dart. It currently only supports the RETURN_VOID dex instruction, and there is a pretty printer to check if the building of the graph is correct. Change-Id: Id5ef1b317ab997010d4e3888e456c26bef1ab9c0
* Omit OatMethodOffsets for classes without compiled codeBrian Carlstrom2013-10-281-1/+1
| | | | Change-Id: If0d290f4aebc778ff12d8fed017c270ad2ac3220
* Refactor ArenaBitVector to create more general BitVectorBrian Carlstrom2013-10-241-90/+9
| | | | Change-Id: Ib26f2884de9ce7d620048bdf5ed6dec639622e41
* 64-bit prepbuzbee2013-10-211-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | Preparation for 64-bit roll. o Eliminated storing pointers in 32-bit int slots in LIR. o General size reductions of common structures to reduce impact of doubled pointer sizes: - BasicBlock struct was 72 bytes, now is 48. - MIR struct was 72 bytes, now is 64. - RegLocation was 12 bytes, now is 8. o Generally replaced uses of BasicBlock* pointers with 16-bit Ids. o Replaced several doubly-linked lists with singly-linked to save one stored pointer per node. o We had quite a few uses of uintptr_t's that were a holdover from the JIT (which used pointers to mapped dex & actual code cache addresses rather than trace-relative offsets). Replaced those with uint32_t's. o Clean up handling of embedded data for switch tables and array data. o Miscellaneous cleanup. I anticipate one or two additional CLs to reduce the size of MIR and LIR structs. Change-Id: I58e426d3f8e5efe64c1146b2823453da99451230
* More compile-time tuningbuzbee2013-09-081-3/+5
| | | | | | Small, but measurable, improvement. Change-Id: Ie3c7180f9f9cbfb1729588e7a4b2cf6c6d291c95
* New arena memory allocator.Mathieu Chartier2013-08-261-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before we were creating arenas for each method. The issue with doing this is that we needed to memset each memory allocation. This can be improved if you start out with arenas that contain all zeroed memory and recycle them for each method. When you give memory back to the arena pool you do a single memset to zero out all of the memory that you used. Always inlined the fast path of the allocation code. Removed the "zero" parameter since the new arena allocator always returns zeroed memory. Host dex2oat time on target oat apks (2 samples each). Before: real 1m11.958s user 4m34.020s sys 1m28.570s After: real 1m9.690s user 4m17.670s sys 1m23.960s Target device dex2oat samples (Mako, Thinkfree.apk): Without new arena allocator: 0m26.47s real 0m54.60s user 0m25.85s system 0m25.91s real 0m54.39s user 0m26.69s system 0m26.61s real 0m53.77s user 0m27.35s system 0m26.33s real 0m54.90s user 0m25.30s system 0m26.34s real 0m53.94s user 0m27.23s system With new arena allocator: 0m25.02s real 0m54.46s user 0m19.94s system 0m25.17s real 0m55.06s user 0m20.72s system 0m24.85s real 0m55.14s user 0m19.30s system 0m24.59s real 0m54.02s user 0m20.07s system 0m25.06s real 0m55.00s user 0m20.42s system Correctness of Thinkfree.apk.oat verified by diffing both of the oat files. Change-Id: I5ff7b85ffe86c57d3434294ca7a621a695bf57a9
* Fix cpplint readability/braces issuesBrian Carlstrom2013-07-181-4/+4
| | | | Change-Id: I56b88956510077b0e13aad4caee8898313fab55b
* Fix cpplint whitespace/parens issuesBrian Carlstrom2013-07-181-1/+1
| | | | Change-Id: Ifc678d59a8bed24ffddde5a0e543620b17b0aba9
* Fix cpplint whitespace/blank_line issuesBrian Carlstrom2013-07-181-1/+0
| | | | Change-Id: Ice937e95e23dd622c17054551d4ae4cebd0ef8a2
* Fix cpplint runtime/explicit issuesBrian Carlstrom2013-07-171-1/+1
| | | | Change-Id: I352ba0b427f1ff9b22887693952b180eae0839ba
* Fix multiple inclusion guards to match new pathnamesBrian Carlstrom2013-07-171-3/+3
| | | | Change-Id: Id7735be1d75bc315733b1773fba45c1deb8ace43
* Create separate Android.mk for main build targetsBrian Carlstrom2013-07-121-0/+127
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