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