<html><body><p><font size="2">Hi Masoud:</font><br><br><font size="2">This is because the math.h in your system still has __FINITE_MATH_ONLY__ support.</font><br><br><font size="2">-Ofast in clang will set macro `__FINITE_MATH_ONLY__` to 1,  so it will preprocess your code, </font><br><font size="2">and go into finite math path, which will do the renaming using __asm.</font><br><br><font size="2">extern double log (double) __asm__ ("" "__log_finite") __attribute__ ((__nothrow__ ));</font><br><br><br><font size="2">This is expected. If you don't want it, you can use -fno-finite-math-only..</font><br><br><font size="2">Or you can use newer version of glibc (hence no finite path in math.h at all).</font><br><br><br><font size="2"><br>Best,<br><br>Jinsong Ji (纪金松), PhD.<br><br>XL/LLVM on Power Compiler Development <br>E-mail: jji@us.ibm.com</font><br><br><img width="16" height="16" src="cid:1__=8FBB0F38DFF557428f9e8a93df938690918c8FB@" border="0" alt="Inactive hide details for Masoud Ataei via llvm-dev ---07/20/2020 02:09:38 PM---Hi, It seems _finite math is gone for LLVM righ"><font size="2" color="#424282">Masoud Ataei via llvm-dev ---07/20/2020 02:09:38 PM---Hi, It seems _finite math is gone for LLVM right now (</font><br><br><font size="2" color="#5F5F5F">From:        </font><font size="2">Masoud Ataei via llvm-dev <llvm-dev@lists.llvm.org></font><br><font size="2" color="#5F5F5F">To:        </font><font size="2">llvm-dev <llvm-dev@lists.llvm.org></font><br><font size="2" color="#5F5F5F">Date:        </font><font size="2">07/20/2020 02:09 PM</font><br><font size="2" color="#5F5F5F">Subject:        </font><font size="2">[EXTERNAL] [llvm-dev]  Weird behavior in LLVM regarding _finite math</font><br><font size="2" color="#5F5F5F">Sent by:        </font><font size="2">"llvm-dev" <llvm-dev-bounces@lists.llvm.org></font><br><hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br><br><br>Hi, <br><br>It seems _finite math is gone for LLVM right now (<a href="https://reviews.llvm.org/D74712"><u><font color="#0000FF">https://reviews.llvm.org/D74712</font></u></a>) but there are still trace of it here:<br>$ cat a1.c <br>#include <math.h><br>double log(double x){<br>  return x;<br>}<br>$ cat a2.c<br>#include <math.h><br>double mylog(double x){<br>  return log(x);<br>}<br>Let compile both with -Ofast. We won't see `__log_finite` in the `a2.s` but we will see the function name in `a1.s` is changed to `__log_finite`. Is it expected?<br><br><tt><font size="2">_______________________________________________<br>LLVM Developers mailing list<br>llvm-dev@lists.llvm.org<br></font></tt><tt><font size="2"><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a></font></tt><tt><font size="2"> <br></font></tt><br><br><BR>
</body></html>