On 16 May 2016 at 21:35, Andrei Alexandrescu via Digitalmars-d <[email protected]> wrote: > On 5/16/16 7:33 AM, deadalnix wrote: >> >> Regardless of the compiler actually doing it or not, the argument that >> extra precision is a problem is self defeating. > > > I agree that this whole "we need less precision" argument would be difficult > to accept. > >> I don't think argument >> for speed have been raised so far. > > This may be the best angle in this discussion. For all I can tell 80 bit is > slow as molasses and on the road to getting slower. Isn't that enough of an > argument to move away from it?
It really has though! At Remedy, the first thing we noticed when compiling code with DMD is that our float code produced x87 ops, and with the x64 calling convention (floats in SSE regs), this means pushing every function argument to the stack, loading them into x87 regs, doing the work (slowly), pushing them back, and popping them into a return reg. The codegen is insanely long and inefficient. The only reason it wasn't a critical blocker was because of the relative small level of use of D, and that it wasn't in any time-critical path. If Ethan and Remedy want to expand their use of D, the compiler CAN NOT emit x87 code. It's just a matter of time before a loop is in a hot path.
