[PATCH] D101150: [GreedyRA] Add support for invoke statepoint with tied-defs.
Serguei Katkov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 23 03:11:21 PDT 2021
skatkov created this revision.
skatkov added reviewers: reames, MatzeB, rnk, wmi, qcolombet, void.
Herald added subscribers: pengfei, jfb, hiraditya.
skatkov requested review of this revision.
Herald added a project: LLVM.
statepoint instruction uses tied-def registers to represent live gc value which
is use and def at the same time on a call.
At the same time invoke statepoint instruction is a last split point which can throw and
jump to landing pad.
As a result we have instructon which is last split point with tied-defs registers and
we need to teach Greedy RA to work with it.
The option -use-registers-for-gc-values-in-landing-pad controls whether statepoint lowering
will generate tied-defs for invoke statepoint and is off by default now.
To simplify the review I split this patch into parts and upload them separately:
https://reviews.llvm.org/D100747
https://reviews.llvm.org/D100748
https://reviews.llvm.org/D100750
https://reviews.llvm.org/D100927
https://reviews.llvm.org/D100945
https://reviews.llvm.org/D101028
The intention is to pass a review for each individual patch, update this one according to reviews,
re-test the result in downstream carefully again and then land it.
Say, in a two weeks to switch an option by default on.
https://reviews.llvm.org/D101150
Files:
llvm/lib/CodeGen/InlineSpiller.cpp
llvm/lib/CodeGen/SplitKit.cpp
llvm/lib/CodeGen/SplitKit.h
llvm/test/CodeGen/X86/statepoint-invoke-ra-hoist-copies.mir
llvm/test/CodeGen/X86/statepoint-invoke-ra-inline-spiller.mir
llvm/test/CodeGen/X86/statepoint-invoke-ra-remove-back-copies.mir
llvm/test/CodeGen/X86/statepoint-invoke-ra1.ll
llvm/test/CodeGen/X86/statepoint-invoke-ra2.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D101150.339959.patch
Type: text/x-patch
Size: 151717 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210423/b1528de1/attachment-0001.bin>
More information about the llvm-commits
mailing list