forked from OSchip/llvm-project
[NFC] [Coroutines] Remove unnecessary check and constraints on SmallVector
The CoroSplit pass would check the existence of coroutine intrinsic before starting work. It is not necessary and wasteful since it would iterate over the Module. This patch also removes the constraint on the corresponding of the SmallVector for the possible coroutines in the Modules. The original value is 4. Given coroutines is used actually in practice. 4 is really relatively a low threshold.
This commit is contained in:
parent
ecd7a0132a
commit
902f4708fe
|
@ -2210,16 +2210,13 @@ PreservedAnalyses CoroSplitPass::run(LazyCallGraph::SCC &C,
|
|||
auto &FAM =
|
||||
AM.getResult<FunctionAnalysisManagerCGSCCProxy>(C, CG).getManager();
|
||||
|
||||
if (!declaresCoroSplitIntrinsics(M))
|
||||
return PreservedAnalyses::all();
|
||||
|
||||
// Check for uses of llvm.coro.prepare.retcon/async.
|
||||
SmallVector<Function *, 2> PrepareFns;
|
||||
addPrepareFunction(M, PrepareFns, "llvm.coro.prepare.retcon");
|
||||
addPrepareFunction(M, PrepareFns, "llvm.coro.prepare.async");
|
||||
|
||||
// Find coroutines for processing.
|
||||
SmallVector<LazyCallGraph::Node *, 4> Coroutines;
|
||||
SmallVector<LazyCallGraph::Node *> Coroutines;
|
||||
for (LazyCallGraph::Node &N : C)
|
||||
if (N.getFunction().hasFnAttribute(CORO_PRESPLIT_ATTR))
|
||||
Coroutines.push_back(&N);
|
||||
|
|
Loading…
Reference in New Issue