[PATCH] D30438: SplitKit: Correctly implement partial copies

Matthias Braun via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 13 19:53:06 PDT 2017


MatzeB updated this revision to Diff 91662.
MatzeB added a comment.
Herald added a subscriber: nhaehnle.

Upload the correct patch this time!

Redo a lot of this patch:

- Add more tests so that the code runs in more situations and screwed up liveranges are detected.
- Use instruction bundles during splitting/regalloc and expand them into a series of instruction at VirtRegMap time. (I spend days trying to get this to work by directly creating a sequence of instructions in splitkit but it turned out to be extremely hard to stop liverange splitting between the copies in an infinite loop or getting a spill/reload for every one of the copies in a series; the bundle based approach only needed nearly no changes outside of splitkit itself except for the expansion code and fixing some virtregmap bugs with bundles.)


Repository:
  rL LLVM

https://reviews.llvm.org/D30438

Files:
  lib/CodeGen/SplitKit.cpp
  lib/CodeGen/SplitKit.h
  lib/CodeGen/VirtRegMap.cpp
  test/CodeGen/AMDGPU/splitkit.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D30438.91662.patch
Type: text/x-patch
Size: 12706 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170314/1b1320f1/attachment.bin>


More information about the llvm-commits mailing list