[Info-vax] problem with 64-bit pointers in C

John Reagan xyzzy1959 at gmail.com
Mon Feb 12 17:05:34 EST 2018


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)



More information about the Info-vax mailing list