1*9bd66b31SArthur Eubanks //===- CoroConditionalWrapper.cpp -----------------------------------------===//
2*9bd66b31SArthur Eubanks //
3*9bd66b31SArthur Eubanks // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*9bd66b31SArthur Eubanks // See https://llvm.org/LICENSE.txt for license information.
5*9bd66b31SArthur Eubanks // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*9bd66b31SArthur Eubanks //
7*9bd66b31SArthur Eubanks //===----------------------------------------------------------------------===//
8*9bd66b31SArthur Eubanks 
9*9bd66b31SArthur Eubanks #include "llvm/Transforms/Coroutines/CoroConditionalWrapper.h"
10*9bd66b31SArthur Eubanks #include "CoroInternal.h"
11*9bd66b31SArthur Eubanks #include "llvm/IR/Module.h"
12*9bd66b31SArthur Eubanks 
13*9bd66b31SArthur Eubanks using namespace llvm;
14*9bd66b31SArthur Eubanks 
CoroConditionalWrapper(ModulePassManager && PM)15*9bd66b31SArthur Eubanks CoroConditionalWrapper::CoroConditionalWrapper(ModulePassManager &&PM)
16*9bd66b31SArthur Eubanks     : PM(std::move(PM)) {}
17*9bd66b31SArthur Eubanks 
run(Module & M,ModuleAnalysisManager & AM)18*9bd66b31SArthur Eubanks PreservedAnalyses CoroConditionalWrapper::run(Module &M,
19*9bd66b31SArthur Eubanks                                               ModuleAnalysisManager &AM) {
20*9bd66b31SArthur Eubanks   if (!coro::declaresAnyIntrinsic(M))
21*9bd66b31SArthur Eubanks     return PreservedAnalyses::all();
22*9bd66b31SArthur Eubanks 
23*9bd66b31SArthur Eubanks   return PM.run(M, AM);
24*9bd66b31SArthur Eubanks }
25