Float Constant CSE

Load multiple uses of a floating point constant (between two call
instructions or block start/end) into a variable before its first use.
  t1 = b + 1.0
  t2 = c + 1.0
Gets transformed to:
  t0 = 1.0
  t0_1 = t0
  t1 = b + t0_1
  t2 = c + t0_1
Call instructions reset the procedure, but uses the same variable, just
in case it got a register. We are assuming floating point registers are
not calee saved in general. Example, continuing from before:
  result = call <some function>
  t3 = d + 1.0
Gets transformed to:
  result = call <some function>
  t0_2 = t0
  t3 = d + t0_2

BUG= none
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/2208523002 .
4 files changed