<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 10 May 2017 at 05:38, James Courtier-Dutton <span dir="ltr"><<a href="mailto:james.dutton@gmail.com" target="_blank">james.dutton@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Why not have your analysis pass build its own map.<br>
The map would map between the Instruction and an integer index or offset.<br>
I.e.<br>
int index, Value *, Node *, Mod *<br>
Where "Value *" is the reference to the instruction itself, "Node *"<br>
is the BB that the instruction is contained in. "Mod *" is the module<br>
containing all the Nodes.<br>
The index will be the same every time you build the table if the IR<br>
has not changed.<br>
The analysis code then uses the index to refer back to the<br>
instruction's context.<br>
</blockquote></div><br>Based on earlier replies on this thread, I plan to proceed in the exact same way. However, it'd be more elegant (implementation-wise) to be able to hook into the IR generation process and make the instructions carry the ID as a metadata in the IR itself. If I implement the way you suggested (and I am planning, too), I need to write the mapping on disk in a separate file to be able to refer back to it later on.<br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><span><div><div dir="ltr"><p>Thanks & Regards,</p>
<div>Dipanjan</div></div></div></span></div></div>
</div></div>