[all-commits] [llvm/llvm-project] c75ced: [Coroutines] Set presplit attribute in Clang and mlir
Chuanqi Xu via All-commits
all-commits at lists.llvm.org
Tue Jan 4 18:26:00 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c75cedc237f9747c5d5fe2a312d5ccc8531e2e70
https://github.com/llvm/llvm-project/commit/c75cedc237f9747c5d5fe2a312d5ccc8531e2e70
Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
Date: 2022-01-05 (Wed, 05 Jan 2022)
Changed paths:
M clang/lib/CodeGen/CGCoroutine.cpp
M clang/test/CodeGenCoroutines/coro-always-inline.cpp
A clang/test/CodeGenCoroutines/coro-attributes.cpp
M llvm/docs/Coroutines.rst
M llvm/lib/Transforms/Coroutines/CoroEarly.cpp
M llvm/lib/Transforms/Coroutines/CoroInternal.h
M llvm/test/Transforms/Coroutines/coro-async.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.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-noalias-param.ll
M llvm/test/Transforms/Coroutines/coro-split-01.ll
M llvm/test/Transforms/Coroutines/coro-split-recursive.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/phi-coro-end.ll
M llvm/test/Transforms/Coroutines/restart-trigger.ll
M mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
A mlir/test/mlir-opt/async.mlir
Log Message:
-----------
[Coroutines] Set presplit attribute in Clang and mlir
This fixes bug49264.
Simply, coroutine shouldn't be inlined before CoroSplit. And the marker
for pre-splited coroutine is created in CoroEarly pass, which ran after
AlwaysInliner Pass in O0 pipeline. So that the AlwaysInliner couldn't
detect it shouldn't inline a coroutine. So here is the error.
This patch set the presplit attribute in clang and mlir. So the inliner
would always detect the attribute before splitting.
Reviewed By: rjmccall, ezhulenev
Differential Revision: https://reviews.llvm.org/D115790
More information about the All-commits
mailing list