[all-commits] [llvm/llvm-project] 6b1cf0: [BOLT] Add support for Linux kernel static keys ju...
Maksim Panchenko via All-commits
all-commits at lists.llvm.org
Thu Mar 21 14:05:42 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6b1cf0040059c407264d2609403c4fc090673167
https://github.com/llvm/llvm-project/commit/6b1cf0040059c407264d2609403c4fc090673167
Author: Maksim Panchenko <maks at fb.com>
Date: 2024-03-21 (Thu, 21 Mar 2024)
Changed paths:
M bolt/include/bolt/Core/MCPlus.h
M bolt/include/bolt/Core/MCPlusBuilder.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Core/BinaryFunction.cpp
M bolt/lib/Core/MCPlusBuilder.cpp
M bolt/lib/Passes/BinaryPasses.cpp
M bolt/lib/Rewrite/LinuxKernelRewriter.cpp
M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
A bolt/test/X86/linux-static-keys.s
Log Message:
-----------
[BOLT] Add support for Linux kernel static keys jump table (#86090)
Runtime code modification used by static keys is the most ubiquitous
self-modifying feature of the Linux kernel. The idea is to to eliminate
the condition check and associated conditional jump on a hot path if
that condition (based on a boolean value of a static key) does not
change often. Whenever they condition changes, the kernel runtime
modifies all code paths associated with that key flipping the code
between nop and (unconditional) jump.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list