<div dir="ltr">Hi,<div><br></div><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  I know that backend processes one function at a time,<br>
is it somehow possible to do there a whole program analysis,<br>
or could you give me some guidelines?<br></blockquote><div><br></div><div>There are different kinds of LLVM passes: Those that process a function at a time (FunctionPass), but also those that work on the call graph (CallGraphSCCPass) or on an entire module (ModulePass). These are described in the <a href="http://llvm.org/docs/WritingAnLLVMPass.html" target="_blank">Writing an LLVM Pass</a> documentation. For your purposes, a ModulePass would probably be the best choice, as it gives you complete freedom. You could also split your analysis into multiple passes that depend on each other.</div>

<div><br></div><div>Best,</div><div>Jonas</div></div></div></div></div>