Integer overflow and underflow semantics?
Tobias Müller via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jul 20 04:09:45 PDT 2014
"Marc Schütz" <schuetzm at gmx.net> wrote:
> On Saturday, 19 July 2014 at 19:49:24 UTC, Ola Fosheim Grøstad wrote:
>> On Saturday, 19 July 2014 at 08:34:39 UTC, Kagamin wrote:
>>> Can't it simply generate code as is? Seems wasteful to spend >> compilation time on this.
>>
>> Not if you want fast code, consider a template with:
>>
>> if (a.length+M < b.length+N) {}
>>
>> then you alias b = a in the template instantiation:
>>
>> if(a.length+M < a.length+N){}
>>
>> you want this reduced to:
>>
>> if (M<N){
>> }
>>
>> which can be resolved at compile time.
>
> Yes, but that is the optimizer's job. The front-end doesn't need to spend
> time on it, if the back-end then anyway does the same optimization again.
I don't think anyone has said that the frontend does that.
But the language semantics forbid such optimizations if overflow is defined
as wrapping.
If the optimizer respects that is a different chapter, as the experiment
with GDC shows.
Tobi
More information about the Digitalmars-d
mailing list