[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