int opEquals(Object), and other legacy ints
Walter Bright
newshound at digitalmars.com
Fri Jul 28 17:19:50 PDT 2006
Bruno Medeiros wrote:
> But the question remains, is it then less efficient to return a byte
> than a int?
Yes. It's also less efficient to constrain the results to 0 or 1.
> Why?
Consider:
a = 0x1000;
b = 0x2000;
Now convert (a == b) into a bool. If the result is an int, I can just do
(a - b), one instruction. Converting it to a byte, or to 1 or 0, takes more.
> And if so isn't there a way for the compiler to somehow
> optimize it?
The math is inevitable <g>.
> I find it a bit hard to believe that nowadays there isn't sufficient
> compiler and/or CPU technology to somehow make a bool(byte) return value
> as efficient as a int one. :/
I work with what the CPU makes available.
P.S. Inevitably, some will ask "who cares" about these small
efficiencies. The trouble is, these kinds of things often appear in
tight loops, where small inefficiencies get multiplied by millions.
More information about the Digitalmars-d-bugs
mailing list