This is the first of a set of patches to followup on the thread in http://lists.llvm.org/pipermail/llvm-dev/2017-March/111323.html
When -ffast-math is enabled, various math function names get redirected by the FE to alternate versions. This happens because the -ffast-math option causes the math.h header file to be preprocessed with the macro FINITE_MATH_ONLY set to 1, which causes some asm statements to be processed that rename certain math functions.
For example, 'exp' gets put into the IR as '__exp_finite'
The alternate versions are currently not recognized by the optimizer, which results in some missed optimizations opportunities that would have been handled without the -ffast-math flag.
This change adds important functions to the target library info table. Subsequent patches will make use of this change to add some of these function for cases of constant folding or vectorization.
Is there a reason for these being inserted where they are? It looks rather arbitrary.