Hi!

On Fri, May 06, 2022 at 02:09:21PM +0000, Matthias Gehre via Gcc wrote:
> We would like to add support for division/modulo on large arbitrary precision 
> integers to libgcc/compiler-rt
> as required by C23's _BitInt type [0].
> 
> >From what I know, gcc doesn't yet support C23 _BitInt, but we would still
> like to ensure that libgcc and compiler-rt can stay compatible in the future.

Why?  Why would that be useful at all?

libgcc is an implementation detail.  It is not meant to be used by
anything but GCC itself, and then only to implement things that aren't
implemented some other way (by target code typically).  The names of the
functions it implements are based on the GCC-internal RTL names, often
identical even.  Defining the libgcc names first is not only futile, but
also the wrong order.

Most functions in libgcc are a not-so-ideal-but-at-least-it-works
implementation that target maintainers who cannot be bothered to
implement this functionality more optimally can use.  Typically what you
really want is not a library routine at all!

As noted elsewhere (I forgot by whom, sorry) the target ABI will
probably have somemthing to say about the actual data representation,
so it is very counterproductive if we have something in libgcc that
does something else.


Segher

Reply via email to