Critical XRay fixes for Arm32

Sorry, I initially included LLVM-Commits rather than LLVM-Dev. Fixed.

Hans, these changes reached trunk in https://reviews.llvm.org/rL292516 and https://reviews.llvm.org/rL292517 . Could you look?

How is XRay tested? IIRC, Renato didn't see any test failures on ARM?

Merging sounds reasonbaly, I'd just like to understand what's the risk
for the branch.

XRay is tested automatically on build-bots with tests in LLVM and compiler-rt . Or are you asking for manual testing instructions?
Of these 2 patches, the compiler-rt patch depends on LLVM patch because the tests compiler-rt\test\xray\TestCases\Linux would fail without the fix in LLVM. The compiler-rt patch also enables the tests which were occasionally disabled.

The XRay feature is quite isolated, so side-effects are not expected. I can only see a risk that some commit I took for granted when making&testing the fixes, somehow didn’t get to 4.0 branch.

I'm wondering why the lit tests didn't catch this as part of testing rc1 on ARM.

There were no LLVM tests for presence of XRay instrumentation map in the emitted assembly. You can see that https://reviews.llvm.org/D28624 adds this check to the tests.
The tests in compiler-rt had been accidentally disabled. https://reviews.llvm.org/D28623 enables them in compiler-rt/test/xray/lit.cfg .

I see. Thanks for clarifying.

I'm Ok with merging these if Dean agrees, as I believe he's the code owner.

Thanks,
Hans

Thank you for considering.
Dean, Renato - what do you think?

Hi, sorry it took so long. Yes, those two patches are fundamental to
make XRay work on ARM. Backporting makes sense.

We already added XRay on both ARM and AArch64 release notes, so they
have to work. :slight_smile:

--renato

I agree, please merge to 4.0.

Thanks!

Merged r292516 in r293295, and r292517 in r293296.

Cheers,
Hans

Thanks, all!