[LLVMdev] Assert in LiveInterval update

Lang Hames lhames at gmail.com
Mon Sep 10 02:26:56 PDT 2012


Hi Jakob,

I've got a good test case that I'm working on at the moment. I noticed
something odd though: Is '0' a valid register unit? I'm seeing a
LiveInterval with li->reg == 0 show up, which previously wasn't valid. We
have a few checks around the place to disregard the '0' physreg - could
these trigger on interaction with a '0' interval? That could introduce some
subtle bugs.

Cheers,
Lang.

On Wed, Sep 5, 2012 at 4:07 AM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote:

>
> On Sep 2, 2012, at 11:52 PM, Lang Hames <lhames at gmail.com> wrote:
>
> > Hi Sergei,
> >
> > I just fixed the broken test case for PR13719 with r163107, but from the
> debugging output you've posted it suspect it won't fix your test case.
> >
> > Your analysis looks good - findLastUseBefore(..) doesn't appear to be
> handling physregs. I'm surprised that isn't causing more failures. I'll see
> if I can find a failing case in the LLVM test-suite (it's been a while
> since I ran live-interval-update over all of it) and try out your
> modifications to findLastUseBefore.
>
> I think Sergei's analysis is correct, but you probably don't want to be
> scanning use-def chains for physregs. You are pretty much guaranteed to
> visit the entire function.
>
> Physreg live ranges are usually short. It would be better to scan
> instructions instead of use-def chains for physregs.
>
> /jakob
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120910/f8c8aac8/attachment.html>


More information about the llvm-dev mailing list