[all-commits] [llvm/llvm-project] 5b3251: [AMDGPU] Do not use undef on indirect source
Stanislav Mekhanoshin via All-commits
all-commits at lists.llvm.org
Thu Jul 30 10:50:46 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 5b32518f96ca79d3b3c1d60940c3a6764e500c1e
https://github.com/llvm/llvm-project/commit/5b32518f96ca79d3b3c1d60940c3a6764e500c1e
Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: 2020-07-30 (Thu, 30 Jul 2020)
Changed paths:
M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
M llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-extract-vector-elt.mir
M llvm/test/CodeGen/AMDGPU/indirect-addressing-term.ll
Log Message:
-----------
[AMDGPU] Do not use undef on indirect source
We are using undef on the indirect move source subreg and then
using implicit super-reg. This creates a problem in RA when
Greedy decides to split the register. It reassigns the implicit
super-reg but does not bother to change undef source because
it is really does not matter. The fix is to stop lying to RA and
drop undef flag.
This has also hit a problem in SIFoldOperands as it can fold
immediate into an indirect move since there is no undef flag
anymore. That results in multiple test failures, so added the
check for this case.
Differential Revision: https://reviews.llvm.org/D84899
More information about the All-commits
mailing list