<div dir="ltr">Apologies for bringing up an old thread, but I just wanted to give an update on this effort:<div><br></div><div>- We have now submitted upstream the first step in the core implementation of XRay in LLVM adding nop-sleds for function entry and "normal" exits. We'll be documenting the set of attributes that control this behaviour in earnest as soon as the feature set is more complete.</div><div>- Flag support in clang (-fxray-instrument, etc.) is also already upstream. Documentation for controlling the features will be forthcoming too as soon as the features we'd like to implement are available and more complete.</div><div>- The compiler-rt side of the implementation is now being worked on actively. We have both the base compiler-rt library and a naive in-memory log implementation that does very basic entry/exit logging.</div><div><br></div><div>We also have a work-in-progress function call accounting tool which temporarily is going to be in the tools/xray/ directory (in llvm). One of the original questions in the RFC, as to whether we have a separate project for XRay to host the tooling around the traces is another question. For now it looks like it's fine to have all the tooling implementation in the tools/xray/ directory, implemented and distributed as part of LLVM, and potentially growing the list of analyses for the traces generated by XRay.</div><div><br></div><div>Expect updates as soon as we have more news and questions along the way.</div><div><br></div><div>Cheers</div></div>