Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It lacked SIMD instructions.




C compilers can emit SIMD instructions just fine and often have extensions to support writing it explicitly. Also few other languages have explicit support for them from the start and most have added them as some kind of extension later. So the idea that this is some fundamental computer architecture thing C got wrong seem pretty far-fetched. Support for multi-core processing would be a more plausible thing to look at, but even there it seems that C still does quite well.

Don't forget about branch prediction (GCC may have __builtin_expect, but that's not standard C).

The compiler usually can't do anything about branch prediction. Expect is more about keeping cold paths out of the cache.

Actually that was one of the problems with EPIC architectures, where compilers are expected to be the ones doing those kind of optimizations.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: