On Fri, 15 Jun 2012, Mike Stump wrote:

> Yes, but why abstract the host?  HOST_NARROW_INT is a nice way to 

HOST_WIDE_INT is an abstraction about the *target*; the target determines 
the required properties.  The salient properties include:

* At least as wide as target address space.

* Constants for the target can be represented in at most two 
HOST_WIDE_INT.  (This one is why some 32-bit targets require 64-bit 
HOST_WIDE_INT.)

I describe at 
<https://docs.google.com/document/pub?id=10LO8y0YhjlKHya_PKM3jEGrJu0rllv-Nc9qP5LXqH_I>
 
what I think are and are not appropriate uses of HOST_WIDE_INT.  Yes, 
target_int / target_uint might be better names for this type as I think it 
should be used.

Even if "long long" has the required properties, use of a type name such 
as target_int serves as documentation for the human reader about the 
intent of an entity in GCC - that it is an integer or size existing in 
some way on the target - and code needs to address the human reader, not 
just the compiler compiling it.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to