[all-commits] [llvm/llvm-project] 735e6c: [Coroutines] Convert coroutine.presplit to enum attr

Chuanqi Xu via All-commits all-commits at lists.llvm.org
Mon Jun 13 23:24:07 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 735e6c40b5e9a128820f009595de4728e5d6b3d5
      https://github.com/llvm/llvm-project/commit/735e6c40b5e9a128820f009595de4728e5d6b3d5
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2022-06-14 (Tue, 14 Jun 2022)

  Changed paths:
    M clang/lib/CodeGen/CGCoroutine.cpp
    M clang/test/CodeGenCoroutines/coro-attributes.cpp
    M llvm/docs/Coroutines.rst
    M llvm/include/llvm/Bitcode/LLVMBitCodes.h
    M llvm/include/llvm/IR/Attributes.td
    M llvm/include/llvm/IR/Function.h
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/Transforms/Coroutines/CoroCleanup.cpp
    M llvm/lib/Transforms/Coroutines/CoroEarly.cpp
    M llvm/lib/Transforms/Coroutines/CoroInternal.h
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/test/Transforms/Coroutines/ArgAddr.ll
    M llvm/test/Transforms/Coroutines/coro-align16.ll
    M llvm/test/Transforms/Coroutines/coro-align32.ll
    M llvm/test/Transforms/Coroutines/coro-align64-02.ll
    M llvm/test/Transforms/Coroutines/coro-align64.ll
    M llvm/test/Transforms/Coroutines/coro-align8-02.ll
    M llvm/test/Transforms/Coroutines/coro-align8.ll
    M llvm/test/Transforms/Coroutines/coro-alloc-with-param-O0.ll
    M llvm/test/Transforms/Coroutines/coro-alloc-with-param-O2.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-01.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-02.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-03.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-04.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-05.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-06.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-07.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-08.ll
    M llvm/test/Transforms/Coroutines/coro-alloca-09.ll
    M llvm/test/Transforms/Coroutines/coro-async-dyn-align.ll
    M llvm/test/Transforms/Coroutines/coro-async.ll
    M llvm/test/Transforms/Coroutines/coro-byval-param.ll
    M llvm/test/Transforms/Coroutines/coro-catchswitch-cleanuppad.ll
    M llvm/test/Transforms/Coroutines/coro-catchswitch.ll
    M llvm/test/Transforms/Coroutines/coro-debug-O2.ll
    M llvm/test/Transforms/Coroutines/coro-debug-coro-frame.ll
    M llvm/test/Transforms/Coroutines/coro-debug-dbg.addr.ll
    M llvm/test/Transforms/Coroutines/coro-debug-dbg.values-not_used_in_frame.ll
    M llvm/test/Transforms/Coroutines/coro-debug-dbg.values.ll
    M llvm/test/Transforms/Coroutines/coro-debug-frame-variable.ll
    M llvm/test/Transforms/Coroutines/coro-debug.ll
    M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-00.ll
    M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-01.ll
    M llvm/test/Transforms/Coroutines/coro-eh-aware-edge-split-02.ll
    M llvm/test/Transforms/Coroutines/coro-frame-arrayalloca.ll
    M llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-00.ll
    M llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-01.ll
    M llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-02.ll
    M llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-03.ll
    M llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-04.ll
    M llvm/test/Transforms/Coroutines/coro-frame-reuse-alloca-05.ll
    M llvm/test/Transforms/Coroutines/coro-frame-unreachable.ll
    M llvm/test/Transforms/Coroutines/coro-frame.ll
    M llvm/test/Transforms/Coroutines/coro-inline.ll
    M llvm/test/Transforms/Coroutines/coro-materialize.ll
    M llvm/test/Transforms/Coroutines/coro-noalias-param.ll
    M llvm/test/Transforms/Coroutines/coro-padding.ll
    M llvm/test/Transforms/Coroutines/coro-param-copy.ll
    M llvm/test/Transforms/Coroutines/coro-retcon-frame.ll
    M llvm/test/Transforms/Coroutines/coro-retcon-once-value2.ll
    M llvm/test/Transforms/Coroutines/coro-retcon-resume-values2.ll
    M llvm/test/Transforms/Coroutines/coro-spill-after-phi.ll
    M llvm/test/Transforms/Coroutines/coro-spill-corobegin.ll
    M llvm/test/Transforms/Coroutines/coro-spill-defs-before-corobegin.ll
    M llvm/test/Transforms/Coroutines/coro-spill-promise.ll
    M llvm/test/Transforms/Coroutines/coro-split-00.ll
    M llvm/test/Transforms/Coroutines/coro-split-01.ll
    M llvm/test/Transforms/Coroutines/coro-split-02.ll
    M llvm/test/Transforms/Coroutines/coro-split-alloc.ll
    M llvm/test/Transforms/Coroutines/coro-split-dbg.ll
    M llvm/test/Transforms/Coroutines/coro-split-eh-00.ll
    M llvm/test/Transforms/Coroutines/coro-split-eh-01.ll
    M llvm/test/Transforms/Coroutines/coro-split-hidden.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail1.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail2.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail3.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail4.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail5.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail6.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail7.ll
    M llvm/test/Transforms/Coroutines/coro-split-recursive.ll
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-01.ll
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-02.ll
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-03.ll
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-04.ll
    M llvm/test/Transforms/Coroutines/coro-zero-alloca.ll
    M llvm/test/Transforms/Coroutines/ex0.ll
    M llvm/test/Transforms/Coroutines/ex1.ll
    M llvm/test/Transforms/Coroutines/ex2.ll
    M llvm/test/Transforms/Coroutines/ex3.ll
    M llvm/test/Transforms/Coroutines/ex4.ll
    M llvm/test/Transforms/Coroutines/ex5.ll
    M llvm/test/Transforms/Coroutines/no-suspend.ll
    M llvm/test/Transforms/Coroutines/phi-coro-end.ll
    M llvm/test/Transforms/FunctionAttrs/noreturn.ll
    M llvm/test/Transforms/Inline/ML/state-tracking-coro.ll
    M mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
    M mlir/test/mlir-opt/async.mlir

  Log Message:
  -----------
  [Coroutines] Convert coroutine.presplit to enum attr

This is required by @nikic in https://reviews.llvm.org/D127383 to
decrease the cost to check whether a function is a coroutine and this
fixes a FIXME too.

Reviewed By: rjmccall, ezhulenev

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




More information about the All-commits mailing list