Subject: Re: bug#63365: 30.0.50; GCC 13.1 breaks building Emacs with native-compilation

From: Arash Esbati <[email-masked]>
Date: Fri, 23 Jun 2023 14:50:51 +0200

Eli Zaretskii <[email-masked]> writes:

> This might mean that the problem happens when byte-compiling *.el
> files -- in the tarball all the *.elc files are already present.  What
> happens if you remove the *.elc files from the release tarball, and
> then try building it?

This is indeed the case: Removing the *.elc after unpacking the tarball
and running

  ./configure --with-native-compilation && make

doesn't build -- I will try ./configure --without-native-compilation
later.

> In a nutshell, it bloats the code (due to excessive inlining), with no
> real effect on speed.  The inner loops in Emacs are very large, and
> thus the techniques used by -O3 to speed up code (loop unrolling etc.)
> don't really work.  Moreover, they could make things worse because the
> larger loops might no longer fit into the L1 cache of the CPU.
>
> The -O3 is well suited to speed up relatively simple algorithms with
> tight loops.  Emacs has very few of those, in the places that matter
> for observable performance.

Thanks!  I will go with -O2 in future.

Best, Arash