<div dir="ltr"><div>It is my understanding that you cannot create a clone in the DAG. This is due to common sub tree from what I understand.</div><div><br></div><div>This is a problem for direct mem architectures, seems more and more people are having issues with this but it can be worked around.</div><div><br></div><div>LLVM assumes a LD/ST architecture.</div><div><br></div><div>I'd love to hear otherwise.</div><div><br></div><div>-Ryan</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 12, 2016 at 12:31 PM, SiliconValleyEmployee - via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I am having trouble adding a node to the selection DAG (e.g. during combine)<div><br></div><div>E.g. node1 -> use1, use2</div><div><br></div><div>Now if you add a node2, with node1 -> node2 with node2 number of output values equal node1 number of output values, then combine as well as e.g. promotion pass with replace all of node1's uses with node2, leaving node1 dead. While this is kind of expected, does this mean</div><div><br></div><div>a) always create new node (can you clone node, e.g. node1 above)?</div><div>b) is this something that selection DAG is not intended for at all?</div><div>c) sometimes it is not straight forward to create a new load, e.g. for loads, as DAG.getLoad will return "old" node if identical => a) can I clone a node?</div><div><br></div><div>Thanks! Hendrik</div></div>
<br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" rel="noreferrer">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>