• Kevin Burke's avatar
    cmd/compile: precompute constant square roots · 8e24a98a
    Kevin Burke authored
    If a program wants to evaluate math.Sqrt for any constant value
    (for example, math.Sqrt(3)), we can replace that expression with
    its evaluation (1.7320508075688772) at compile time, instead of
    generating a SQRT assembly command or equivalent.
    
    Adds tests that math.Sqrt generates the correct values. I also
    compiled a short program and verified that the Sqrt expression was
    replaced by a constant value in the "after opt" step.
    
    Adds a short doc to the top of generic.rules explaining what the file
    does and how other files interact with it.
    
    Fixes #15543.
    
    Change-Id: I6b6e63ac61cec50763a09ba581024adeee03d4fa
    Reviewed-on: https://go-review.googlesource.com/27457Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    8e24a98a
ssa_test.go 3.44 KB