[PATCH] D55966: Ensure coro split pass only spills variables dominated by CoroBegin
Tanoy Sinha via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 20 15:42:31 PST 2018
tks2103 created this revision.
tks2103 added reviewers: modocache, GorNishanov.
Herald added a subscriber: llvm-commits.
Ensure coro split pass only spills variables dominated by CoroBegin
Fixes https://bugs.llvm.org/show_bug.cgi?id=36578.
The old coro split code didn't run safety checks against certain
spillable variables; it would try to spill things that were not
dominated by CoroBegin.
This problem gets worse after the mem2reg
pass is run, as the code which checks that Arguments are safe to
spill is even more lax than the code which checks that
Instructions are safe to spill.
There's a test which checks two things:
First, that a store/load optimized away by mem2reg doesn't fail.
Second, if there is an allocator which takes a potentially
spillable argument, we have to check all of the other arguments
to that allocator to ensure there are no unspillable instructions
as well.
Repository:
rL LLVM
https://reviews.llvm.org/D55966
Files:
lib/Transforms/Coroutines/CoroFrame.cpp
test/Transforms/Coroutines/coro-split-mem2reg.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55966.179181.patch
Type: text/x-patch
Size: 4288 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181220/a78acbfd/attachment.bin>
More information about the llvm-commits
mailing list