]> git.ipfire.org Git - thirdparty/gcc.git/commit
defaults.h: Default MAX_FIXED_MODE_SIZE to MAX (BITS_PER_WORD * 2, 64)
authorHans-Peter Nilsson <hp@bitrange.com>
Wed, 16 Jul 2025 03:29:05 +0000 (05:29 +0200)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Mon, 4 Aug 2025 16:02:50 +0000 (18:02 +0200)
commitac421ac33ed64619f79b8f3c4edb4fb30b1640c5
treefa60448898a0ad26c79354a8d6d0ede5283ba13c
parent490c2c885ee5de1659d8339ea6bedd908acfacea
defaults.h: Default MAX_FIXED_MODE_SIZE to MAX (BITS_PER_WORD * 2, 64)

The old GET_MODE_SIZE (DImode) (i.e. 64) made sense before
64-bitters.  Now the default is just a trap: when using the
default 64, things like TImode (128 bits) still mostly works,
but general corner cases related to computing large-size objects
numbers, like (1 << 64)/8 break, as exposed by
gcc.dg/pr105094.c.

So, keep the floor at 64 for 32-bitters and smaller targets, but
for larger targets, make it 2 * BITS_PER_WORD.  Also, express it
more directly with focus on BITS_PER_WORD, not the size of a
mode.  Add "by GCC internally" in an attempt to tell that this
is when gcc cooks something up, not when plain input uses a type
with such a mode.

* defaults.h (MAX_FIXED_MODE_SIZE): Default to 2 * BITS_PER_WORD
for larger-than-32-bitters.
* doc/tm.texi.in (MAX_FIXED_MODE_SIZE): Adjust accordingly.  Tweak
wording.
* doc/tm.texi: Regenerate.
gcc/defaults.h
gcc/doc/tm.texi
gcc/doc/tm.texi.in