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 EubanksCoroConditionalWrapper::CoroConditionalWrapper(ModulePassManager &&PM) 16*9bd66b31SArthur Eubanks : PM(std::move(PM)) {} 17*9bd66b31SArthur Eubanks run(Module & M,ModuleAnalysisManager & AM)18*9bd66b31SArthur EubanksPreservedAnalyses 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