Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Jul 2012 01:43:38 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        David Chisnall <theraven@freebsd.org>
Cc:        Dimitry Andric <dim@freebsd.org>, freebsd-current@freebsd.org, Kim Culhan <w8hdkim@gmail.com>
Subject:   Re: -current build failure
Message-ID:  <20120724224338.GZ2676@deviant.kiev.zoral.com.ua>
In-Reply-To: <05368BFA-F5F6-49D4-BE63-7C9360E54F54@FreeBSD.org>
References:  <CAKZxVQV5xhFDN_WbTk-EMoQ18N8u1f4YhqKSJQFUzbX4NZxhUA@mail.gmail.com> <50097BF0.9010103@FreeBSD.org> <CAKZxVQXC6DuX5UTn3goNM9toxSVkP8-7bazTk%2Ba7yLEy7RsJYA@mail.gmail.com> <20120721211628.GE2676@deviant.kiev.zoral.com.ua> <6006581B-6B1C-4DFB-8662-3EB35869CA5F@FreeBSD.org> <20120722180119.GJ2676@deviant.kiev.zoral.com.ua> <20120723191856.GR2676@deviant.kiev.zoral.com.ua> <088BF877-50E6-42C5-98EF-DAB0FA52C348@freebsd.org> <05368BFA-F5F6-49D4-BE63-7C9360E54F54@FreeBSD.org>

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

--5KVt+DrA7aLR99aT
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jul 24, 2012 at 10:08:13PM +0100, David Chisnall wrote:
> On 23 Jul 2012, at 20:53, David Chisnall wrote:
>=20
> > On 23 Jul 2012, at 20:18, Konstantin Belousov wrote:
> >=20
> >> Longer description is that pc_curthread is offset 0 if %gs-based.
> >> The dereferenced pointer point to the struct thread, which contains
> >> td_proc pointer at offset 8. Instead, clang seems to dereference
> >> td_proc from offset 8 based on %gs, or something similar.
> >=20
> > This appears to be a bug in the LLVM X86 back end.  It is performing an=
 invalid fold of the two loads.  I have filed this bug:
> >=20
> > http://llvm.org/bugs/show_bug.cgi?id=3D13438
>=20
> And fixed it in LLVM r160687.  Since it's a single-line change, we can pr=
obably pull it into our version.
>=20
> dim: http://llvm.org/viewvc/llvm-project?view=3Drev&revision=3D160687

As kan rightfully notes, the assumption that &%fs:0 =3D=3D *%fs:0 holds for
userspace on amd64, and the same is true for %gs userspace on i386.
The change you committed to clang/llvm/whatever it called just breaks
useful optimization for FreeBSD.

Sigh.

--5KVt+DrA7aLR99aT
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iEYEARECAAYFAlAPJRoACgkQC3+MBN1Mb4hxxwCcCK6uhCN5jRilzaMof0VyylQp
FOQAn2QaqEwCjnLidV+rYhPdgMfoOGSA
=s2V6
-----END PGP SIGNATURE-----

--5KVt+DrA7aLR99aT--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120724224338.GZ2676>