<div dir="ltr"><div>So you want to create a new node, set new node's inputs the same as old node's (along with the output?) and delete old node?</div><div><br></div><div>yes, this is possible.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 12, 2016 at 1:50 PM, SiliconValleyEmployee - <span dir="ltr"><<a href="mailto:hendrik.greving.samsung@gmail.com" target="_blank">hendrik.greving.samsung@gmail.com</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">Regardless of not being able to clone (which may or may not make sense), is selection DAG supporting (by the way, I am on llvm-3.6) what I am intending to do as it is right now?</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 12, 2016 at 10:29 AM, Ryan Taylor <span dir="ltr"><<a href="mailto:ryta1203@gmail.com" target="_blank">ryta1203@gmail.com</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"><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"><div><div class="m_-5527799486284781690h5">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></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-5527799486284781690h5"><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></div></div>______________________________<wbr>_________________<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="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>
</blockquote></div><br></div>
</blockquote></div><br></div>