Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Jul 2013 12:43:49 +0100
From:      David Chisnall <theraven@FreeBSD.org>
To:        Hans Petter Selasky <hps@bitfrost.no>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, Tim Kientzle <kientzle@FreeBSD.org>, src-committers@FreeBSD.org, Bruce Evans <brde@optusnet.com.au>
Subject:   Re: svn commit: r253636 - head/sys/vm
Message-ID:  <73FCA347-5EB9-445F-A25C-D06CA137CBEE@FreeBSD.org>
In-Reply-To: <51F0DDB0.7080102@bitfrost.no>
References:  <201307250348.r6P3mbsG049595@svn.freebsd.org> <20130725171038.O841@besplex.bde.org> <51F0DDB0.7080102@bitfrost.no>

next in thread | previous in thread | raw e-mail | index | archive | help

--Apple-Mail=_9FD02FE0-1BE7-4720-B810-D2F9C8BF31BE
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1

On 25 Jul 2013, at 09:11, Hans Petter Selasky <hps@bitfrost.no> wrote:

> The structure looks like some size, so bzero() might run faster than =
memset() depending on the compiler settings. Should be profiled before =
changed!

They will generate identical code for small structures with known sizes. =
 Both clang and gcc have a simplify libcalls pass that recognises both =
functions and will elide the call in preference to a small set of inline =
stores.

However(), memset is to be preferred in this idiom because the compiler =
provides better diagnostics in the case of error:

bzero.c:9:22: warning: 'memset' call operates on objects of type 'struct =
foo'
      while the size is based on a different type 'struct foo *'
      [-Wsizeof-pointer-memaccess]
        memset(f, 0, sizeof(f));
               ~            ^
bzero.c:9:22: note: did you mean to dereference the argument to 'sizeof' =
(and
      multiply it by the number of elements)?
        memset(f, 0, sizeof(f));
                            ^

The same line with bzero(f, sizeof(f)) generates no error.

David


--Apple-Mail=_9FD02FE0-1BE7-4720-B810-D2F9C8BF31BE
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
Comment: GPGTools - http://gpgtools.org

iQIcBAEBAgAGBQJR8Q92AAoJEKx65DEEsqId+bEP/Rm3oxEzblD4n+MTtd3dwjvt
RV5eSDHKFV5GyRMtvggrQy10NPulZDjiRLCzIivbpM9ybDOg+sxTUrRJn+2FOp9i
GBuvX543BO4TTtxkpBdk69HCwe5iiAfNdO7Ls/FfDFYDJodVyPQf8GG8/pvyTNJ+
9s3mjdoUc3Wv+nTkWY5QJQvV0Mibn5+NeO1oLDEznbhihcIVDOovTMN2iY0NfcLb
aAKdTQt41PwIE3Jml67HIEgbSRIo79Eind8kDUfkK/nqx8+Yw2tbECZsDZPDkUIX
dMcyoSen+GKjpq45NHfIYU3TP4vUdbIxCbopbK9gBddHYWdHOKCGqW7DTmZZXoHU
odnSoCldpMy7q2nmeqIea22KX0DVNbUGPpy95WNCLf0BAE2afHiJYaKD0AEkEkx8
bpy27cBgYWidUifzbrwOxD3t9GJTFY0wkRXdg+j7JHP8mrlEGOalEflrlmj27NJ3
P+xflWSOk2nFWyg91Kw6XlsLD+pLmZeMEX2ILZbdv9f1T/EfhTgpjzQ8ug2WsFsq
TCVWCLnMN8itFphngLmLwUyHaY+8k66XLfr4LLSzH+yh4CmWtOJtLz/07eJEhiV7
DBZmmeyoqf2quYdNXWrXrzBk1smpI0Lvm8/yFAeICZPkOzxGI7u9+XxpJPJ9XI2h
bmB9v3wloqdzhSUKNm79
=9SVh
-----END PGP SIGNATURE-----

--Apple-Mail=_9FD02FE0-1BE7-4720-B810-D2F9C8BF31BE--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?73FCA347-5EB9-445F-A25C-D06CA137CBEE>