reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGExprScalar.cpp
 3341   if (op.LHS->getType()->isPointerTy() ||
 3342       op.RHS->getType()->isPointerTy())
 3343     return emitPointerArithmetic(CGF, op, CodeGenFunction::NotSubtraction);
 3345   if (op.Ty->isSignedIntegerOrEnumerationType()) {
 3348       return Builder.CreateAdd(op.LHS, op.RHS, "add");
 3348       return Builder.CreateAdd(op.LHS, op.RHS, "add");
 3351         return Builder.CreateNSWAdd(op.LHS, op.RHS, "add");
 3351         return Builder.CreateNSWAdd(op.LHS, op.RHS, "add");
 3354       if (CanElideOverflowCheck(CGF.getContext(), op))
 3355         return Builder.CreateNSWAdd(op.LHS, op.RHS, "add");
 3355         return Builder.CreateNSWAdd(op.LHS, op.RHS, "add");
 3356       return EmitOverflowCheckedBinOp(op);
 3360   if (op.Ty->isUnsignedIntegerType() &&
 3362       !CanElideOverflowCheck(CGF.getContext(), op))
 3363     return EmitOverflowCheckedBinOp(op);
 3365   if (op.LHS->getType()->isFPOrFPVectorTy()) {
 3367     if (Value *FMulAdd = tryEmitFMulAdd(op, CGF, Builder))
 3370     Value *V = Builder.CreateFAdd(op.LHS, op.RHS, "add");
 3370     Value *V = Builder.CreateFAdd(op.LHS, op.RHS, "add");
 3371     return propagateFMFlags(V, op);
 3374   if (op.isFixedPointBinOp())
 3375     return EmitFixedPointBinOp(op);
 3377   return Builder.CreateAdd(op.LHS, op.RHS, "add");
 3377   return Builder.CreateAdd(op.LHS, op.RHS, "add");