"Marc Schütz" <schue...@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