<div dir="ltr">I've got a few high-level questions before I get into the patch itself.<div><br></div><div>- What's the goal of this pass?  Tracing?  Handwritten profiling of whole functions?</div><div>- What semantics do you want to have wrt languages that use mangling to separate member functions, overloading, namespaces, etc?</div><div>- The pass seems to do nothing else but insert these calls, wouldn't it make more sense to do this as a clang tool?  It would give you more expressive power for the user to specify where they want to insert the enter/leave functions.</div><div>- Should all exit points be instrumented?  What happens in the case of exceptions or noreturn points in the function flow?</div><div><br></div><div><br></div><div>Diego.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 4, 2015 at 3:05 PM, Bob Haarman <span dir="ltr"><<a href="mailto:robbert@fb.com" target="_blank">robbert@fb.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Allows instrumentation of functions by specifying functions to be called when the instrumented function is entered or returned from. The desired instrumentation is specified by a map file which names all functions to be instrumented. For each such function, it specifies the function to be called on entry, the function to be called before returning, or both. The called functions receive the name of the instrumented function as their first parameter.<br>
<br>
CC'ing dnovillo as my best guess as to who may be a good reviewer for this code.<br>
</blockquote></div><br></div>