<div dir="ltr">It appears that you've not done the requisite reading that's highlighted multiple times in the very beginning of the document. Compilers are extremely sophisticated and hard; the assumed proclivity for self learning here is high, so if you don't demonstrate that you've done your homework it will probably be hard to solicit support.<div><br></div><div>In any case, not that I know of, and I've been on a stride for the past while, reading about and learning llvm. You can see all the different passes that are publicly available in the documentation as well. In addition, since I've already told you that it's not there, I might as well help you out by saying that the way llvm works is as a library in that when you want your pass to be executed, you register the code with the overall framework. In your case, you'll need two things, from a higher level perspective-a way to insert some form of a runtime/library regarding how the shadow memory is maintained. My perspective regarding this is you can construct your own shadow memory functionality as a shared object that is loaded and initialized via a companion preamble to main, and produce compiled executables that implicitly use this (or edit the compilation behavior of your targets, more tedious). And the other thing you need is to weave in the calls, or inline, the work necessary to maintain the shadow memory. I recommend writing a pass that will work at basic block granularity level, because at that point you can array the memory operations to facilitate liveness of the shadow memory callback or offset information, thereby further streamlining the efficiency of the final code by combining shadow memory maintenance work. </div><div><br></div><div>This book is good for getting started: Getting Started with LLVM Core Libraries. It has lots of examples, but to be honest, you don't need to pay for anything until you've read what's publicly available, and llvm even comes with examples.</div><div><br></div><div>Let me know your thoughts and we can pick up when you've seen the passes and learned about how to extend the correct C++ class.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 16, 2015 at 8:44 PM, Q Z <span dir="ltr"><<a href="mailto:zhaoqian301@gmail.com" target="_blank">zhaoqian301@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<div>I want to know if LLVM support static taint analysis now ? and how to implement static taint analysis code in term of LLVM pass or something else ?</div><div><br></div><div>can anyone help me?Thank you very much!</div><div><br></div><div>zhaoqian</div></div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div>