[llvm-dev] XRay: Demo on x86_64/Linux almost done; some questions.

Dean Michael Berris via llvm-dev llvm-dev at lists.llvm.org
Fri Jul 29 23:35:03 PDT 2016

> On 29 Jul 2016, at 23:58, Serge Rogatch <serge.rogatch at gmail.com> wrote:
> Yes, this makes sense, thanks for the analysis. I'm going to investigate later how to keep the stack consistent for unwinding (so to support C++ exceptions), e.g. by pretending that the __xray_FunctionExit call is the destructor of the first object (local variable) on the stack.

I think there's a better way to do this, which involves actually instrumenting the catch handlers too -- so that we can determine which functions have been exited, and which ones have resumed execution. This requires a bit more work and few more bytes in a few more places.

Although I would be interested in finding out what you come up with at least that doesn't involve instrumenting the throw/catch points.

> No, I wasn't aware of that patch, thanks for pointing out! 

No worries, I'd appreciate your review of that too. :)

> In that patch we have the very early beginnings of a test suite, so I think if you'd like to contribute the ARM implementation, that we can review that patch and land it to allow you to add tests and make sure that this also works on ARM.
> I have zero experience with actually doing anything with ARM assembly and I'd appreciate all the help I can get to make XRay work on ARM too.
> Yes, I am trying to port XRay on LLVM to ARM, but I'm just starting with LLVM. 

Awesome! Let me know how else I can help.


More information about the llvm-dev mailing list