Explore the performance capabilities of C and C++ programming languages and discover when Assembly language becomes necessary for optimal code efficiency. Delve into how GCC and Clang compilers generate code for various C and C++ constructs and learn techniques to enhance code performance. Examine x86-64-specific code optimizations, understand how x86-64 executes code and interacts with memory, and investigate compiler optimizations and extensions. Compare the efficiency of x86-64 assembly to C in certain scenarios, and address challenges in multi-core system programming. Gain insights into Spectre mitigations in modern compilers and the applications of profiler-guided optimizations. This 46-minute conference talk, presented by Alexander Krizhanovsky at linux.conf.au 2022, offers a comprehensive look at advanced programming techniques with numerous microbenchmarks to illustrate key concepts.
Overview
Syllabus
"What C and C++ can do and when do you need Assembly?" - Alexander Krizhanovsky (LCA 2022 Online)
Taught by
linux.conf.au