<div dir="ltr">Thanks for the response Brendan,<div><br></div><div>I haven't modified the taint operations of taint2 (presumably located in taint_ops.cpp) --- that'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"><<a href="mailto:brendandg@nyu.edu" target="_blank">brendandg@nyu.edu</a>></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'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 "Inlining failed" 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't have any effect on taint2's ability to inline. But, of course, it can only inline something that it has LLVM bitcode for, so you can'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"><<a href="mailto:mstamat@gmail.com" target="_blank">mstamat@gmail.com</a>></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 "Inlining failed!" 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>