On Wed, Aug 04, 2021 at 07:08:08PM +0200, Florian Weimer wrote:
> * Segher Boessenkool:
> 
> > On Wed, Aug 04, 2021 at 03:27:00PM +0100, Richard Earnshaw wrote:
> >> On 04/08/2021 14:40, Segher Boessenkool wrote:
> >> >On Wed, Aug 04, 2021 at 02:00:42PM +0100, Richard Earnshaw wrote:
> >> >>We don't want to have to resort to macros.  Not least because at some
> >> >>point we want to replace the content of arm_neon.h with a single #pragma
> >> >>directive to remove all the parsing of the header that's needed.  What's
> >> >>more, if we had a suitable pragma we'd stand a fighting chance of being
> >> >>able to extend support to other languages as well that don't use the
> >> >>pre-processor, such as Fortran or Ada (not that that is on the cards
> >> >>right now).
> >> >
> >> >So how do you want to handle constants-that-are-not-yet-constant, say
> >> >before inlining?  And how do you want to deal with those possibly not
> >> >ever becoming constant, perhaps because you used a too low "n" in -On
> >> >(but there are very many random other causes)?  And, what *is* a
> >> >constant, anyway?  This is even more fuzzy if you consider those
> >> >other languages as well.
> >> >
> >> >(Does skipping parsing of some trivial header save so much time?  Huh!)
> >> 
> >> Trivial?  arm_neon.h is currently 20k lines of source.  What's more, it 
> >> has to support inline functions that might not be available when the 
> >> header is parsed, but might become available if the user subsequently 
> >> compiles a function with different attributes enabled.  It is very 
> >> definitely *NOT* trivial.
> >
> > Ha yes :-)  I just assumed without looking that it would be like other
> > architectures' intrinsics headers.  Whoops.
> 
> But isn't it?
> 
> $ echo '#include <x86intrin.h>' | gcc -E - | wc -l
> 41045

$ echo '#include <altivec.h>' | gcc -E - -maltivec | wc -l
9

Most of this file (774 lines) is #define's, which take essentially no
time at all.  And none of the other archs I have looked at have big
headers either!


Segher

Reply via email to