[SystemZ] Improve shouldCoalesce() for i128. (#74942)
commit01061ed370448a758ccab89c2fcc31f795d4fe8a
authorJonas Paulsson <paulson1@linux.ibm.com>
Thu, 14 Dec 2023 14:55:27 +0000 (14 15:55 +0100)
committerGitHub <noreply@github.com>
Thu, 14 Dec 2023 14:55:27 +0000 (14 15:55 +0100)
tree953ac5ad9eb3329fa7b85294153c4b4119d27f7c
parent4bd32cc445dd4ac3e15e0a72776bbd8f650fb086
[SystemZ] Improve shouldCoalesce() for i128. (#74942)

The SystemZ implementation of shouldCoalesce() is merely a workaround
for the fact that regalloc can run out of registers when extending 128-bit
intervals with subreg (GPR64/GPR32) COPYs.

This patch adds more freedom to the coalescer as it now only checks that
the subreg interval is local to MBB and does not have too many physreg
clobbers.
llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
llvm/test/CodeGen/SystemZ/atomicrmw-ops-i128.ll
llvm/test/CodeGen/SystemZ/atomicrmw-xchg-07.ll