<div dir="ltr"><div>I'm pretty certain the Linux makefile is not able to do that. What you will need to do compile all files to llvm-IR output, concatenating it together and then run opt -analyze ... on that. <br><br></div><div>The way I can see that working is to use V=1 to give more verbose output, then filter out the clang commands - once you have that in a file, do a "search and replace" for `-c` to `-S -emit-llvm` [possibly also replace `-o somefile.o` with `-o -` and redirect all the output to a file.<br><br></div><div>I'm not sure how opt copes with multiple modules as one input - so you may need to clean up the input a bit further - or run it through llvm-link, perhaps?<br><br></div><div>I've never done this, so I'm just thinking about it logically and picking up pieces of knowledge like `V=1` that I do have.<br></div><div><br>--<br></div><div>Mats<br></div><div><br></div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On 25 July 2015 at 18:37, Iyer,Naveen R <span dir="ltr"><<a href="mailto:niyer@ufl.edu" target="_blank">niyer@ufl.edu</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">
<div style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Calibri,Arial,Helvetica,sans-serif">
<p>I tried the following command for regular C source files:</p>
<p></p>
<pre><code><span>clang</span><span>-3.5</span><span> </span><span>-</span><span>S </span><span>-</span><span>emit</span><span>-</span><span>llvm hello</span><span>.</span><span>c </span><span>-</span><span>o </span><span>-</span><span> </span><span>|</span><span> opt </span><span>-</span><span>analyze </span><span>-</span><span>dot</span><span>-</span><span>callgraph</span></code></pre>
<p></p>
<p>and it worked.</p>
<p><br>
</p>
<p>Now, I'm trying to do the same with linux device driver usbmouse.c (linux-4.1.1/drivers/hid/usbhid/). I tried the following make command:</p>
<p><br>
</p>
<p>make CC=clang-3.5 SUBDIRS=drivers/hid/usbhid/ CONFIG_USB_MOUSE=m modules</p>
<p><br>
</p>
<p>It gave several warnings, but nevertheless, looked like it compiled.</p>
<p>Could anybody please guide me on how I can modify the Makefile so as to generate callgraphs?<br>
</p>
<p><br>
</p>
<p>Thanks</p>
<p>Regards<span class="HOEnZb"><font color="#888888"><br>
</font></span></p><span class="HOEnZb"><font color="#888888">
<div>
<div name="divtagdefaultwrapper">
<div name="divtagdefaultwrapper">
<b><font face="Times New Roman, Times, serif">NaveenĀ </font></b></div>
</div>
</div>
</font></span></div>
</div>

<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>