From owner-freebsd-hackers@FreeBSD.ORG Fri Jan 28 09:54:50 2005 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6BAAD16A518 for ; Fri, 28 Jan 2005 09:54:49 +0000 (GMT) Received: from smtp.des.no (flood.des.no [217.116.83.31]) by mx1.FreeBSD.org (Postfix) with ESMTP id CBF6D43D1D for ; Fri, 28 Jan 2005 09:54:48 +0000 (GMT) (envelope-from des@des.no) Received: by smtp.des.no (Pony Express, from userid 666) id 8E164530C; Fri, 28 Jan 2005 10:54:47 +0100 (CET) Received: from dwp.des.no (des.no [80.203.228.37]) by smtp.des.no (Pony Express) with ESMTP id C23135308; Fri, 28 Jan 2005 10:54:24 +0100 (CET) Received: by dwp.des.no (Postfix, from userid 2602) id 84861B869; Fri, 28 Jan 2005 10:54:24 +0100 (CET) To: Jacques Fourie References: <41F90140.3020705@trispen.com> <20050127160914.GA72454@VARK.MIT.EDU> From: des@des.no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=) Date: Fri, 28 Jan 2005 10:54:24 +0100 In-Reply-To: <20050127160914.GA72454@VARK.MIT.EDU> (David Schultz's message of "Thu, 27 Jan 2005 11:09:14 -0500") Message-ID: User-Agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Spam-Checker-Version: SpamAssassin 3.0.1 (2004-10-22) on flood.des.no X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=AWL,FORGED_RCVD_HELO autolearn=disabled version=3.0.1 cc: freebsd-hackers@FreeBSD.ORG Subject: Re: kernel vm question X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Jan 2005 09:54:50 -0000 David Schultz writes: > On Thu, Jan 27, 2005, Jacques Fourie wrote: > > unsigned char *p =3D NULL; > > unsigned char v =3D 0x55; > > /* ... */ > > p =3D (unsigned char *)ip_output; > > /* ... */ > > v =3D p[0]; > > p[0] =3D v; > > /* ... */ > When the line is there, the compiler is probably smart enough to > realize that 'x=3Dy; y=3Dx' is (usually) a no-op, so it optimizes away > both statements. Wrong. The compiler is free to optimize away the second statement provided that neither x nor y is declared volatile, but it cannot optimize away the first statement. DES --=20 Dag-Erling Sm=F8rgrav - des@des.no