[Info-vax] problem with 64-bit pointers in C
yuhongbao_386 at hotmail.com
yuhongbao_386 at hotmail.com
Tue Feb 13 15:36:50 EST 2018
On Monday, February 12, 2018 at 2:05:37 PM UTC-8, John Reagan wrote:
> On Monday, February 12, 2018 at 4:46:19 PM UTC-5, Stephen Hoffman wrote:
>
> >
> > Worth mentioning... why? There were code-size increases going from
> > VAX to Alpha. From Alpha to i64, too. And it wouldn't surprise me to
> > see code size changes between Itanium and x86.
>
> Here's a purely unscientific, unsupported, non-commital, no promises, your mileage may vary, swag.
>
> I picked a C module from inside the mostly target-independent part of the Macro compiler itself.
>
> On Alpha, ~127,000 bytes of code, optimized
> On Itanium, ~250,000 bytes of code, optimized
> On x86, ~159,000 bytes of untested code, NOOPTIMIZE
>
> The code uses 32-bit pointers but there are lots of REX prefixes since LLVM is using the full x64-64 register set (16 64-bit general purpose registers). I'm not sure going to 64-pointers would make all that much difference in REX prefix count (it would increase the size of all the data structures with embedded pointers)
Good point. If you do need 64-bit values you might as well use the extra registers anyway. And I assumes that the 64-bit option was there even in Alpha.
More information about the Info-vax
mailing list