llvm-project/llvm/test/Transforms/Util
Andrew Ng 1606fc0bf9 [SimplifyLibCalls] Fix infinite loop with fast-math optimization.
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
2017-04-25 12:36:14 +00:00
..
PredicateInfo PredicateInfo: Support switch statements 2017-02-22 22:20:58 +00:00
clone-dicompileunit.ll IR: Consider two DISubprograms to be odr-equal if they have the same template parameters. 2017-02-06 21:23:03 +00:00
combine-alias-scope-metadata.ll
flattencfg.ll
libcalls-fast-math-inf-loop.ll [SimplifyLibCalls] Fix infinite loop with fast-math optimization. 2017-04-25 12:36:14 +00:00
libcalls-shrinkwrap-double.ll Conditionally eliminate library calls where the result value is not used 2016-10-18 21:36:27 +00:00
libcalls-shrinkwrap-float.ll Conditionally eliminate library calls where the result value is not used 2016-10-18 21:36:27 +00:00
libcalls-shrinkwrap-long-double.ll Conditionally eliminate library calls where the result value is not used 2016-10-18 21:36:27 +00:00
lowerswitch.ll
simplify-dbg-declare-load.ll Fix some broken CHECK lines. 2017-01-22 20:28:56 +00:00
split-bit-piece.ll [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
store-first-op.ll [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
strip-gc-relocates.ll [StripGCRelocates] New pass to remove gc.relocates added by RS4GC 2016-10-21 18:43:16 +00:00
strip-nonlinetable-debuginfo-containingtypes.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
strip-nonlinetable-debuginfo-cus.ll Add -strip-nonlinetable-debuginfo capability 2016-10-25 18:44:13 +00:00
strip-nonlinetable-debuginfo-localvars.ll Add -strip-nonlinetable-debuginfo capability 2016-10-25 18:44:13 +00:00
strip-nonlinetable-debuginfo-loops.ll Teach stripNonLineTableDebugInfo() to remap DILocations in !llvm.loop nodes. 2017-03-30 20:10:56 +00:00
strip-nonlinetable-debuginfo-subroutinetypes.ll Add -strip-nonlinetable-debuginfo capability 2016-10-25 18:44:13 +00:00