instrument-xray
The tracking issue for this feature is: #102921.
Enable generation of NOP sleds for XRay function tracing instrumentation. For more information on XRay, read LLVM documentation, and/or the XRay whitepaper.
Set the -Z instrument-xray compiler flag in order to enable XRay instrumentation.
- -Z instrument-xray– use the default settings
- -Z instrument-xray=skip-exit– configure a custom setting
- -Z instrument-xray=ignore-loops,instruction-threshold=300– multiple settings separated by commas
Supported options:
- always– force instrumentation of all functions
- never– do no instrument any functions
- ignore-loops– ignore presence of loops, instrument functions based only on instruction count
- instruction-threshold=10– set a different instruction threshold for instrumentation
- skip-entry– do no instrument function entry
- skip-exit– do no instrument function exit
The default settings are:
- instrument both entry & exit from functions
- instrument functions with at least 200 instructions, or containing a non-trivial loop
Note that -Z instrument-xray only enables generation of NOP sleds
which on their own don't do anything useful.
In order to actually trace the functions,
you will need to link a separate runtime library of your choice,
such as Clang's XRay Runtime Library.