Hi Tom, <div><br></div><div>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?</div><div><br></div><div>Cheers,</div><div>Lang.<br>
<br><div class="gmail_quote">On Mon, Feb 13, 2012 at 7:03 PM, Stellard, Thomas <span dir="ltr"><<a href="mailto:Tom.Stellard@amd.com">Tom.Stellard@amd.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This patch seems to have been lost on the llvm-commits mailing list.  Would someone be able to review it?<br>
<br>
Thanks,<br>
Tom<br>
________________________________________<br>
From: <a href="mailto:llvm-commits-bounces@cs.uiuc.edu">llvm-commits-bounces@cs.uiuc.edu</a> [<a href="mailto:llvm-commits-bounces@cs.uiuc.edu">llvm-commits-bounces@cs.uiuc.edu</a>] on behalf of Tom Stellard [<a href="mailto:thomas.stellard@amd.com">thomas.stellard@amd.com</a>]<br>

Sent: Friday, February 03, 2012 1:55 PM<br>
To: <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
Subject: Re: [llvm-commits] [PATCH] MachineRegisterInfo: Don't emit the same livein copy more than once<br>
<div><div class="h5"><br>
On Fri, Jan 27, 2012 at 02:56:03PM -0500, Tom Stellard wrote:<br>
> ---<br>
><br>
> Is MachineRegisterInfo::EmitLiveInCopies() only meant to be called once<br>
> per compile?  If I call it more than once, it emits duplicate copies<br>
> which causes the live interval analysis to fail.<br>
><br>
>  lib/CodeGen/MachineRegisterInfo.cpp |    4 +++-<br>
>  1 files changed, 3 insertions(+), 1 deletions(-)<br>
><br>
> diff --git a/lib/CodeGen/MachineRegisterInfo.cpp b/lib/CodeGen/MachineRegisterInfo.cpp<br>
> index 266ebf6..fc787f2 100644<br>
> --- a/lib/CodeGen/MachineRegisterInfo.cpp<br>
> +++ b/lib/CodeGen/MachineRegisterInfo.cpp<br>
> @@ -227,7 +227,9 @@ MachineRegisterInfo::EmitLiveInCopies(MachineBasicBlock *EntryMBB,<br>
>          // complicated by the debug info code for arguments.<br>
>          LiveIns.erase(LiveIns.begin() + i);<br>
>          --i; --e;<br>
> -      } else {<br>
> +        //Make sure we don't emit the same livein copies twice, in case this<br>
> +        //function is called more than once.<br>
> +      } else if (def_empty(LiveIns[i].second)) {<br>
>          // Emit a copy.<br>
>          BuildMI(*EntryMBB, EntryMBB->begin(), DebugLoc(),<br>
>                  TII.get(TargetOpcode::COPY), LiveIns[i].second)<br>
> --<br>
> 1.7.6.4<br>
><br>
><br>
<br>
Reposting this as a diff that can be applied via patch -P0 for SVN<br>
users.<br>
<br>
-Tom<br>
<br>
<br>
</div></div>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</blockquote></div><br></div>