LLVM  13.0.0git
CoroSplit.h
Go to the documentation of this file.
1 //===- CoroSplit.h - Converts a coroutine into a state machine -*- C++ -*--===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // \file
10 // This file declares the pass that builds the coroutine frame and outlines
11 // the resume and destroy parts of the coroutine into separate functions.
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef LLVM_TRANSFORMS_COROUTINES_COROSPLIT_H
16 #define LLVM_TRANSFORMS_COROUTINES_COROSPLIT_H
17 
20 #include "llvm/IR/PassManager.h"
21 
22 namespace llvm {
23 
24 struct CoroSplitPass : PassInfoMixin<CoroSplitPass> {
26 
29  static bool isRequired() { return true; }
30 
31  // Would be true if the Optimization level isn't O0.
33 };
34 } // end namespace llvm
35 
36 #endif // LLVM_TRANSFORMS_COROUTINES_COROSPLIT_H
llvm::PreservedAnalyses
A set of analyses that are preserved following a run of a transformation pass.
Definition: PassManager.h:155
llvm::CoroSplitPass::isRequired
static bool isRequired()
Definition: CoroSplit.h:29
llvm
Definition: AllocatorList.h:23
llvm::PassInfoMixin
A CRTP mix-in to automatically provide informational APIs needed for passes.
Definition: PassManager.h:374
llvm::CoroSplitPass::ReuseFrameSlot
bool ReuseFrameSlot
Definition: CoroSplit.h:32
llvm::CoroSplitPass::CoroSplitPass
CoroSplitPass(bool ReuseFrameSlot=false)
Definition: CoroSplit.h:25
llvm::LazyCallGraph::SCC
An SCC of the call graph.
Definition: LazyCallGraph.h:421
C
(vector float) vec_cmpeq(*A, *B) C
Definition: README_ALTIVEC.txt:86
LazyCallGraph.h
llvm::CoroSplitPass::run
PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, LazyCallGraph &CG, CGSCCUpdateResult &UR)
Definition: CoroSplit.cpp:2086
CGSCCPassManager.h
llvm::CGSCCUpdateResult
Support structure for SCC passes to communicate updates the call graph back to the CGSCC pass manager...
Definition: CGSCCPassManager.h:232
PassManager.h
llvm::CoroSplitPass
Definition: CoroSplit.h:24
llvm::AnalysisManager
A container for analyses that lazily runs them and caches their results.
Definition: InstructionSimplify.h:44
llvm::LazyCallGraph
A lazily constructed view of the call graph of a module.
Definition: LazyCallGraph.h:112