[PATCH] D76913: [Coroutines 2/2] Improve symmetric control transfer feature

JunMa via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 27 03:10:30 PDT 2020


junparser created this revision.
junparser added reviewers: modocache, GorNishanov, lewissbaker, wenlei, rsmith.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
junparser added a parent revision: D76911: [Coroutines 1/2] Improve symmetric control transfer feature .
junparser edited the summary of this revision.

This patch implements part 2 described in https://reviews.llvm.org/D76911 which handle conditional branch in simplifyTerminatorLeadingToRet

We do not use LazyValueInfo to handle this since it is too heavy here. Instead,  when case number of suspend switch instruction  is reduced to 1,  llvm::ConstantFoldTerminator simplifies it to 'icmp eq' ,  so we only need handle this.

@lewissbaker, the two patches fix the stack overflow failure.

TestPlan: check-llvm , cppcoro


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D76913

Files:
  llvm/lib/Transforms/Coroutines/CoroSplit.cpp
  llvm/test/Transforms/Coroutines/coro-split-musttail3.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D76913.253061.patch
Type: text/x-patch
Size: 5986 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200327/600dc048/attachment.bin>


More information about the llvm-commits mailing list