LLVM  6.0.0svn
Coroutines.h
Go to the documentation of this file.
1 //===-- Coroutines.h - Coroutine Transformations ----------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 // Declare accessor functions for coroutine lowering passes.
10 //===----------------------------------------------------------------------===//
11 
12 #ifndef LLVM_TRANSFORMS_COROUTINES_H
13 #define LLVM_TRANSFORMS_COROUTINES_H
14 
15 namespace llvm {
16 
17 class Pass;
18 class PassManagerBuilder;
19 
20 /// Add all coroutine passes to appropriate extension points.
21 void addCoroutinePassesToExtensionPoints(PassManagerBuilder &Builder);
22 
23 /// Lower coroutine intrinsics that are not needed by later passes.
25 
26 /// Split up coroutines into multiple functions driving their state machines.
28 
29 /// Analyze coroutines use sites, devirtualize resume/destroy calls and elide
30 /// heap allocation for coroutine frame where possible.
32 
33 /// Lower all remaining coroutine intrinsics.
35 
36 }
37 
38 #endif
Compute iterated dominance frontiers using a linear time algorithm.
Definition: AllocatorList.h:24
Pass * createCoroSplitPass()
Split up coroutines into multiple functions driving their state machines.
Pass * createCoroEarlyPass()
Lower coroutine intrinsics that are not needed by later passes.
Pass * createCoroCleanupPass()
Lower all remaining coroutine intrinsics.
Pass * createCoroElidePass()
Analyze coroutines use sites, devirtualize resume/destroy calls and elide heap allocation for corouti...
Definition: CoroElide.cpp:321
print lazy value Lazy Value Info Printer Pass
void addCoroutinePassesToExtensionPoints(PassManagerBuilder &Builder)
Add all coroutine passes to appropriate extension points.
Definition: Coroutines.cpp:80