<div dir="ltr"><div>Look at the Metadata classes (MDNode for bitcode, SDNodes have their own type).   They're pretty easy to extend and preserve down to the code lowering phase if I'm remembering correctly. <br><br><a href="https://llvm.org/docs/TypeMetadata.html">https://llvm.org/docs/TypeMetadata.html</a><br><br><br></div>Cheers,<br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature">GNOMETOYS<br></div></div>
<br><div class="gmail_quote">On Wed, Nov 29, 2017 at 7:21 AM, Jonathan 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 style="word-wrap:break-word">Seems llvm cannot pass metadata to MachineInstr, or setting operand description in class Instruction and pass to class MachineInstr.<div>Is it a good idea to extend llvm kernel structure to having this feature?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Jonathan</div></font></span><div><div class="h5"><div><br></div><div><br><div><blockquote type="cite"><div>On Nov 27, 2017, at 9:01 PM, Jatin Bhateja <<a href="mailto:jatin.bhateja@gmail.com" target="_blank">jatin.bhateja@gmail.com</a>> wrote:</div><br class="m_3651280577510447672Apple-interchange-newline"><div><div dir="auto"><span style="font-family:sans-serif;font-size:16.512px">SelectionDAGBuilder contained within SelectionDAGISel has a map (NodeMap) b/w Value (Instruction) and corrosponding dag value (SDValue).</span><div dir="auto" style="font-family:sans-serif;font-size:16.512px"><br></div><div dir="auto" style="font-family:sans-serif;font-size:16.512px">Isn't that usable for your purpose.</div><div dir="auto" style="font-family:sans-serif;font-size:16.512px"><br></div><div dir="auto" style="font-family:sans-serif;font-size:16.512px">Thanks,</div><div dir="auto" style="font-family:sans-serif;font-size:16.512px">Jatin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 27 Nov 2017 18:21, "Jonathan via llvm-dev" <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote"><div style="word-wrap:break-word">I am working on llvm gpu backend. The instruction metadata can only get in IR (class instruction). In DAG stage, the instructions are reordered, so I cannot map the metadata to correct instruction if I cannot access instruction from DAG or MachineInstr structure.<div><br></div><div><br><div><blockquote type="cite"><div>On Nov 26, 2017, at 11:02 PM, Ryan Taylor <<a href="mailto:ryta1203@gmail.com" target="_blank">ryta1203@gmail.com</a>> wrote:</div><br class="m_3651280577510447672m_-6393046661858355501Apple-interchange-newline"><div><div dir="auto">It might be a more useful to know what it is you need from the IR in the DAG or what it is you r trying to do?<div dir="auto"><br></div><div dir="auto"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Nov 25, 2017 7:59 PM, "Jonathan via llvm-dev" <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote">The llvm backend uses class Instruction in IR handle stage, create SDVaule and DAG in DAG translation stage and class MachineInstr in Machine instruction translation stage.<br>
Can I access class Instruction from DAG structure or stage, or access DAG and Instruction from MachineInstr structure or stage?<br>
<br>
Jonathan<br>
______________________________<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" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>
</div></blockquote></div><br></div></div><br>______________________________<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" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div></div>
</div></blockquote></div><br></div></div></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" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>