<div dir="ltr">Thanks Mihai.<div>Agree it will not make through some passes. I am still thinking that annotation may survive fine in many cases. The sample JSON i sent is one such case. The node type "Constant" made it to JSON, any annotation in the node would have made it to JSON too. This would be very useful.</div><div><br></div><div>Are annotations discarded for constants from the beginning?, or is it that it had to be dropped in one of the stages (understandably for not over engineering).</div><div><br></div><div>Thanks,</div><div>Venkat</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 23, 2017 at 9:58 AM, Mihai Budiu <span dir="ltr"><<a href="mailto:mbudiu@vmware.com" target="_blank">mbudiu@vmware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="m_-6359946225298627324WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">That won’t be easy, since constant values are inlined by the compiler wherever used, and they participate in constant folding and copy propagation. We would have
 to add significant metadata to the IR to carry such information around through all compiler passes.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">This would be difficult to do even for enum values.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Mihai<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> P4-dev [mailto:<a href="mailto:p4-dev-bounces@lists.p4.org" target="_blank">p4-dev-bounces@lists.<wbr>p4.org</a>]
<b>On Behalf Of </b>Venkat Pullela<br>
<b>Sent:</b> Wednesday, August 23, 2017 9:55 AM<br>
<b>To:</b> <a href="mailto:p4-dev@lists.p4.org" target="_blank">p4-dev@lists.p4.org</a><br>
<b>Subject:</b> [P4-dev] annotation of contants<u></u><u></u></span></p><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Hi All,<u></u><u></u></p>
<div>
<p class="MsoNormal">Is there a way we can retain the names of constants to be included in JSON.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I was looking for some thing like :<u></u><u></u></p>
</div>
<div>
<p class="m_-6359946225298627324gmail-p1"><span class="m_-6359946225298627324gmail-s1">@name("CPU_OUT_PORT") const PortId CPU_OUT_PORT = 0xE;</span><u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1"><span class="m_-6359946225298627324gmail-s1">to magically show up in :</span><u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">"right" : {<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">                    "Node_ID" : 6750,<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">                    "Node_Type" : "Constant",<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">                    "type" : {<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">                      "Node_ID" : 150<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">                    },<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">                    "value" : 14,<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">                    "base" : 16<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">                  }<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">as annotation like "annotations" : { ... }.<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">Thanks,<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1">Venkat<u></u><u></u></p>
<p class="m_-6359946225298627324gmail-p1"><u></u> <u></u></p>
</div>
</div>
</div></div></div>
</div>

</blockquote></div><br></div>