Skip to content

Commit d5032b9

Browse files
authored
[NFC][Coroutines] Use structured binding with llvm::enumerate in CoroSplit (#116879)
Avoid repeated calls to value() and index() using structured binding with llvm::enumerate.
1 parent 2c63e6d commit d5032b9

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

llvm/lib/Transforms/Coroutines/CoroSplit.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -628,11 +628,11 @@ void CoroCloner::replaceRetconOrAsyncSuspendUses() {
628628
return;
629629

630630
// Otherwise, we need to create an aggregate.
631-
Value *Agg = PoisonValue::get(NewS->getType());
632-
for (auto Arg : llvm::enumerate(Args))
633-
Agg = Builder.CreateInsertValue(Agg, Arg.value(), Arg.index());
631+
Value *Aggr = PoisonValue::get(NewS->getType());
632+
for (auto [Idx, Arg] : llvm::enumerate(Args))
633+
Aggr = Builder.CreateInsertValue(Aggr, Arg, Idx);
634634

635-
NewS->replaceAllUsesWith(Agg);
635+
NewS->replaceAllUsesWith(Aggr);
636636
}
637637

638638
void CoroCloner::replaceCoroSuspends() {
@@ -1834,8 +1834,8 @@ void coro::AsyncABI::splitCoroutine(Function &F, coro::Shape &Shape,
18341834

18351835
// Create a continuation function for each of the suspend points.
18361836
Clones.reserve(Shape.CoroSuspends.size());
1837-
for (auto CS : llvm::enumerate(Shape.CoroSuspends)) {
1838-
auto *Suspend = cast<CoroSuspendAsyncInst>(CS.value());
1837+
for (auto [Idx, CS] : llvm::enumerate(Shape.CoroSuspends)) {
1838+
auto *Suspend = cast<CoroSuspendAsyncInst>(CS);
18391839

18401840
// Create the clone declaration.
18411841
auto ResumeNameSuffix = ".resume.";
@@ -1851,8 +1851,8 @@ void coro::AsyncABI::splitCoroutine(Function &F, coro::Shape &Shape,
18511851
}
18521852
auto *Continuation = createCloneDeclaration(
18531853
F, Shape,
1854-
UseSwiftMangling ? ResumeNameSuffix + Twine(CS.index()) + "_"
1855-
: ResumeNameSuffix + Twine(CS.index()),
1854+
UseSwiftMangling ? ResumeNameSuffix + Twine(Idx) + "_"
1855+
: ResumeNameSuffix + Twine(Idx),
18561856
NextF, Suspend);
18571857
Clones.push_back(Continuation);
18581858

@@ -1885,12 +1885,12 @@ void coro::AsyncABI::splitCoroutine(Function &F, coro::Shape &Shape,
18851885
}
18861886

18871887
assert(Clones.size() == Shape.CoroSuspends.size());
1888-
for (auto CS : llvm::enumerate(Shape.CoroSuspends)) {
1889-
auto *Suspend = CS.value();
1890-
auto *Clone = Clones[CS.index()];
1888+
for (auto [Idx, CS] : llvm::enumerate(Shape.CoroSuspends)) {
1889+
auto *Suspend = CS;
1890+
auto *Clone = Clones[Idx];
18911891

1892-
CoroCloner::createClone(F, "resume." + Twine(CS.index()), Shape, Clone,
1893-
Suspend, TTI);
1892+
CoroCloner::createClone(F, "resume." + Twine(Idx), Shape, Clone, Suspend,
1893+
TTI);
18941894
}
18951895
}
18961896

@@ -1947,12 +1947,12 @@ void coro::AnyRetconABI::splitCoroutine(Function &F, coro::Shape &Shape,
19471947

19481948
// Create a continuation function for each of the suspend points.
19491949
Clones.reserve(Shape.CoroSuspends.size());
1950-
for (auto CS : llvm::enumerate(Shape.CoroSuspends)) {
1951-
auto Suspend = cast<CoroSuspendRetconInst>(CS.value());
1950+
for (auto [Idx, CS] : llvm::enumerate(Shape.CoroSuspends)) {
1951+
auto Suspend = cast<CoroSuspendRetconInst>(CS);
19521952

19531953
// Create the clone declaration.
19541954
auto Continuation = createCloneDeclaration(
1955-
F, Shape, ".resume." + Twine(CS.index()), NextF, nullptr);
1955+
F, Shape, ".resume." + Twine(Idx), NextF, nullptr);
19561956
Clones.push_back(Continuation);
19571957

19581958
// Insert a branch to the unified return block immediately before
@@ -2016,12 +2016,12 @@ void coro::AnyRetconABI::splitCoroutine(Function &F, coro::Shape &Shape,
20162016
}
20172017

20182018
assert(Clones.size() == Shape.CoroSuspends.size());
2019-
for (auto CS : llvm::enumerate(Shape.CoroSuspends)) {
2020-
auto Suspend = CS.value();
2021-
auto Clone = Clones[CS.index()];
2019+
for (auto [Idx, CS] : llvm::enumerate(Shape.CoroSuspends)) {
2020+
auto Suspend = CS;
2021+
auto Clone = Clones[Idx];
20222022

2023-
CoroCloner::createClone(F, "resume." + Twine(CS.index()), Shape, Clone,
2024-
Suspend, TTI);
2023+
CoroCloner::createClone(F, "resume." + Twine(Idx), Shape, Clone, Suspend,
2024+
TTI);
20252025
}
20262026
}
20272027

0 commit comments

Comments
 (0)