[PATCH] R600/SI: Fix live range error hidden by SIFoldOperands

Matt Arsenault Matthew.Arsenault at amd.com
Mon Nov 24 10:41:09 PST 2014


m0 is treated as a virtual register class with a single register
rather than the physical register it really is. This was updating
the live range of the used virtual copy of m0 from the first ds_read
instruction, and leaving the unused copy unchanged. This resulted in a
"Live segment doesn't end at a valid instruction" verifier error because
the erased instructions. Update the live range of the second copy (which
should be dead).
    
No test since I'm not sure how to trigger this with SIFoldOperands
enabled.

http://reviews.llvm.org/D6386

Files:
  lib/Target/R600/SILoadStoreOptimizer.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6386.16569.patch
Type: text/x-patch
Size: 932 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141124/86191503/attachment.bin>


More information about the llvm-commits mailing list