[PATCH] D138093: [Inline Spiller] Extend the snippet by statepoint uses

Serguei Katkov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 15 22:38:55 PST 2022


skatkov created this revision.
skatkov added reviewers: reames, qcolombet, arsenm, dantrushin.
Herald added subscribers: pengfei, hiraditya, MatzeB.
Herald added a project: All.
skatkov requested review of this revision.
Herald added a subscriber: wdng.
Herald added a project: LLVM.

Snippet is a tiny live interval which has copy or fill like def
and copy or spill like use at the end (any of them might abcent).

Snippet has only one use/def inside interval and interval is located
in one basic block.

When inline spiller spills some reg around uses it also forces the
spilling of connected snippets those which got by splitting the
same original reg and its def is a full copy of our reg or its
last use is a full copy to our reg.

The definition of snippet is extended to allow not only one use/def
but more. However all other uses are statepoint instructions which will
fold fill into its operand. That way we do not introduce new fills/spills.


https://reviews.llvm.org/D138093

Files:
  llvm/include/llvm/CodeGen/StackMaps.h
  llvm/lib/CodeGen/InlineSpiller.cpp
  llvm/lib/CodeGen/StackMaps.cpp
  llvm/test/CodeGen/AArch64/regalloc-last-chance-recolor-with-split.mir
  llvm/test/CodeGen/X86/statepoint-ra.ll
  llvm/test/CodeGen/X86/statepoint-split-single-block.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138093.475687.patch
Type: text/x-patch
Size: 30853 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221116/ddbfd724/attachment.bin>


More information about the llvm-commits mailing list