summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/ssa_builder.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix a bug in the type analysis phase of optimizing.Nicolas Geoffray2014-11-251-0/+15
| | | | | | | | | | | Dex code can lead to the creation of a phi with one float input and one integer input. Since the SSA builder trusts the verifier, it assumes that the integer input must be converted to float. However, when the register is not used afterwards, the verifier hasn't ensured that. Therefore, the compiler must remove the phi prior to doing type propagation. Change-Id: Idcd51c4dccce827c59d1f2b253bc1c919bc07df5
* Remove HTemporary when building the SSA graph.Nicolas Geoffray2014-11-111-0/+1
| | | | | | | | | | | - They are useless afterwards. If we keep them around, they can crash the dump of the graph, where they always assume a previous instruction. - In the call to HTemporary::GetType, check that the previous instruction exists. Change-Id: Ie7bf44d05cb61e3654a69725c1980925580dd3a6
* Implement register allocator for floating point registers.Nicolas Geoffray2014-10-211-0/+4
| | | | | | | | Also: - Fix misuses of emitting the rex prefix in the x86_64 assembler. - Fix movaps code generation in the x86_64 assembler. Change-Id: Ib6dcf6e7c4a9c43368cfc46b02ba50f69ae69cbe
* Build live-in, live-out and kill sets for each block.Nicolas Geoffray2014-05-071-2/+2
| | | | | | | This information will be used when computing live ranges of instructions. Change-Id: I345ee833c1ccb4a8e725c7976453f6d58d350d74
* Add a Transform to SSA phase to the optimizing compiler.Nicolas Geoffray2014-04-281-0/+71
Change-Id: Ia9700756a0396d797a00b529896487d52c989329