Skip to content

Commit c95f16c

Browse files
committed
Refactored early returns into normal if statement.
1 parent e42772b commit c95f16c

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

clang/lib/CodeGen/CGAtomic.cpp

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -591,26 +591,17 @@ static void EmitAtomicOp(CodeGenFunction &CGF, AtomicExpr *E, Address Dest,
591591
Load->setAtomic(Order, Scope);
592592
Load->setVolatile(E->isVolatile());
593593

594-
if (CGF.CGM.getCodeGenOpts().OptimizationLevel == 0) {
595-
CGF.Builder.CreateStore(Load, Dest);
596-
return;
597-
}
598-
599594
QualType Ty = E->getValueType();
600-
if (!Ty->isBooleanType()) {
601-
CGF.Builder.CreateStore(Load, Dest);
602-
return;
603-
}
604-
605-
llvm::MDBuilder MDHelper(CGF.getLLVMContext());
606-
llvm::APInt BooleanMin = llvm::APInt(CGF.getContext().getTypeSize(Ty), 0);
607-
llvm::APInt BooleanEnd = llvm::APInt(CGF.getContext().getTypeSize(Ty), 2);
608-
609-
if (llvm::MDNode *RangeInfo =
610-
MDHelper.createRange(BooleanMin, BooleanEnd)) {
611-
Load->setMetadata(llvm::LLVMContext::MD_range, RangeInfo);
612-
Load->setMetadata(llvm::LLVMContext::MD_noundef,
613-
llvm::MDNode::get(CGF.getLLVMContext(), {}));
595+
if (CGF.CGM.getCodeGenOpts().OptimizationLevel > 0 && Ty->isBooleanType()) {
596+
llvm::MDBuilder MDHelper(CGF.getLLVMContext());
597+
llvm::APInt BooleanMin = llvm::APInt(CGF.getContext().getTypeSize(Ty), 0);
598+
llvm::APInt BooleanEnd = llvm::APInt(CGF.getContext().getTypeSize(Ty), 2);
599+
if (llvm::MDNode *RangeInfo =
600+
MDHelper.createRange(BooleanMin, BooleanEnd)) {
601+
Load->setMetadata(llvm::LLVMContext::MD_range, RangeInfo);
602+
Load->setMetadata(llvm::LLVMContext::MD_noundef,
603+
llvm::MDNode::get(CGF.getLLVMContext(), {}));
604+
}
614605
}
615606

616607
CGF.Builder.CreateStore(Load, Dest);

0 commit comments

Comments
 (0)