forked from OSchip/llvm-project
1606fc0bf9
One of the fast-math optimizations is to replace calls to standard double functions with their float equivalents, e.g. exp -> expf. However, this can cause infinite loops for the following: float expf(float val) { return (float) exp((double) val); } A similar inline declaration exists in the MinGW-w64 math.h header file which when compiled with -O2/3 and fast-math generates infinite loops. So this fix checks that the calling function to the standard double function that is being replaced does not match the float equivalent. Differential Revision: https://reviews.llvm.org/D31806 llvm-svn: 301304 |
||
---|---|---|
.. | ||
PredicateInfo | ||
clone-dicompileunit.ll | ||
combine-alias-scope-metadata.ll | ||
flattencfg.ll | ||
libcalls-fast-math-inf-loop.ll | ||
libcalls-shrinkwrap-double.ll | ||
libcalls-shrinkwrap-float.ll | ||
libcalls-shrinkwrap-long-double.ll | ||
lowerswitch.ll | ||
simplify-dbg-declare-load.ll | ||
split-bit-piece.ll | ||
store-first-op.ll | ||
strip-gc-relocates.ll | ||
strip-nonlinetable-debuginfo-containingtypes.ll | ||
strip-nonlinetable-debuginfo-cus.ll | ||
strip-nonlinetable-debuginfo-localvars.ll | ||
strip-nonlinetable-debuginfo-loops.ll | ||
strip-nonlinetable-debuginfo-subroutinetypes.ll |