[llvm] r198093 - Disable transforms that introduce calls to exp10*() on Linux due to

İsmail Dönmez ismail at donmez.ws
Thu Apr 17 06:27:31 PDT 2014


Hi,


On Sat, Dec 28, 2013 at 4:40 AM, Chandler Carruth <chandlerc at gmail.com>wrote:

> Author: chandlerc
> Date: Fri Dec 27 20:40:19 2013
> New Revision: 198093
>
> URL: http://llvm.org/viewvc/llvm-project?rev=198093&view=rev
> Log:
> Disable transforms that introduce calls to exp10*() on Linux due to
> widespread glibc bugs.
>
> The glibc implementation of exp10 has a very serious precision bug in
> version 2.15 (and older versions). This is still very widely used (the
> current Ubuntu LTS for example uses it) and so it isn't reasonable to
> make transforms that produce these functions. This fixes many
> miscompiles introduced when we started transforming pow(10.0, ...) into
> exp10, and it may have fixed other latent miscompiles where exp10
> provided sufficient precision but exp10f did not.
>
> This is all really horrible. The primary bug has been fixed for over
> a year and glibc 2.18 works correctly for the test cases I have, but it
> will be 2017 before the LTS using 2.15 is no longer supported by Ubuntu
> (and thus reasonable for folks to be relying on). =[ We're either going
> to need to live without these optimizations, or find a way to switch
> behavior more dynamically than using simply the fact that the OS is
> "Linux".
>
>
Since glibc 2.19 stable is now out now, do you think it makes sense to
enable these for >= 2.19?

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140417/45a18776/attachment.html>


More information about the llvm-commits mailing list