diff options
author | Christudasan Devadasan <christudasan.devadasan@amd.com> | 2023-10-27 19:10:18 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-27 19:10:18 +0530 |
commit | a0eb6b88f9af9ea51bf5cadcb4c223f3d235ed57 (patch) | |
tree | ee259b89c6862b304566b6aed905de34ed9ae14f /clang/lib/Lex/ModuleMap.cpp | |
parent | b0b88643a1facc4fcb06783e295de3d4a91dc924 (diff) | |
download | llvm-a0eb6b88f9af9ea51bf5cadcb4c223f3d235ed57.zip llvm-a0eb6b88f9af9ea51bf5cadcb4c223f3d235ed57.tar.gz llvm-a0eb6b88f9af9ea51bf5cadcb4c223f3d235ed57.tar.bz2 |
[AMDGPU] Try to fix the block prologs broken by RA inserted instructions (#69924)
The insertion point determined by RA while attempting spills and liverange
split at the beginning of a block goes wrong at times, and the newly
inserted vector instructions are placed before the exec-mask restore
instruction which is wrong. It occurs mainly due to the dependency on
isBasicBlockPrologue that doesn't account early inserted instructions
(spills and splits) during RA and causes the block prolog break.
A better approach for deciding the insertion point should be worked out.
For now, improving the helper function to consider all possible early
insertions. This patch includes the spill instructions. The copies
associated with liverange split should also be included in the block
prolog.
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions