[PATCH] D24239: [RegScavenger] Check for sub- and super-registers of ones used by instructions

Oliver Stannard via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 5 10:01:43 PDT 2016


olista01 created this revision.
olista01 added reviewers: MatzeB, kparzysz, hfinkel.
olista01 added a subscriber: llvm-commits.
olista01 set the repository for this revision to rL LLVM.

Previously, the register scavenger did not check sub- and
super-registers of those used by the current instruction, so we could
emit code which clobbered a live value when we scavenged a register to
materialise a stack slot address.

I've tried to create a smaller reproducer for this with no success.
Because this requires both large stack frames and high register
pressure, the test case that uncovered it is massive, and will not be a
good regression test as any change in register or stack slot allocation
would cause it to pass on a broken compiler. Does anyone know of a
better way to reproduce this? If not, would it be better to commit this
without a test than with a large, fragile test?

Repository:
  rL LLVM

https://reviews.llvm.org/D24239

Files:
  lib/CodeGen/RegisterScavenging.cpp
  test/CodeGen/AArch64/scavenge-sub-registers.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24239.70340.patch
Type: text/x-patch
Size: 26634 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160905/67466e2d/attachment.bin>


More information about the llvm-commits mailing list