Intrinsic operations emitted as calls (stackmap, patchpoint and statepoint) are defined globally and are lowered after register allocation. This means that on ARM backends LR has to be marked as implicitly defined by these instructions, otherwise the register allocator may use it as a temporary register, expecting it to keep its value across the intrinsic.
This patch enables the correct emission of garbage collection statepoints on AArch64 (https://reviews.llvm.org/D66012).
Details
Details
- Reviewers
reames t.p.northover
Diff Detail
Diff Detail
Event Timeline
Comment Actions
No test case provided, implementation probably not right approach. Please provide a test case so that correct approach can be found.
Comment Actions
Abandoning since https://reviews.llvm.org/D111114 fixes the issue this revision was aiming to fix.