@@ -5213,9 +5213,8 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
5213
5213
llvm::BasicBlock *ContBB = createBasicBlock("atomic.scope.continue", CurFn);
5214
5214
5215
5215
llvm::DenseMap<llvm::BasicBlock *, llvm::AtomicOrdering> OrderBBs;
5216
- if (isa<llvm::ConstantInt>(Order)) {
5217
- int Ord = cast<llvm::ConstantInt>(Order)->getZExtValue();
5218
- switch (Ord) {
5216
+ if (auto Ord = dyn_cast<llvm::ConstantInt>(Order)) {
5217
+ switch (Ord->getZExtValue()) {
5219
5218
case 0: // memory_order_relaxed
5220
5219
default: // invalid order
5221
5220
ContBB->eraseFromParent();
@@ -5237,11 +5236,10 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
5237
5236
break;
5238
5237
}
5239
5238
} else {
5240
- llvm::BasicBlock *AcquireBB, *ReleaseBB, *AcqRelBB, *SeqCstBB;
5241
- AcquireBB = createBasicBlock("acquire", CurFn);
5242
- ReleaseBB = createBasicBlock("release", CurFn);
5243
- AcqRelBB = createBasicBlock("acqrel", CurFn);
5244
- SeqCstBB = createBasicBlock("seqcst", CurFn);
5239
+ llvm::BasicBlock *AcquireBB = createBasicBlock("acquire", CurFn);
5240
+ llvm::BasicBlock *ReleaseBB = createBasicBlock("release", CurFn);
5241
+ llvm::BasicBlock *AcqRelBB = createBasicBlock("acqrel", CurFn);
5242
+ llvm::BasicBlock *SeqCstBB = createBasicBlock("seqcst", CurFn);
5245
5243
5246
5244
Order = Builder.CreateIntCast(Order, Builder.getInt32Ty(), false);
5247
5245
llvm::SwitchInst *SI = Builder.CreateSwitch(Order, ContBB);
@@ -5259,10 +5257,9 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
5259
5257
5260
5258
for (auto &[OrderBB, Ordering] : OrderBBs) {
5261
5259
Builder.SetInsertPoint(OrderBB);
5262
- if (isa<llvm::ConstantInt>(Scope)) {
5263
- int Scp = cast<llvm::ConstantInt>(Scope)->getZExtValue();
5264
- SyncScope SS = ScopeModel->isValid(Scp)
5265
- ? ScopeModel->map(Scp)
5260
+ if (auto Scp = dyn_cast<llvm::ConstantInt>(Scope)) {
5261
+ SyncScope SS = ScopeModel->isValid(Scp->getZExtValue())
5262
+ ? ScopeModel->map(Scp->getZExtValue())
5266
5263
: ScopeModel->map(ScopeModel->getFallBackValue());
5267
5264
Builder.CreateFence(Ordering,
5268
5265
getTargetHooks().getLLVMSyncScopeID(
0 commit comments