[all-commits] [llvm/llvm-project] 2e4c5d: CoroSplit: Fix coroutine splitting for retcon and ...

Arnold Schwaighofer via All-commits all-commits at lists.llvm.org
Wed Jun 3 12:12:49 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2e4c5d1c483a986dbb3fc6486bdb2f0eb2adc8c8
      https://github.com/llvm/llvm-project/commit/2e4c5d1c483a986dbb3fc6486bdb2f0eb2adc8c8
  Author: Arnold Schwaighofer <aschwaighofer at apple.com>
  Date:   2020-06-03 (Wed, 03 Jun 2020)

  Changed paths:
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    A llvm/test/Transforms/Coroutines/coro-retcon-frame.ll

  Log Message:
  -----------
  CoroSplit: Fix coroutine splitting for retcon and retcon.once

Summary:
For retcon and retcon.once coroutines we assume that all uses of spills
can be sunk past coro.begin. This simplifies handling of instructions
that escape the address of an alloca.

The current implementation would have issues if the address of the
alloca is escaped before coro.begin. (It also has issues with casts before and
uses of those casts after the coro.begin instruction)

  %alloca_addr = alloca ...
  %escape  = ptrtoint %alloca_addr
  coro.begin
  store %escape to %alloca_addr

rdar://60272809

Subscribers: hiraditya, modocache, mgrang, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D81023




More information about the All-commits mailing list