YoVDO

C++ Function Multiversioning in Windows - Load-time Implementation Selection - Lecture

Offered By: CppCon via YouTube

Tags

C++ Courses Windows Courses CPU Architecture Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
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 Graphics
University 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