Operator declaration
Richard (Rikki) Andrew Cattermole
richard at cattermole.co.nz
Sat Apr 25 10:12:31 UTC 2026
On 25/04/2026 9:00 AM, Meta wrote:
> I'm not an expert in modern CPU architecture, but I'm extremely
> skeptical of this claim. I doubt the difference is even noticeable with
> modern compiler optimization techniques.
Its mostly 1 cycle these days, but 2 cycles for 64bit integer ops is
still in common use. However that only covers the big $$$ cpu's, who
knows about MCU's or cheaper processors.
> * Promotion helps avoid accidental overflow which is more common with
> small integer types.
>
> I got 3 words for you: Value Range Propagation. We pay for it, so we
> should use it wherever possible.
Yeah if you write code like the following, it'll use data flow analysis
to use the smaller bitwidth (tested):
```d
int calc(int arg) {
assert(arg <= 10);
long value = 1 + (arg * 3);
return cast(int)value;
}
```
After 30 years Walter's arguments surrounding 32bit int's is only now
starting to wane, give it another 30 and yeah then it should be gone.
But until then I'm listening to Walter as it has the widest applicability.
More information about the Digitalmars-d-learn
mailing list