unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* Should we compile Guile with -fno-strict-aliasing?
@ 2012-01-27 19:02 Mark H Weaver
  2012-01-27 21:02 ` Ludovic Courtès
  2012-01-29 21:02 ` Andy Wingo
  0 siblings, 2 replies; 5+ messages in thread
From: Mark H Weaver @ 2012-01-27 19:02 UTC (permalink / raw)
  To: guile-devel

Hello all,

For many years, Linux (the kernel) has used the -fno-strict-aliasing
compiler option to disable certain tricky optimizations that depend upon
a very strict reading of the aliasing rules of modern C standards.  It
turns out that it's quite difficult to write robust code in the presence
of those optimizations.  I have not researched this issue carefully, but
it seems that several Guile bugs may be related to this problem.

Perhaps we should simply add this compiler flag where its available, at
least in the short term.  What do you think?

Here are some links for more info:

http://lkml.org/lkml/2003/2/26/158
http://mail.python.org/pipermail/python-dev/2003-July/036898.html
http://en.wikipedia.org/wiki/Aliasing_(computing)#Conflicts_with_optimization

     Mark



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Should we compile Guile with -fno-strict-aliasing?
  2012-01-27 19:02 Should we compile Guile with -fno-strict-aliasing? Mark H Weaver
@ 2012-01-27 21:02 ` Ludovic Courtès
  2012-01-29 21:21   ` Ludovic Courtès
  2012-01-29 21:02 ` Andy Wingo
  1 sibling, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2012-01-27 21:02 UTC (permalink / raw)
  To: guile-devel

Hi Mark,

Mark H Weaver <mhw@netris.org> skribis:

> Perhaps we should simply add this compiler flag where its available, at
> least in the short term.  What do you think?

I’ve been thinking about that too, because on some platforms GCC emits
may-break-strict-aliasing-rules warnings, notably on x86_64-freebsd8.2
with GCC 4.2.1:

--8<---------------cut here---------------start------------->8---
vm.c: In function 'vm_reinstate_partial_continuation':
vm.c:281: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from vm-engine.c:127,
                 from vm.c:467:
vm-i-system.c: In function 'vm_regular_engine':
vm-i-system.c:49: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:52: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:53: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:79: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:212: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:225: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:418: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:430: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:445: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:465: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:487: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:528: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:537: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:546: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:556: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:566: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:575: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:923: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:994: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1043: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1073: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1089: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1121: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1131: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1195: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1218: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1241: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1281: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1332: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1427: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1446: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1457: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1470: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1472: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1480: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1513: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1548: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1600: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1607: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1619: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1627: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1641: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1679: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1704: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1726: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1751: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1783: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from vm-engine.c:128,
                 from vm.c:467:
vm-i-scheme.c:192: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:203: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:599: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:624: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:626: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:629: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:692: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:809: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:859: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:861: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:863: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:865: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:867: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:869: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:871: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:873: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1018: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1018: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1020: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1020: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1022: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1022: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1024: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1024: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1026: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1026: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1028: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1028: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1030: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1030: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1119: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1121: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1123: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1125: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1128: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1134: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1139: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1141: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1143: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1145: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from vm-engine.c:129,
                 from vm.c:467:
vm-i-loader.c:65: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-loader.c:87: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-loader.c:99: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from vm-engine.c:127,
                 from vm.c:475:
vm-i-system.c: In function 'vm_debug_engine':
vm-i-system.c:49: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:52: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:53: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:79: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:212: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:225: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:418: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:430: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:445: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:465: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:487: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:528: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:537: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:546: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:556: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:566: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:575: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:923: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:994: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1043: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1073: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1089: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1121: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1131: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1195: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1218: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1241: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1281: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1325: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1332: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1367: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1427: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1446: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1457: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1470: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1472: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1480: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1513: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1548: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1600: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1607: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1619: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1627: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1641: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1679: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1704: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1726: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1751: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-system.c:1783: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from vm-engine.c:128,
                 from vm.c:475:
vm-i-scheme.c:192: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:203: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:599: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:624: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:626: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:629: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:692: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:809: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:859: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:861: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:863: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:865: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:867: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:869: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:871: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:873: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1018: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1018: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1020: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1020: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1022: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1022: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1024: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1024: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1026: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1026: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1028: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1028: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1030: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1030: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1119: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1121: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1123: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1125: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1128: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1134: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1139: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1141: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1143: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-scheme.c:1145: warning: dereferencing type-punned pointer will break strict-aliasing rules
In file included from vm-engine.c:129,
                 from vm.c:475:
vm-i-loader.c:65: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-loader.c:87: warning: dereferencing type-punned pointer will break strict-aliasing rules
vm-i-loader.c:99: warning: dereferencing type-punned pointer will break strict-aliasing rules
--8<---------------cut here---------------end--------------->8---

I’ve just tried on this platform and it seems to fix the threading
issues we were observing (though I won’t claim victory until Hydra
reproduces the success several times in a row ;-)).

It may well be that my recent COMPILER_BARRIER hack can just go away
with this.

I just committed the change.

Thank you!

Ludo’.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Should we compile Guile with -fno-strict-aliasing?
  2012-01-27 19:02 Should we compile Guile with -fno-strict-aliasing? Mark H Weaver
  2012-01-27 21:02 ` Ludovic Courtès
@ 2012-01-29 21:02 ` Andy Wingo
  2012-01-29 21:10   ` Ludovic Courtès
  1 sibling, 1 reply; 5+ messages in thread
From: Andy Wingo @ 2012-01-29 21:02 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: ludo, guile-devel

Hi!

On Fri 27 Jan 2012 20:02, Mark H Weaver <mhw@netris.org> writes:

> For many years, Linux (the kernel) has used the -fno-strict-aliasing
> compiler option to disable certain tricky optimizations that depend upon
> a very strict reading of the aliasing rules of modern C standards.  It
> turns out that it's quite difficult to write robust code in the presence
> of those optimizations.  I have not researched this issue carefully, but
> it seems that several Guile bugs may be related to this problem.
>
> Perhaps we should simply add this compiler flag where its available, at
> least in the short term.  What do you think?

So, we added it, for GCC; cool.  I was wondering though whether we might
be able to get by with something more limited, at least on GCC.  Have
you looked at __attribute__((__may_alias__))?  It does seem like a good
idea to add it to SCM, as we frequently alias SCM and scm_t_bits values
at the very least.  Also adding it to struct scm_vm_frame would also fix
the vm frame issue.

Dunno.  WDYT?

Regards,

Andy
-- 
http://wingolog.org/



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Should we compile Guile with -fno-strict-aliasing?
  2012-01-29 21:02 ` Andy Wingo
@ 2012-01-29 21:10   ` Ludovic Courtès
  0 siblings, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2012-01-29 21:10 UTC (permalink / raw)
  To: Andy Wingo; +Cc: Mark H Weaver, guile-devel

Hi!

Andy Wingo <wingo@pobox.com> skribis:

> On Fri 27 Jan 2012 20:02, Mark H Weaver <mhw@netris.org> writes:
>
>> For many years, Linux (the kernel) has used the -fno-strict-aliasing
>> compiler option to disable certain tricky optimizations that depend upon
>> a very strict reading of the aliasing rules of modern C standards.  It
>> turns out that it's quite difficult to write robust code in the presence
>> of those optimizations.  I have not researched this issue carefully, but
>> it seems that several Guile bugs may be related to this problem.
>>
>> Perhaps we should simply add this compiler flag where its available, at
>> least in the short term.  What do you think?
>
> So, we added it, for GCC; cool.  I was wondering though whether we might
> be able to get by with something more limited, at least on GCC.  Have
> you looked at __attribute__((__may_alias__))?  It does seem like a good
> idea to add it to SCM, as we frequently alias SCM and scm_t_bits values
> at the very least.

Yes, why not, but post-2.0.4 maybe?

> Also adding it to struct scm_vm_frame would also fix the vm frame
> issue.

I’d say “may”, or “might”, rather than “would”.  ;-)

Thanks,
Ludo’.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Should we compile Guile with -fno-strict-aliasing?
  2012-01-27 21:02 ` Ludovic Courtès
@ 2012-01-29 21:21   ` Ludovic Courtès
  0 siblings, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2012-01-29 21:21 UTC (permalink / raw)
  To: guile-devel

Hi!

ludo@gnu.org (Ludovic Courtès) skribis:

[...]

> I’ve just tried on this platform and it seems to fix the threading
> issues we were observing (though I won’t claim victory until Hydra
> reproduces the success several times in a row ;-)).

Well no, this one had nothing to do (see <http://bugs.gnu.org/10641>.)

> It may well be that my recent COMPILER_BARRIER hack can just go away
> with this.

I’ve verified and that asm volatile is not needed on sparc-linux-gnu and
hppa2.0-linux-gnu when compiling with -fno-strict-aliasing, so I’ve
reverted commit 2b264d7e4fb649955ade1814527b6eb6f34f4e18.

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-01-29 21:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-27 19:02 Should we compile Guile with -fno-strict-aliasing? Mark H Weaver
2012-01-27 21:02 ` Ludovic Courtès
2012-01-29 21:21   ` Ludovic Courtès
2012-01-29 21:02 ` Andy Wingo
2012-01-29 21:10   ` Ludovic Courtès

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).