<div dir="ltr">No real reason, I'm sure, other than a general desire to limit the size of the zoo of flags that need maintenance.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 15, 2015 at 5:01 AM, <a href="mailto:ed@modk.it">ed@modk.it</a> <span dir="ltr"><<a href="mailto:ed@modk.it" target="_blank">ed@modk.it</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>Clang lacks support for the -fsingle-precision-constant flag.  Are there specific reasons for this or is it just waiting to be implemented?</div><div><br></div><div>This flag is especially important in the embedded world.  From <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__processors.wiki.ti.com_index.php_Floating-5FPoint-5FOptimization-23float-5Fvs.-5Fdouble-5Fvs.-5Flong-5Fdouble&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=SziAjiSP8N_rg2b1QO6yqe6DPgAQ-gYuJ_OnsXjdwQo&s=q4wtrH7nx201oaODowm17ir7UAGlp2RfLweJDCQuXLA&e=" target="_blank">http://processors.wiki.ti.com/index.php/Floating_Point_Optimization#float_vs._double_vs._long_double</a>:</div><div><br></div><div><span style="color:rgb(37,37,37);line-height:22.3999996185303px"><font face="arial, helvetica, sans-serif"><i>Once all of your data is defined as float, there are still cases where you may unknowingly cause the compiler to generate double precision operations. The most common issue is when floating point literals such as 3.14159 are used. In C these literals are of type double, and if they are used in an expression consisting of single precision operands, the operations will be promoted to double precision. The proper way to specify a single precision literal is to use an 'f' suffix, 3.14159f.</i></font></span><br></div><div><span style="color:rgb(37,37,37);line-height:22.3999996185303px"><font face="arial, helvetica, sans-serif"><i><br></i></font></span></div><div><font color="#252525" face="arial, helvetica, sans-serif"><span style="line-height:22.3999996185303px">While defining literals without the 'f' suffix may point to performance issues, in our case the target crashes when the 'f' is omitted.  This is an end user programmable system where we can't expect users to add the 'f'.  I don't fully understand why this occurs (this is a bare metal system where user code is run by a quasi-OS which is maintained by a different team and itself is compiled with a different compiler so it's hard to track down) we remedied this with the -fsingle-precision-constant in gcc.  Now that we're moving to clang/llvm we need a solution and expecting the user to add 'f' is not going to work.  </span></font></div><div><font color="#252525" face="arial, helvetica, sans-serif"><span style="line-height:22.3999996185303px"><br></span></font></div><div><font color="#252525" face="arial, helvetica, sans-serif"><span style="line-height:22.3999996185303px">Any thoughts?</span></font></div><div><font color="#252525" face="arial, helvetica, sans-serif"><span style="line-height:22.3999996185303px"><br></span></font></div><div><font color="#252525" face="arial, helvetica, sans-serif"><span style="line-height:22.3999996185303px">Thanks,</span></font></div><div><font color="#252525" face="arial, helvetica, sans-serif"><span style="line-height:22.3999996185303px">Ed</span></font></div></div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div>