summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/optimizing_compiler.cc
Commit message (Collapse)AuthorAgeFilesLines
* Plug code generator into liveness analysis.Nicolas Geoffray2014-06-101-1/+1
| | | | | | Also implement spill slot support. Change-Id: If5e28811e9fbbf3842a258772c633318a2f4fafc
* Add a linear scan register allocator to the optimizing compiler.Nicolas Geoffray2014-05-261-3/+10
| | | | | | | | | | | | This is a "by-the-book" implementation. It currently only deals with allocating registers, with no hint optimizations. The changes remaining to make it functional are: - Allocate spill slots. - Resolution and placements of Move instructions. - Connect it to the code generator. Change-Id: Ie0b2f6ba1b98da85425be721ce4afecd6b4012a4
* Build live ranges in preparation for register allocation.Nicolas Geoffray2014-05-191-0/+1
| | | | Change-Id: I7ae24afaa4e49276136bf34f4ba7d62db7f28c01
* Add a compilation tracing mechanism to the new compiler.Nicolas Geoffray2014-05-141-0/+23
| | | | | | Code mostly imported from: https://android-review.googlesource.com/#/c/81653/. Change-Id: I150fe942be0fb270e03fabb19032180f7a065d13
* Add loop recognition and CFG simplifications in new compiler.Nicolas Geoffray2014-05-131-0/+1
| | | | | | | | | We do three simplifications: - Split critical edges, for code generation from SSA (new). - Ensure one back edge per loop, to simplify loop recognition (new). - Ensure only one pre header for a loop, to simplify SSA creation (existing). Change-Id: I9bfccd4b236a00486a261078627b091c8a68be33
* Merge "Build live-in, live-out and kill sets for each block."Nicolas Geoffray2014-05-071-0/+2
|\
| * Build live-in, live-out and kill sets for each block.Nicolas Geoffray2014-05-071-0/+2
| | | | | | | | | | | | | | This information will be used when computing live ranges of instructions. Change-Id: I345ee833c1ccb4a8e725c7976453f6d58d350d74
* | Give Compiler a back reference to the driver.Ian Rogers2014-05-061-5/+5
|/ | | | | | | | | | The compiler driver is a single object delegating work to the compiler, rather than passing it through to every Compiler call make it a member of Compiler so that it maybe queried. This simplifies the Compiler API and makes the relationship to CompilerDriver more explicit. Remove reference arguments that contravene code style. Change-Id: Iba47f2e3cbda679a7ec7588f26188d77643aa2c6
* Add a Transform to SSA phase to the optimizing compiler.Nicolas Geoffray2014-04-281-0/+4
| | | | Change-Id: Ia9700756a0396d797a00b529896487d52c989329
* Revert "Revert "Revert "Use trampolines for calls to helpers"""Dave Allison2014-04-091-1/+0
| | | | | | This reverts commit f9487c039efb4112616d438593a2ab02792e0304. Change-Id: Id48a4aae4ecce73db468587967968a3f7618b700
* Revert "Revert "Use trampolines for calls to helpers""Dave Allison2014-04-091-0/+1
| | | | | | | | | This reverts commit 081f73e888b3c246cf7635db37b7f1105cf1a2ff. Change-Id: Ibd777f8ce73cf8ed6c4cb81d50bf6437ac28cb61 Conflicts: compiler/dex/quick/mir_to_lir.h
* Revert "Use trampolines for calls to helpers"Dave Allison2014-04-071-1/+0
| | | | | | This reverts commit 754ddad084ccb610d0cf486f6131bdc69bae5bc6. Change-Id: Icd979adee1d8d781b40a5e75daf3719444cb72e8
* Use trampolines for calls to helpersDave Allison2014-04-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | This is an ARM specific optimization to the compiler that uses trampoline islands to make calls to runtime helper functions. The intention is to reduce the size of the generated code (by 2 bytes per call) without affecting performance. By default this is on when generating an OAT file. It is off when compiling to memory. To switch this off in dex2oat, use the command line option: --no-helper-trampolines Enhances disassembler to print the trampoline entry on the BL instruction like this: 0xb6a850c0: f7ffff9e bl -196 (0xb6a85000) ; pTestSuspend Bug: 12607709 Change-Id: I9202bdb7cf21252ad807bd48701f1f6ce8e3d0fe
* Add support for invoke-static in optimizing compiler.Nicolas Geoffray2014-03-311-2/+16
| | | | | | | Support is limited to calls without parameters and returning void. For simplicity, we currently follow the Quick ABI. Change-Id: I54805161141b7eac5959f1cae0dc138dd0b2e8a5
* Run Java tests with the optimizing compiler.Nicolas Geoffray2014-03-191-4/+9
| | | | | | | Also fix a vector.reserve -> vector.resize braino, and build a GC map that dex2oat expects. Change-Id: I6acf2f90a4c32f90b79bf7709bf2e43931b98757
* Plug new optimizing compiler in compilation pipeline.Nicolas Geoffray2014-03-181-1/+65
| | | | | | Also rename accessors to ART's conventions. Change-Id: I344807055b98aa4b27215704ec362191464acecc
* Add command line support for enabling the optimizing compiler.Nicolas Geoffray2014-03-131-0/+32
Also run tests with the optimizing compiler enabled when the file art/USE_OPTIMIZING_COMPILER is present. Change-Id: Ibc33eed62a43547bc3b9fe786d014c0d81b5add8