On Thu, Feb 13, 2025 at 11:37:53AM +0100, Samuel Thibault wrote:
> Fabian Grünbichler, le jeu. 13 févr. 2025 10:39:00 +0100, a ecrit:
> > On Thu, Feb 13, 2025 at 09:24:02AM +0100, Samuel Thibault wrote:
> > > Fabian Grünbichler, le jeu. 13 févr. 2025 08:11:14 +0100, a ecrit:
> > > > A mixed approach (raising the baseline to allow LLVM and rustc to bump
> > > > their targets, but keeping GCC's default target and thus the majority of
> > > > packages at the current/old baseline and skip the rebuilds there) might
> > > > be possible, but also has potential perfomance or bugginess implications
> > > > because of switching back and forth between x87 and SSE floating
> > > > operations.
> > > 
> > > Which kind of bug? AIUI raising the baseline does not change the
> > > function call ABI, and within a function we use only one compiler?
> > 
> > I am not aware of any (and my quick check yesterday indicates that
> > mixing like that shouldn't be an issue) - but I also haven't done any
> > in-depth research that would make me confident in saying that I'd rule
> > them out ;) the potential performance issue was raised by doko on IRC.
> 
> When switching between functions, the floating-point operations are
> normally already over, so I don't think we would suffer very much? (if
> we were mixing within a function that would pose problem, sure).

yes.

> Also, I don't think we would very often switch between floating-point
> code compiled by llvm and gcc?

can't speak for the archive as a whole, but in the Rust world this is
quite common:

- C library compiled with gcc (usually)
- Rust code compiled with rustc (/LLVM) linked with such a library

but like you (and others) pointed out - this shouldn't normally be an
issue, as the interface and calling conventions are well-defined (else
none of that would work anyway ;))

Reply via email to