Timeline for answer to When did compilers start generating optimized code that runs faster than an average programmer's assembly code? by mcleod_ideafix
Current License: CC BY-SA 4.0
Post Revisions
6 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| May 4, 2023 at 0:43 | comment | added | don bright | you mean i'm not supposed to read the entire 12,900 page reference manual for ARM v8-A in order to program my apple M2? | |
| Sep 26, 2020 at 18:43 | comment | added | Single Malt | A good thing about this example is it does highlight the level of detail an assembly programmer may need to know for the Pentium. As well as the differences between the U and V pipes in terms of integer instructions other questions would be do you try to interleave simple and complex integer instructions to keep them both fed and is the SIU quicker than the CIU for instructions they can both handle? | |
| Sep 15, 2020 at 15:55 | comment | added | Cort Ammon | I like that this answer doesn't treat the compiler in a vacuum. As compilers were getting smarter, CPUs were getting more complex to program for. | |
| Sep 15, 2020 at 1:34 | comment | added | Mark | The specific features involved in the complexity were probably out-of-order processing and superscalar design. | |
| Sep 14, 2020 at 22:46 | comment | added | Peter Cordes | AVX didn't exist until after other compilers (like GCC) gained the ability to auto-vectorize. But yes, good point for MMX and SSE. Current ICC still has some auto-vectorization capabilities that current gcc and clang lack, e.g. loops like memchr where the trip count isn't known / calculable ahead of the first iteration. GCC / clang still can't vectorize search loops, but ICC can. | |
| Sep 13, 2020 at 22:40 | history | answered | mcleod_ideafix | CC BY-SA 4.0 |