<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Hi @ll,</div><div><br></div><div>I incorporated your suggestions into this patch. It extends the pass listener to also work with the new pass manager. There is some additional glue that can be removed</div><div>once we get rid of the legacy pass manager. The C API has been reworked to accommodate future changes and additions to the pass listener.</div><div><div><br></div><div>The callback function signature has changed to incorporate an opaque user defined value and abstracts the current pass and IR behind a pass invocation reference.</div><div>The invocation type specifies when this callback has been called. Currently this supports pre- and post-pass notification callbacks.</div><div><br></div><div><font face="Courier New">void (*LLVMPassListenerCallback)(void *Opaque, LLVMContextRef C, LLVMPassInvocationType T, LLVMPassInvocationRef P);</font></div><div><br></div><div>The pass invocation reference currently only supports one API - the pass name. This could be extended in the future to obtain the pass related IR, more pass related</div><div>information, etc.</div></div><div><br></div><div>Cheers,</div><div>Juergen</div><div><br></div><div></div></body></html>