From owner-freebsd-current@FreeBSD.ORG  Tue Mar 16 15:28:47 2004
Return-Path: <owner-freebsd-current@FreeBSD.ORG>
Delivered-To: freebsd-current@freebsd.org
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP
	id 9A0DE16A4CE; Tue, 16 Mar 2004 15:28:47 -0800 (PST)
Received: from tigra.ip.net.ua (tigra.ip.net.ua [82.193.96.10])
	by mx1.FreeBSD.org (Postfix) with ESMTP
	id C3B9F43D2D; Tue, 16 Mar 2004 15:28:46 -0800 (PST)
	(envelope-from ru@ip.net.ua)
Received: from heffalump.ip.net.ua (heffalump.ip.net.ua [82.193.96.213])
	by tigra.ip.net.ua (8.12.10/8.12.9) with ESMTP id i2GNX8ee051102
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
	Wed, 17 Mar 2004 01:33:10 +0200 (EET)
	(envelope-from ru@ip.net.ua)
Received: (from ru@localhost)
	by heffalump.ip.net.ua (8.12.11/8.12.11) id i2GNSmj5062513;
	Wed, 17 Mar 2004 01:28:48 +0200 (EET)
	(envelope-from ru)
Date: Wed, 17 Mar 2004 01:28:48 +0200
From: Ruslan Ermilov <ru@freebsd.org>
To: Dag-Erling Sm?rgrav <des@des.no>
Message-ID: <20040316232848.GR3462@ip.net.ua>
References: <xzp7jxkjv98.fsf@dwp.des.no> <xzp3c88jv7k.fsf@dwp.des.no>
	<20040316225230.GO3462@ip.net.ua> <xzpllm0ie5z.fsf@dwp.des.no>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;
	protocol="application/pgp-signature"; boundary="soWJpSPh+l8Y6Fy7"
Content-Disposition: inline
In-Reply-To: <xzpllm0ie5z.fsf@dwp.des.no>
User-Agent: Mutt/1.5.6i
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)
cc: current@freebsd.org
cc: net@freebsd.org
Subject: Re: libalias patch for review / testing
X-BeenThere: freebsd-current@freebsd.org
X-Mailman-Version: 2.1.1
Precedence: list
List-Id: Discussions about the use of FreeBSD-current
	<freebsd-current.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-current>,
	<mailto:freebsd-current-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-current>
List-Post: <mailto:freebsd-current@freebsd.org>
List-Help: <mailto:freebsd-current-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-current>,
	<mailto:freebsd-current-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Mar 2004 23:28:47 -0000


--soWJpSPh+l8Y6Fy7
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 17, 2004 at 12:07:52AM +0100, Dag-Erling Sm?rgrav wrote:
> Ruslan Ermilov <ru@FreeBSD.org> writes:
> > I know this code quite well.  Where do you suspect could be a bug
> > affecting -O2 compiles, or you just simply fixed -O2 and hope it
> > will auto-fix the (possible) bugs in -O2?
>=20
> Since there is no inline asm, the most likely suspect is aliasing,
> which is what my patch tries to address.
>=20
Hmm, read this again:

: `-fstrict-aliasing'
:      Allows the compiler to assume the strictest aliasing rules
:      applicable to the language being compiled.  For C (and C++), this
:      activates optimizations based on the type of expressions.  In
:      particular, an object of one type is assumed never to reside at
:      the same address as an object of a different type, unless the
:      types are almost the same.  For example, an `unsigned int' can
:      alias an `int', but not a `void*' or a `double'.  A character type
:      may alias any other type.

And asking myself a question: should those (void *)'s in your patch
be (char *)'s instead, e.g., in twowords() and DifferentialChecksum(),
or am I misreading the above?

Also, the easiest way to check if strict aliasing is guilty for not
working libalias compiled with -O2, is to compile the original code
with -O2 -fno-strict-aliasing.  You guys who have seen a problem,
can you please check and confirm that?


Cheers,
--=20
Ruslan Ermilov
FreeBSD committer
ru@FreeBSD.org

--soWJpSPh+l8Y6Fy7
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQFAV42wUkv4P6juNwoRAjfoAKCFmQfpsRXd7YlDm94ly3fatLaGgQCfb0kR
H9QhpVVaijqCfWVt877nLd8=
=UvNf
-----END PGP SIGNATURE-----

--soWJpSPh+l8Y6Fy7--