C++ Function Multiversioning in Windows - Load-time Implementation Selection - Lecture
Offered By: CppCon via YouTube
Course Description
Overview
Explore a comprehensive conference talk from CppCon 2022 on C++ Function Multiversioning in Windows, presented by Joe Bialek and Pranav Kant. Delve into the challenges of writing efficient code for diverse machine types and learn about a feature that combines compiler and OS facilities to enable no-overhead selection of optimal function implementations. Discover how this approach allows for extremely fine-grained function specialization based on CPU architecture, model, and supported features without the overhead of indirect calls or jump tables. Follow the speakers as they walk through the feature's implementation in Visual C++ and Windows 11, comparing it to existing solutions like gcc function multiversioning. Gain insights into the implementation details that compilers and operating systems must consider, and witness a live demonstration of the feature in action.
Syllabus
Introduction
Problem Space
Indirect Calls
State Initialization
GCC IFUNK
iPhone Approach
Load Time Function Selection
Building Blocks
OS Capabilities
Binary Metadata
Binary Decision Diagram BDD
Other Building Blocks
Ordered Set of Criteria
How qualifiers work
Examples
Qualifiers
Ordered Map
Combine
Syntax
OS Support
Tool Chain Details
Compiler Modifications
Expressions
Const Expert
Dispatch Attributed Functions
Symbol Table
LTFS Map
Linker
Arm64 Direct Calls
Topological Bdd
Relocation Type
Thunk Page
Fixups
Thunks
HyperV Containers
Demo
Performance
Performance on Intel
Performance on ARM
Control Flowguard
Taught by
CppCon
Related Courses
Computer GraphicsUniversity of California, San Diego via edX Intro to Parallel Programming
Nvidia via Udacity Initiation à la programmation (en C++)
École Polytechnique Fédérale de Lausanne via Coursera C++ For C Programmers, Part A
University of California, Santa Cruz via Coursera Introduction à la programmation orientée objet (en C++)
École Polytechnique Fédérale de Lausanne via Coursera