__intN patch 0/5: summary

DJ Delorie dj@redhat.com
Wed Aug 13 22:10:00 GMT 2014


The following five patches are the latest in my ongoing work to
replace the hard-coded __int128 type with a more flexible __int<N>
system that allows target-specific types that correspond to
partial-int modes.  Specifically, this will allow targets to have
pointers that aren't powers-of-two in size.  Tested on x86-64 with no
regressions and msp430-elf with a few where I couldn't figure out how
to fix the testsuite to properly detect the msp430's 20-bit pointer
size (but the msp430 results had a lot more new passes with my patches ;)

I'm pretty sure I've addressed everyone's concerns, and once again
I've manually split up the ChangeLog and patch into multiple posts for
the convenience of review....

__intN patch 1/5: convert-move optimization

	A standalone patch that allows targets to provide a converter
	(trunc/extend) between *any* two modes.  Needed for the msp430
	patch.

__intN patch 2/5: Fix assumptions about mode precisions

	Many places in gcc use TYPE_SIZE instead of TYPE_PRECISION.
	This patch set fixes many (I doubt I found *all* of them) such
	cases.

__intN patch 3/5: main __int128 -> __intN conversion.

	This is the main part of the patch.  Doesn't require the other
	patches for targets that only have power-of-two pointers.

__intN patch 4/5: testsuite updates

	Some of the tests had their own assumption about pointer sizes
	:-P

__intN patch 5/5: msp430-specific changes

	For completeness, this is the msp430-specific fixes and
	optimizations to fully support 20-bit pointers.



More information about the Gcc-patches mailing list