[lldb-dev] [llvm] r189624 - Change default # of digits for APFloat::toString

Eli Friedman eli.friedman at gmail.com
Fri Sep 6 15:09:57 PDT 2013


http://llvm.org/bugs/show_bug.cgi?id=17135

-Eli


On Thu, Sep 5, 2013 at 2:01 PM, Thirumurthi, Ashok <
ashok.thirumurthi at intel.com> wrote:

>  Thanks for the perspective, Eli,****
>
> ** **
>
> I see now that I can trigger similar failures in LLDB independent of the
> algorithm used to select the fixed precision.  I’ll withdraw my LLDB patch
> in favor of an xfail test.  Were you thinking of filing a Bugzilla report
> to capture your WIP?  Cheers,****
>
> ** **
>
> **-        **Ashok****
>
> ** **
>
> *From:* Eli Friedman [mailto:eli.friedman at gmail.com]
> *Sent:* Thursday, September 05, 2013 4:38 PM
> *To:* Thirumurthi, Ashok
> *Cc:* lldb-dev at cs.uiuc.edu
> *Subject:* Re: [llvm] r189624 - Change default # of digits for
> APFloat::toString****
>
> ** **
>
> On Wed, Sep 4, 2013 at 7:21 AM, Thirumurthi, Ashok <
> ashok.thirumurthi at intel.com> wrote:****
>
> Hi Eli,
>
> I noticed that your commit introduces a regression in the LLDB test suite
> because expression evaluation of a floating point constant like 2.234f
> results in a value like 2.23399997.  I suspect that this occurs because
> 2.234f is really just the closest number to 2.23399997 that can be
> represented using floating point precision.  I noticed that your commit
> increases the default number of digits in the precision of APFloat.  I can
> see how that's useful when performing intermediate computation, but I would
> have expected APFloat::toString to cleverly avoid reality.
>
> The attached black magic fixes the regressions in the IRInterpreter used
> for expression evaluation.  However, I'm wondering if the correct fix is to
> revert your commit (i.e. in favor of mode to select the default precision
> as nominal precision versus active precision).  Cheers,****
>
>  ** **
>
> What APFloat::toString really needs to do by default is consistently print
> the least number of digits necessary to re-parse to the same value.  Using
> a fixed number of digits is never going to what we want.  Unfortunately,
> that patch is a lot more complicated, and I don't really have the time or
> expertise to push it through.  If you're interested, I've attached my
> work-in-progress, based on the Dragon4 algorithm from "How to Print
> Floating-Point Numbers Accurately" by Steele and White.****
>
> ** **
>
> -Eli****
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20130906/a1080234/attachment.html>


More information about the lldb-dev mailing list