Wednesday, July 6, 2011

Unfounded (floating point) compiler optimizations

These are from Xavier Leroy's POPL 2011 talk.


Thou shalt not assume…although you can assume…
x == xx == y ⇔ x - y == 0
x <= y ⇔ ¬(x > y)x <= y ⇔ x < y ∨ x == y
x == y ⇒ 1/x == 1/yx == y ⇒ 1 + x == 1 + y
x / 10 == x * 0.1x / 8 == x * 0.125
x + (y + z) == (x + y) + zx + y = y + x
x * (y * z) == xx * y = y * x
rnd64(rnd80(op)) == rnd64(op)rnd32(rnd64(op)) == rnd32(op)

0 comments:

Post a Comment