ORiordan, Martin via llvm-dev
2017-Jul-13 09:18 UTC
[llvm-dev] How to add custom instrumentation?
Sorry, a typo: The two parameters are the address of the function into which the instrumentation is inserted, and the address of the call site to the instrumented function. -----Original Message----- From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of ORiordan, Martin via llvm-dev Sent: Thursday, July 13, 2017 9:57 AM To: Alex Denisov <1101.debian at gmail.com>; llvm-dev <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] How to add custom instrumentation? The '-finstrument-functions' option may already be sufficient for your needs. When selected this inserts the following two calls on entry-to and exit-from a function: __cyg_profile_func_enter(void* this_fn, void* call_site) __cyg_profile_func_exit(void* this_fn, void* call_site) You can then provide a custom implementation of these calls to perform the analysis tasks that you require. The two parameters are the address of the function into which the instrumentation is inserted, and the address of the call site to the instrumentation function. There is an "Execution Trace" implementation of these instrumentation hooks on GitHub called 'eTrace' that may guide you, though I can't recall the link. All the best, MartinO -----Original Message----- From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Alex Denisov via llvm-dev Sent: Thursday, July 13, 2017 8:57 AM To: llvm-dev <llvm-dev at lists.llvm.org> Subject: [llvm-dev] How to add custom instrumentation? Hi everyone, I run some functions using ORC JIT, now I need to add custom instrumentation. I want to add two callbacks to each function: ‘enterFunction' at the beginning and ‘leaveFunction' at the end. Intuition says that I could ‘just' insert CallInst's to the first and the last basic blocks in the function. Am I correct? Are there any other/better way to do this? Is there anything special I need to be aware of? Thank you. -- AlexDenisov Software Engineer, https://lowlevelbits.org -------------------------------------------------------------- Intel Research and Development Ireland Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -------------------------------------------------------------- Intel Research and Development Ireland Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.