summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/CodegenFactory.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2011-09-25 18:11:54 -0700
committer buzbee <buzbee@google.com> 2011-09-26 07:33:28 -0700
commitc0ecd655083e559159d1ad22a6213d16527e0e2b (patch)
treed5aae61fd7a08d6453e7c2eed6b50a9bd06742f8 /src/compiler/codegen/CodegenFactory.cc
parent9407c60800c95902fba0b3c3265520d47c1e7052 (diff)
Various optimization fixes
Multiple problems surfaced when register promotion was enabled. This CL takes care of a few, but more remain. The main problems dealt with here are related to not having data types handy on invokes. Solved by intepreting the shorty of the target and updating the operand names appropriately. The other problem was a little nastier. The codgen infrastructure wasn't expecting wide results to overlap source operands (for example: add-long (v0,v1) = (v1,v2) + (v3,v4) In the old world, the result pair would start with a fresh name and temps. In the new world, though, the register promotion mechanism retains the mappings. Not a difficult problem to solve, but I'll need to very carefully examine the existing long op generators to make sure they can handle overlaps. Change-Id: I019607620f7a78cadc9e7c57f247806d0a68243d
Diffstat (limited to 'src/compiler/codegen/CodegenFactory.cc')
0 files changed, 0 insertions, 0 deletions