<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 19, 2020 at 10:53 PM Quentin Colombet <<a href="mailto:qcolombet@apple.com">qcolombet@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Vivek,<br>
<br>
My guess is because copies are transient, so we expect them to disappear anyway.<br></blockquote><div>That may prevent CSE in certain cases. <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Maybe it has to do as well with the fact that chances are the are dealing with physical reg copies, e.g., used for ABI.<br></blockquote><div>If an instruction has any physical register shouldn't that will be handled in hasLivePhysRegDefUses() and such instruction will not be CSE. <br></div><div><br></div><div>-Vivek<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Cheers,<br>
-Quentin<br>
<br>
> On Oct 18, 2020, at 11:07 PM, vivek pandya via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> <br>
> Hello,<br>
> <br>
> I see that MachienCSE ignores COPY instructions <br>
> bool MachineCSE::isCSECandidate(MachineInstr *MI) {<br>
> ...<br>
>   // Ignore copies.<br>
>   if (MI->isCopyLike())<br>
>     return false;<br>
> <br>
> Are there any correctness concerns?<br>
> <br>
> Thanks,<br>
> Vivek<br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br>
</blockquote></div></div>