AMDGPU: Use explicit register size indirect pseudos
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 7 Oct 2015 00:42:51 +0000 (00:42 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 7 Oct 2015 00:42:51 +0000 (00:42 +0000)
commit3f7c35a966ec6a504e799389d23eaa8ae1f91358
tree47c24a2ee49d5ca7f4d47d5ac0a215516fda0290
parentce4122358f857776fde03e875eb4913fae561aed
AMDGPU: Use explicit register size indirect pseudos

This stops using an unknown reg class operand.

Currently build_vector selection has a broken looking check
where it tries to use a VGPR reg class and an SGPR one if it
sees an SGPR use.

With the source operand has an explicit VGPR class,
illegal copies will be inserted that SIFixSGPRCopies will take care
of normally later, which will allow removing the weird check
of build_vector users. Without this, when removed v_movrels_b32 would
still be emitted even though all of the values were only stored in
SGPRs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249494 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AMDGPU/SIInstrInfo.cpp
lib/Target/AMDGPU/SIInstructions.td
lib/Target/AMDGPU/SILowerControlFlow.cpp
test/CodeGen/AMDGPU/indirect-addressing-si.ll