[PATCH] D43478: [LiveIntervals] Handle moving up dead partial write

Tim Renouf via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 19 11:59:10 PST 2018


tpr created this revision.
Herald added subscribers: llvm-commits, nhaehnle, MatzeB.

In the test case, the machine scheduler moves a dead write to a subreg
up into the middle of a segment of the overall reg's live range, where
the segment had liveness only for other subregs in the reg.
handleMoveUp created an invalid live range, causing an assert a bit
later.

This commit fixes it to handle that situation. The segment is split in
two at the insertion point, and the part after the split, and any
subsequent segments up to the old position, are changed to be defined by
the moved def.

Apologies for the test -- it's the best that bugpoint could do, and I
couldn't turn it into a mir test because MIRPrinter failed with it.


Repository:
  rL LLVM

https://reviews.llvm.org/D43478

Files:
  lib/CodeGen/LiveIntervals.cpp
  test/CodeGen/AMDGPU/machine-scheduler-move-dead-def-up.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43478.134960.patch
Type: text/x-patch
Size: 15262 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180219/8282781b/attachment.bin>


More information about the llvm-commits mailing list