[all-commits] [llvm/llvm-project] 3dee1e: [coro] Fix rematerializable instruction sinking to...

Arnold Schwaighofer via All-commits all-commits at lists.llvm.org
Mon Jun 28 09:38:46 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3dee1e8a848d56178fc6013c343c1b144efb1425
      https://github.com/llvm/llvm-project/commit/3dee1e8a848d56178fc6013c343c1b144efb1425
  Author: Arnold Schwaighofer <aschwaighofer at apple.com>
  Date:   2021-06-28 (Mon, 28 Jun 2021)

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

  Log Message:
  -----------
  [coro] Fix rematerializable instruction sinking to coro.suspend blocks

There is a constraint that coro.suspend instructions need to be in their
own blocks. The coro split pass initially creates IR that obeys this constraint
(which is later checked). Sinking rematerializable instructions into these
blocks breaks that constraint.

Instead rematerialize in the predecessor block to the suspend's single
predecessor block.

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




More information about the All-commits mailing list