[all-commits] [llvm/llvm-project] 7c0e06: [coro async] Don't use lifetime.start based alloca...

Arnold Schwaighofer via All-commits all-commits at lists.llvm.org
Mon Dec 6 11:51:34 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7c0e066869de74ece2215095f2246e43d991b942
      https://github.com/llvm/llvm-project/commit/7c0e066869de74ece2215095f2246e43d991b942
  Author: Arnold Schwaighofer <aschwaighofer at apple.com>
  Date:   2021-12-06 (Mon, 06 Dec 2021)

  Changed paths:
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    A llvm/test/Transforms/Coroutines/coro-async-addr-lifetime-infinite-loop-bug.ll

  Log Message:
  -----------
  [coro async] Don't use lifetime.start based alloca localization for ABI.Async/ABI.Retcon

Infinite loops can lead to an IR representation where the lifetime.end
intrinsice is missing. The code to do lifetime based optimization then
fails to see that an address escapes (is life) accross a supspend.

Eventually, we could detect such situations and disable it under more narrow
circumstances. For now, do the correct thing.

rdar://83635953

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




More information about the All-commits mailing list