RegisterCoalscer: Only coalesce complete reserved registers.
authorMatthias Braun <matze@braunis.de>
Thu, 1 Dec 2016 22:39:51 +0000 (22:39 +0000)
committerMatthias Braun <matze@braunis.de>
Thu, 1 Dec 2016 22:39:51 +0000 (22:39 +0000)
commit709a4cc2381d9c530331ba8ff9244628ae252727
treec69cd7e0b496f23ac51d7342741c89fb1dcc11f3
parente7c0b2e0f81a0c810840dbd34739616895df4b2c
RegisterCoalscer: Only coalesce complete reserved registers.

The coalescer eliminates copies from reserved registers of the form:
   %vregX = COPY %rY
in the case where %rY is a reserved register. However this turns out to
be invalid if only some of the subregisters are reserved (see also
https://reviews.llvm.org/D26648).

Differential Revision: https://reviews.llvm.org/D26687

llvm-svn: 288428
llvm/lib/CodeGen/RegisterCoalescer.cpp
llvm/test/CodeGen/AArch64/regcoal-constreg.mir [deleted file]
llvm/test/CodeGen/AArch64/regcoal-physreg.mir [new file with mode: 0644]
llvm/test/CodeGen/AMDGPU/attr-amdgpu-num-sgpr.ll