aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2015-11-29 20:58:04 +0000
committerDavide Italiano <davide@freebsd.org>2015-11-29 20:58:04 +0000
commitb8b7133c9421e9cd1af7c2a525e207cae5316f6f (patch)
tree425b15fcd5af8de692970899cc730ac2f747e5a8 /llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
parenta5c0493ddbb059c54acdfe1004cd3b702a0a5c95 (diff)
downloadllvm-b8b7133c9421e9cd1af7c2a525e207cae5316f6f.zip
llvm-b8b7133c9421e9cd1af7c2a525e207cae5316f6f.tar.gz
llvm-b8b7133c9421e9cd1af7c2a525e207cae5316f6f.tar.bz2
[SimplifyLibCalls] Tranform log(pow(x, y)) -> y*log(x).
This one is enabled only under -ffast-math. There are cases where the difference between the value computed and the correct value is huge even for ffast-math, e.g. as Steven pointed out: x = -1, y = -4 log(pow(-1), 4) = 0 4*log(-1) = NaN I checked what GCC does and apparently they do the same optimization (which result in the dramatic difference). Future work might try to make this (slightly) less worse. Differential Revision: http://reviews.llvm.org/D14400 llvm-svn: 254263
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp')
0 files changed, 0 insertions, 0 deletions