[LLVMdev] [llvm-commits] [PATCH] MachineRegisterInfo: Don't emit the same livein copy more than once

Lang Hames lhames at gmail.com
Mon Feb 13 22:17:11 PST 2012


Hi Tom,

I'm pretty sure this function should only ever be called once, by
SelectionDAG. Do you know where the second call is coming from in your code?

Cheers,
Lang.

On Mon, Feb 13, 2012 at 7:03 PM, Stellard, Thomas <Tom.Stellard at amd.com>wrote:

> This patch seems to have been lost on the llvm-commits mailing list.
>  Would someone be able to review it?
>
> Thanks,
> Tom
> ________________________________________
> From: llvm-commits-bounces at cs.uiuc.edu [llvm-commits-bounces at cs.uiuc.edu]
> on behalf of Tom Stellard [thomas.stellard at amd.com]
> Sent: Friday, February 03, 2012 1:55 PM
> To: llvm-commits at cs.uiuc.edu
> Subject: Re: [llvm-commits] [PATCH] MachineRegisterInfo: Don't emit the
> same livein copy more than once
>
> On Fri, Jan 27, 2012 at 02:56:03PM -0500, Tom Stellard wrote:
> > ---
> >
> > Is MachineRegisterInfo::EmitLiveInCopies() only meant to be called once
> > per compile?  If I call it more than once, it emits duplicate copies
> > which causes the live interval analysis to fail.
> >
> >  lib/CodeGen/MachineRegisterInfo.cpp |    4 +++-
> >  1 files changed, 3 insertions(+), 1 deletions(-)
> >
> > diff --git a/lib/CodeGen/MachineRegisterInfo.cpp
> b/lib/CodeGen/MachineRegisterInfo.cpp
> > index 266ebf6..fc787f2 100644
> > --- a/lib/CodeGen/MachineRegisterInfo.cpp
> > +++ b/lib/CodeGen/MachineRegisterInfo.cpp
> > @@ -227,7 +227,9 @@
> MachineRegisterInfo::EmitLiveInCopies(MachineBasicBlock *EntryMBB,
> >          // complicated by the debug info code for arguments.
> >          LiveIns.erase(LiveIns.begin() + i);
> >          --i; --e;
> > -      } else {
> > +        //Make sure we don't emit the same livein copies twice, in case
> this
> > +        //function is called more than once.
> > +      } else if (def_empty(LiveIns[i].second)) {
> >          // Emit a copy.
> >          BuildMI(*EntryMBB, EntryMBB->begin(), DebugLoc(),
> >                  TII.get(TargetOpcode::COPY), LiveIns[i].second)
> > --
> > 1.7.6.4
> >
> >
>
> Reposting this as a diff that can be applied via patch -P0 for SVN
> users.
>
> -Tom
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120213/b8d6c286/attachment.html>


More information about the llvm-dev mailing list