-current build failure

Konstantin Belousov kostikbel at gmail.com
Tue Jul 24 22:43:43 UTC 2012


On Tue, Jul 24, 2012 at 10:08:13PM +0100, David Chisnall wrote:
> On 23 Jul 2012, at 20:53, David Chisnall wrote:
> 
> > On 23 Jul 2012, at 20:18, Konstantin Belousov wrote:
> > 
> >> 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.
> > 
> > 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:
> > 
> > http://llvm.org/bugs/show_bug.cgi?id=13438
> 
> And fixed it in LLVM r160687.  Since it's a single-line change, we can probably pull it into our version.
> 
> dim: http://llvm.org/viewvc/llvm-project?view=rev&revision=160687

As kan rightfully notes, the assumption that &%fs:0 == *%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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20120724/6a55152a/attachment.pgp


More information about the freebsd-current mailing list