[LLVMdev] Infinite loop in ScaledNumber when calling toInt

Diego Novillo dnovillo at google.com
Fri May 1 11:04:02 PDT 2015


Thanks! Committed at r236326.


Diego.

On Fri, May 1, 2015 at 12:52 PM, Duncan P. N. Exon Smith <
dexonsmith at apple.com> wrote:

>
> > On 2015 May 1, at 07:52, Diego Novillo <dnovillo at google.com> wrote:
> >
> >
> > Duncan,
> >
> > I'm tracking down an infinite recursion problem when calling toInt.  The
> problem seems to be that in the call to toInt, we call compareTo which, in
> turn, calls toInt in one of its paths. This does not happens on 64bit
> Scaled numbers.  I'm trying to work out a fix, but maybe you'll spot the
> problem quicker.
> >
> > Here's a unittest that triggers the problem. I ran into it with another
> patch I'm working on that needs to multiply scaled32 numbers that are often
> 1.
>
> I was over-thinking this =/.  The attached patch removes the
> (accidental) co-recursion by gutting the logic in `compareTo()`.
> Feel free to commit with your test, or I can.
>
>
>
>
> > In tracing this, I'm thinking that we could probably add some
> short-circuits to avoid so many calls when dealing with trivial numbers
> (but that's unrelated).
>
>
> Go ahead and micro-optimize if you think it'll make the code faster
> in practice.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150501/bbe3d400/attachment.html>


More information about the llvm-dev mailing list