hans added inline comments.
> CGBuiltin.cpp:7604 > + case X86::BI__stosb: { > + // we treat __stosb as volatile memset - it may not generate "rep stosb" > + // instruction, but it will create a memset that won't be optimized away Nit: I'd suggest capital w for "We" and ending the sentence with a period. I see many other comments in the file don't do this, but we can at least set a good example :-) > CGBuiltin.cpp:7610 > + Value *SizeVal = EmitScalarExpr(E->getArg(2)); > + EmitNonNullArgCheck(RValue::get(Dest.getPointer()), > E->getArg(0)->getType(), > + E->getArg(0)->getExprLoc(), FD, 0); Hmm, does the __stosb intrinsic require Dest to be non-null (e.g. would Dest=NULL, Count=0 be OK?) I'm not even sure what llvm's memset requires actually. > CGBuiltin.cpp:7613 > + Builder.CreateMemSet(Dest, ByteVal, SizeVal, true); > + return Dest.getPointer(); > } Why is it returning Dest here, and not the result of Builder.CreateMemSet? https://reviews.llvm.org/D25334 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits