<div dir="ltr">Thanks for the response Brendan,<div><br></div><div>I haven&#39;t modified the taint operations of taint2 (presumably located in taint_ops.cpp) --- that&#39;s why <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">I assumed that this may have to do something with my plugin.</span></div><div><br></div><div>So is inlining no longer compatible with the current taint2 implementation? Or maybe it is only possible under certain conditions (e.g. when using binary=y argument)?</div><div><br></div><div>M.</div><div><br></div><div><br></div><div><br></div><div><div class="gmail_extra"><div class="gmail_quote">2018-02-20 1:48 GMT+01:00 Brendan Dolan-Gavitt <span dir="ltr">&lt;<a href="mailto:brendandg@nyu.edu" target="_blank">brendandg@nyu.edu</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Correct – failing to inline will not change the semantics of the code.<div><br></div><div>Whether or not something can be inlined is determined by LLVM (we&#39;re just calling its InlineFunction method). Looking through the ways it can return false (<a href="http://llvm.org/doxygen/InlineFunction_8cpp_source.html" target="_blank">http://llvm.org/doxygen/Inlin<wbr>eFunction_8cpp_source.html</a>) my best guess is that it was trying to inline an external function. It might be useful to modify that &quot;Inlining failed&quot; message to print out what it was trying to inline, which could give you some clues as to why it failed.</div><div><br></div><div>Other plugins that use taint2 shouldn&#39;t have any effect on taint2&#39;s ability to inline. But, of course, it can only inline something that it has LLVM bitcode for, so you can&#39;t (for example) inline calls to your own functions (unless you compile them to LLVM).</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_2751339162922947619gmail-h5">On Mon, Feb 19, 2018 at 9:52 AM, Manolis Stamatogiannakis <span dir="ltr">&lt;<a href="mailto:mstamat@gmail.com" target="_blank">mstamat@gmail.com</a>&gt;</span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="m_2751339162922947619gmail-h5"><div dir="ltr"><div>Hello,</div><div><br></div><div>I have a couple of questions about taint operations inlining. I have provided inline=y as an argument to taint2. However, all I get is a ton of &quot;Inlining failed!&quot; printouts.</div><div><br></div><div>If I understand correctly, this only means that a regular function call will be inserted instead. I.e. this is informational only, the correctness of the analysis you run is not affected. Is this right?</div><div><br></div><div>What could be preventing inlining of taint operations from working? Are there any restrictions when building plugins that use taint2 in order to allow for taint operations inlining?</div><div><br></div><div>Thanks,</div><div>Manolis</div><div></div></div>
<br></div></div>______________________________<wbr>_________________<br>
panda-users mailing list<br>
<a href="mailto:panda-users@mit.edu" target="_blank">panda-users@mit.edu</a><br>
<a href="http://mailman.mit.edu/mailman/listinfo/panda-users" rel="noreferrer" target="_blank">http://mailman.mit.edu/mailman<wbr>/listinfo/panda-users</a><br>
<br></blockquote></div><span class="m_2751339162922947619gmail-HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_2751339162922947619gmail-m_-4925948842292819266gmail_signature">Brendan Dolan-Gavitt<br>Assistant Professor, Department of Computer Science and Engineering<br>NYU Tandon School of Engineering</div>
</font></span></div>
</blockquote></div><br></div></div></div>