[PATCH] D94645: [AMDGPU] Fix llvm.amdgcn.init.exec and frame materialization
Carl Ritson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 14 22:51:35 PST 2021
critson added inline comments.
================
Comment at: llvm/lib/Target/AMDGPU/SIInstrInfo.cpp:1916
+ // Update insertion point
+ if (!FirstMI)
+ FirstMI = &*MBB.begin();
----------------
ruiling wrote:
> In case the FirstMI is not null, which means a COPY instruction to copy from input register was not eliminated for some reason, we need to move the COPY instruction to the beginning of the block and insert exec initialization right after that. Because the frame-base materialization instructions may be inserted before the COPY instruction. We need to make sure the exec initialization always be inserted at the entry of the block.
I only partially agree with this.
In theory the input to the intrinsic can be any operation -- unless we refine its definition (which I am not against doing).
So in the general case we cannot move this operation before the instruction which generates its input.
If we are saying that the input to this register is always a live-in, then we shouldn't be moving the COPY, rather we should be using the source of the COPY as the source of this operation directly.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D94645/new/
https://reviews.llvm.org/D94645
More information about the llvm-commits
mailing list