@@ -149,7 +149,7 @@ class VisitUnreachableLifetimeEnds {
149
149
llvm::function_ref<void (SILInstruction *)> visit);
150
150
151
151
struct State {
152
- enum class Value : uint8_t {
152
+ enum Value : uint8_t {
153
153
Unavailable = 0 ,
154
154
Available,
155
155
Unknown,
@@ -161,10 +161,6 @@ class VisitUnreachableLifetimeEnds {
161
161
State meet (State const other) const {
162
162
return *this < other ? *this : other;
163
163
}
164
-
165
- static State Unavailable () { return {Value::Unavailable}; }
166
- static State Available () { return {Value::Available}; }
167
- static State Unknown () { return {Value::Unknown}; }
168
164
};
169
165
170
166
struct Result {
@@ -244,9 +240,9 @@ void VisitUnreachableLifetimeEnds::propagateAvailablity(Result &result) {
244
240
// - start blocks are ::Available
245
241
for (auto *block : region) {
246
242
if (starts.contains (block))
247
- result.setState (block, State::Available () );
243
+ result.setState (block, State::Available);
248
244
else
249
- result.setState (block, State::Unknown () );
245
+ result.setState (block, State::Unknown);
250
246
}
251
247
252
248
BasicBlockWorklist worklist (value->getFunction ());
@@ -280,14 +276,14 @@ void VisitUnreachableLifetimeEnds::propagateAvailablity(Result &result) {
280
276
void VisitUnreachableLifetimeEnds::visitAvailabilityBoundary (
281
277
Result const &result, llvm::function_ref<void (SILInstruction *)> visit) {
282
278
for (auto *block : region) {
283
- auto available = result.getState (block) == State::Available () ;
279
+ auto available = result.getState (block) == State::Available;
284
280
if (!available) {
285
281
continue ;
286
282
}
287
283
auto hasUnreachableSuccessor = [&]() {
288
284
// Use a lambda to avoid checking if possible.
289
285
return llvm::any_of (block->getSuccessorBlocks (), [&result](auto *block) {
290
- return result.getState (block) == State::Unavailable () ;
286
+ return result.getState (block) == State::Unavailable;
291
287
});
292
288
};
293
289
if (!block->succ_empty () && !hasUnreachableSuccessor ()) {
0 commit comments