Subzero: Improve lowering sequence for "a=b*b".
Originally, the lowering sequence looked like:
T = b
T *= b
a = T
Now it looks like:
T = b
T *= T
a = T
If "b" gets a register and its live range ends after this instruction, then the new lowering sequence allows its register to be reused for "T". This decreases register pressure, and removes an instruction (register move) from what could be a critical path.
This optimization is actually applicable for most arithmetic operations whose source operands are identical, but mul/fmul are the only ones that seem at all likely in practice.
BUG= none
R=kschimpf@google.com
Review URL: https://codereview.chromium.org/
1377213004 .