[PATCH] D154695: [Coroutines] Add an O(n) algorithm for computing the cross suspend point information.

witstorm via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 7 02:15:32 PDT 2023


witstorm95 created this revision.
Herald added subscribers: ChuanqiXu, hiraditya.
Herald added a project: All.
witstorm95 requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Fixed https://github.com/llvm/llvm-project/issues/62348

Propagate cross suspend point information by visiting CFG.

Just only go through three times at most, you can get all the cross suspend point information.

Before the patch:

  n: 20000
  4.31user 0.11system 0:04.44elapsed 99%CPU (0avgtext+0avgdata 552352maxresident)k
  0inputs+8848outputs (0major+126254minor)pagefaults 0swaps
  
  n: 40000
  11.24user 0.40system 0:11.66elapsed 99%CPU (0avgtext+0avgdata 1788404maxresident)k
  0inputs+17600outputs (0major+431105minor)pagefaults 0swaps
  
  n: 60000
  21.65user 0.96system 0:22.62elapsed 99%CPU (0avgtext+0avgdata 3809836maxresident)k
  0inputs+26352outputs (0major+934749minor)pagefaults 0swaps
  
  n: 80000
  37.05user 1.53system 0:38.58elapsed 99%CPU (0avgtext+0avgdata 6602396maxresident)k
  0inputs+35096outputs (0major+1622584minor)pagefaults 0swaps
  
  n: 100000
  51.87user 2.67system 0:54.54elapsed 99%CPU (0avgtext+0avgdata 10210736maxresident)k
  0inputs+43848outputs (0major+2518945minor)pagefaults 0swaps
  
  After the patch:

n: 20000
3.17user 0.16system 0:03.33elapsed 100%CPU (0avgtext+0avgdata 551736maxresident)k
0inputs+8848outputs (0major+126192minor)pagefaults 0swaps

n: 40000
6.10user 0.42system 0:06.54elapsed 99%CPU (0avgtext+0avgdata 1787848maxresident)k
0inputs+17600outputs (0major+432212minor)pagefaults 0swaps

n: 60000
9.13user 0.89system 0:10.03elapsed 99%CPU (0avgtext+0avgdata 3809108maxresident)k
0inputs+26352outputs (0major+931280minor)pagefaults 0swaps

n: 80000
12.44user 1.57system 0:14.02elapsed 99%CPU (0avgtext+0avgdata 6603432maxresident)k
0inputs+35096outputs (0major+1624635minor)pagefaults 0swaps

n: 100000
16.29user 2.28system 0:18.59elapsed 99%CPU (0avgtext+0avgdata 10212808maxresident)k
0inputs+43848outputs (0major+2522200minor)pagefaults 0swaps


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D154695

Files:
  llvm/lib/Transforms/Coroutines/CoroFrame.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D154695.538037.patch
Type: text/x-patch
Size: 7495 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230707/baf11d83/attachment.bin>


More information about the llvm-commits mailing list