mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-24 13:33:37 +02:00
2a69048889
Summary: This patch adds coroutine frame building algorithm. Now, simple coroutines such as ex0.ll and ex1.ll (first examples from docs\Coroutines.rst can be compiled). Documentation and overview is here: http://llvm.org/docs/Coroutines.html. Upstreaming sequence (rough plan) 1.Add documentation. (https://reviews.llvm.org/D22603) 2.Add coroutine intrinsics. (https://reviews.llvm.org/D22659) ... 7. Split coroutine into subfunctions. (https://reviews.llvm.org/D23461) 8. Coroutine Frame Building algorithm <= we are here 9. Add f.cleanup subfunction. 10+. The rest of the logic Reviewers: majnemer Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D23586 llvm-svn: 279609
26 lines
1.0 KiB
LLVM
26 lines
1.0 KiB
LLVM
; Test that all coroutine passes run in the correct order at all optimization
|
|
; levels and -enable-coroutines adds coroutine passes to the pipeline.
|
|
;
|
|
; RUN: opt < %s -disable-output -enable-coroutines -debug-pass=Arguments -O0 2>&1 | FileCheck %s
|
|
; RUN: opt < %s -disable-output -enable-coroutines -debug-pass=Arguments -O1 2>&1 | FileCheck %s
|
|
; RUN: opt < %s -disable-output -enable-coroutines -debug-pass=Arguments -O2 2>&1 | FileCheck %s
|
|
; RUN: opt < %s -disable-output -enable-coroutines -debug-pass=Arguments -O3 2>&1 | FileCheck %s
|
|
; RUN: opt < %s -disable-output -enable-coroutines -debug-pass=Arguments \
|
|
; RUN: -coro-early -coro-split -coro-elide -coro-cleanup 2>&1 | FileCheck %s
|
|
; RUN: opt < %s -disable-output -debug-pass=Arguments 2>&1 \
|
|
; RUN: | FileCheck %s -check-prefix=NOCORO
|
|
|
|
; CHECK: coro-early
|
|
; CHECK: coro-split
|
|
; CHECK: coro-elide
|
|
; CHECK: coro-cleanup
|
|
|
|
; NOCORO-NOT: coro-early
|
|
; NOCORO-NOT: coro-split
|
|
; NOCORO-NOT: coro-elide
|
|
; NOCORO-NOT: coro-cleanup
|
|
|
|
define void @foo() {
|
|
ret void
|
|
}
|