Reg promotion fix; full optimization by default
As anticipated, the register promotion problem was related to type
inference. The Dalvik bytecode definition doesn't explicitly carry
type information on some opcodes. The problem this time was that
invoke results are stored in a magic untyped return location, which is
later accesses via (also untyped) OP_MOVE_RESULT.
Most of the time, the existing type inference mechanism was able to
figure out the result register type, but there was a pattern in which
it could be missed. Fixed (the last type inference bug, I hope).
This CL also re-enables full optimization by default (which will also
result in a quite significant reduction in code size).
2 files changed