[PATCH] D30438: SplitKit: Correctly implement partial copies

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


MatzeB updated this revision to Diff 91661.
MatzeB edited the summary of this revision.
MatzeB added a comment.

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:
  include/llvm/CodeGen/SlotIndexes.h
  lib/CodeGen/SlotIndexes.cpp
  lib/CodeGen/VirtRegMap.cpp

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


More information about the llvm-commits mailing list