llvm-project/llvm/test
Gor Nishanov 0e18f75a92 [Coroutines] Part11: Add final suspend handling.
Summary:
A frontend may designate a particular suspend to be final, by setting the second argument of the coro.suspend intrinsic to true. Such a suspend point has two properties:

* it is possible to check whether a suspended coroutine is at the final suspend point via coro.done intrinsic;
* a resumption of a coroutine stopped at the final suspend point leads to undefined behavior. The only possible action for a coroutine at a final suspend point is destroying it via coro.destroy intrinsic.

This patch adds final suspend handling logic to CoroEarly and CoroSplit passes.
Now, the final suspend point example from docs\Coroutines.rst compiles and produces expected result (see test/Transform/Coroutines/ex5.ll).

Reviewers: majnemer

Subscribers: mehdi_amini, llvm-commits

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

llvm-svn: 280646
2016-09-05 04:44:30 +00:00
..
Analysis [Loop Vectorizer] Fixed memory confilict checks. 2016-08-28 08:53:53 +00:00
Assembler DebugInfo: Add flag to CU to disable emission of inline debug info into the skeleton CU 2016-08-24 18:29:49 +00:00
Bindings
Bitcode [PM] Port NameAnonFunction pass to new pass manager 2016-08-12 14:03:36 +00:00
BugPoint
CodeGen [X86] Add AVX and AVX512 command lines to the vec_ss_load_fold test. 2016-09-05 02:20:53 +00:00
DebugInfo Revert r280549. 2016-09-03 03:18:49 +00:00
Examples
ExecutionEngine [ORC] Clone module flags metadata into the globals module in the 2016-09-04 17:53:30 +00:00
Feature Revert "Revert "Invariant start/end intrinsics overloaded for address space"" 2016-08-13 23:31:24 +00:00
FileCheck
Instrumentation [sanitizer-coverage] add two more modes of instrumentation: trace-div and trace-gep, mostly usaful for value-profile-based fuzzing; llvm part 2016-08-30 01:12:10 +00:00
Integer
JitListener
LTO [LTO] Change addSaveTemps API: do not add dot to the supplied prefix path 2016-08-18 00:12:33 +00:00
LibDriver
Linker IR: Drop uniquing when an MDNode Value operand is deleted 2016-08-03 18:19:43 +00:00
MC [PowerPC] Support asm parsing for bc[l][a][+-] mnemonics 2016-09-03 02:31:44 +00:00
Object Next set of additional error checks for invalid Mach-O files for bad load commands 2016-08-31 17:57:46 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +00:00
Other [PM] Introduce basic update capabilities to the new PM's CGSCC pass 2016-08-24 09:37:14 +00:00
SymbolRewriter [PM] Port SymbolRewriter to the new PM 2016-07-25 20:52:00 +00:00
TableGen
ThinLTO/X86 Fix ThinLTO crash with debug info 2016-09-03 21:12:33 +00:00
Transforms [Coroutines] Part11: Add final suspend handling. 2016-09-05 04:44:30 +00:00
Unit
Verifier [coroutines] Part 4[ab]: Coroutine Devirtualization: Lower coro.resume and coro.destroy. 2016-08-04 20:30:07 +00:00
YAMLParser
tools [llvm-readobj] - Teach readobj to print DT_AUXILIARY dynamic tag in human readable form. 2016-09-02 07:35:19 +00:00
.clang-format
CMakeLists.txt Restore "Resolution-based LTO API." 2016-08-11 14:58:12 +00:00
TestRunner.sh
lit.cfg Restore "Resolution-based LTO API." 2016-08-11 14:58:12 +00:00
lit.site.cfg.in