[PATCH] D74902: Mark statepoint instructions as clobbering LR on AArch64
Loïc Ottet via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 20 06:49:38 PST 2020
loicottet created this revision.
loicottet added reviewers: reames, t.p.northover.
loicottet added a project: LLVM.
Herald added subscribers: llvm-commits, hiraditya, kristof.beyls, mgorny.
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).
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D74902
Files:
llvm/lib/Target/AArch64/AArch64.h
llvm/lib/Target/AArch64/AArch64ClobberLRPass.cpp
llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
llvm/lib/Target/AArch64/CMakeLists.txt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74902.245639.patch
Type: text/x-patch
Size: 4657 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200220/61ace3bd/attachment.bin>
More information about the llvm-commits
mailing list