June 01, 2021
> In my experience I have not bumped into this issue all that often, especially when allowing the compiler to use a specific machine description for the target (Working out exactly which target information most of this is due to is unfortunately quite painful as modern compilers are anything but simple when deciding what to do based on their nicely specified  machine description files)

Well sure. Arch mainly does it also due to the fact they generate asm for generic x86_64, but my point is rather saying that higher level of optimizations at a certain point comes with tradeoffs between space and speed and a lot of people compile always with -O3 thinking it is the one with best optimizations possible.

There's even some compilers with very specific optimizations for like loop unrolling or unsafe loop optimizations that are not in the common optimization flags.

-- 
Sincerely,
Luís Ferreira @ lsferreira.net



June 08, 2021

On Sunday, 30 May 2021 at 12:43:22 UTC, Abdulhaq wrote:

>

On Saturday, 29 May 2021 at 23:43:48 UTC, James Lu wrote:

>

On Saturday, 29 May 2021 at 23:36:34 UTC, Adam D. Ruppe wrote:

>

On Saturday, 29 May 2021 at 23:34:47 UTC, James Lu wrote:

>

If Zortech C++ and dmc++ are fast, why is dmd's asm slow? I thought they used the same machine code backend.

They were fast in 1988. Even in 1998.

But since then they've only gotten a little better, whereas the competition has gotten a LOT better.

That makes sense.

Why does DMD only have a -O flag, not a -O2?

The competition got heavier– slower compiles, too.

I wonder if it could be possible to get some CS PhD candidate to work on dmc++ to bring its backend up to modern standards.

Why stop at -O2? The languages of the future will go to -O11.

OK I was kidding, but this is interesting, from Steve Sinofsky of early Visual C++:

"While I wielded a great technology buzzsaw, I was also applying Microsoft’s perspective, not necessarily what Lotus was looking to accomplish or what reviewers would see. For example, my focus on shared code came straight from BillG as that was his hot button. The Lotus products clearly hadn’t focused on that at all. I thought they were “wrong” not simply different. This mismatch was something I had seen in the evaluations of Borland C++ versus Microsoft VC++. For example, Borland had a compiler optimization switch “/O” that was, basically, “make this code as fast as possible by enabling all the best optimizations.” To us compiler-heads at Microsoft, we thought of this as technical nonsense because each of the myriad potential optimizations meant something unique to the programmer (literally the entire alphabet of command line switches), but it had captivated reviewers. I came to champion (and push) the addition of “/O” for our complier and it turned out that it worked with reviewers. When Ami Pro, the Lotus SmartSuite word processor, demonstrated its new ease-of-use features under the umbrella of working together, it similarly captured the attention of reviewers, even if deep down in technical details it didn’t make much sense."

I'm really enjoying his blog ATM, a history of his time at MS, recommended:

https://hardcoresoftware.learningbyshipping.com/p/031-synchronizing-windows-and-office

1 2
Next ›   Last »