@@ -256,47 +256,46 @@ SILInstruction *SILCombiner::visitSelectEnumAddrInst(SelectEnumAddrInst *seai) {
256
256
return eraseInstFromFunction (*seai);
257
257
}
258
258
259
- SILInstruction *SILCombiner::visitSwitchValueInst (SwitchValueInst *SVI) {
260
- if (SVI->getFunction ()->hasOwnership ())
259
+ SILInstruction *SILCombiner::visitSwitchValueInst (SwitchValueInst *svi) {
260
+ SILValue cond = svi->getOperand ();
261
+ BuiltinIntegerType *condTy = cond->getType ().getAs <BuiltinIntegerType>();
262
+ if (!condTy || !condTy->isFixedWidth (1 ))
261
263
return nullptr ;
262
264
263
- SILValue Cond = SVI->getOperand ();
264
- BuiltinIntegerType *CondTy = Cond->getType ().getAs <BuiltinIntegerType>();
265
- if (!CondTy || !CondTy->isFixedWidth (1 ))
266
- return nullptr ;
267
-
268
- SILBasicBlock *FalseBB = nullptr ;
269
- SILBasicBlock *TrueBB = nullptr ;
270
- for (unsigned Idx = 0 , Num = SVI->getNumCases (); Idx < Num; ++Idx) {
271
- auto Case = SVI->getCase (Idx);
272
- auto *CaseVal = dyn_cast<IntegerLiteralInst>(Case.first );
273
- if (!CaseVal)
265
+ SILBasicBlock *falseBB = nullptr ;
266
+ SILBasicBlock *trueBB = nullptr ;
267
+ for (unsigned idx : range (svi->getNumCases ())) {
268
+ auto switchCase = svi->getCase (idx);
269
+ auto *caseVal = dyn_cast<IntegerLiteralInst>(switchCase.first );
270
+ if (!caseVal)
274
271
return nullptr ;
275
- SILBasicBlock *DestBB = Case .second ;
276
- assert (DestBB ->args_empty () &&
272
+ SILBasicBlock *destBB = switchCase .second ;
273
+ assert (destBB ->args_empty () &&
277
274
" switch_value case destination cannot take arguments" );
278
- if (CaseVal ->getValue () == 0 ) {
279
- assert (!FalseBB && " double case value 0 in switch_value" );
280
- FalseBB = DestBB ;
275
+ if (caseVal ->getValue () == 0 ) {
276
+ assert (!falseBB && " double case value 0 in switch_value" );
277
+ falseBB = destBB ;
281
278
} else {
282
- assert (!TrueBB && " double case value 1 in switch_value" );
283
- TrueBB = DestBB ;
279
+ assert (!trueBB && " double case value 1 in switch_value" );
280
+ trueBB = destBB ;
284
281
}
285
282
}
286
- if (SVI->hasDefault ()) {
287
- assert (SVI->getDefaultBB ()->args_empty () &&
283
+
284
+ if (svi->hasDefault ()) {
285
+ assert (svi->getDefaultBB ()->args_empty () &&
288
286
" switch_value default destination cannot take arguments" );
289
- if (!FalseBB ) {
290
- FalseBB = SVI ->getDefaultBB ();
291
- } else if (!TrueBB ) {
292
- TrueBB = SVI ->getDefaultBB ();
287
+ if (!falseBB ) {
288
+ falseBB = svi ->getDefaultBB ();
289
+ } else if (!trueBB ) {
290
+ trueBB = svi ->getDefaultBB ();
293
291
}
294
292
}
295
- if (!FalseBB || !TrueBB)
293
+
294
+ if (!falseBB || !trueBB)
296
295
return nullptr ;
297
296
298
- Builder.setCurrentDebugScope (SVI ->getDebugScope ());
299
- return Builder.createCondBranch (SVI ->getLoc (), Cond, TrueBB, FalseBB );
297
+ Builder.setCurrentDebugScope (svi ->getDebugScope ());
298
+ return Builder.createCondBranch (svi ->getLoc (), cond, trueBB, falseBB );
300
299
}
301
300
302
301
namespace {
0 commit comments