[PATCH] D147031: [MachineCopy] Bug fix sub register machine copy propagation
Xiang Zhang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 28 01:05:22 PDT 2023
xiangzhangllvm created this revision.
xiangzhangllvm added reviewers: resistor, barannikov88, LuoYuanke, pengfei.
Herald added a subscriber: hiraditya.
Herald added a project: All.
xiangzhangllvm requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
The machine copy propagation logic has some problem:
When do machine copy propagation for subreg we need to consider the CopyDstReg and CopySrcReg's regclass and size.
(because we want to get SubReg from CopySrcReg by using SubregIdx which we got from CopyDstReg)
Take follow case for example:
MCP: Replacing $ecx
with $k0
in renamable $k1 = COPY renamable $ecx
from renamable $rcx = COPY renamable $k0, implicit-def $ecx
We can not use SubregIdx (ecx of rcx) to get anything from k0 register.
https://reviews.llvm.org/D147031
Files:
llvm/lib/CodeGen/MachineCopyPropagation.cpp
llvm/test/CodeGen/X86/machine-copy-subreg.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147031.508915.patch
Type: text/x-patch
Size: 15995 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230328/5a55287f/attachment.bin>
More information about the llvm-commits
mailing list