custom-allocators
Custom allocator skill for memory allocation strategies. Use when implementing…
Branch prediction and speculation skill for CPU security and performance. Use when explaining branch predictors, mispredict penalties, speculative execution, Spectre/Meltdown mitigations, or branchless patterns. Activates on queries about branch prediction, speculative
$ npx -y skills add mohitmishra786/low-level-dev-skills --skill branch-prediction-and-speculation --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/branch-prediction-and-speculationContext preview
The summary Claude sees to decide when to auto-load this skill.
Branch prediction and speculation skill for CPU security and performance. Use when explaining branch predictors, mispredict penalties, speculative execution, Spectre/Meltdown mitigations, or branchless patterns. Activates on queries about branch prediction, speculative
name: branch-prediction-and-speculation description: Branch prediction and speculation skill for CPU security and performance. Use when explaining branch predictors, mispredict penalties, speculative execution, Spectre/Meltdown mitigations, or branchless patterns. Activates on queries about branch prediction, speculative execution, Spectre, Meltdown, mispredict, or branchless code.
Explain how modern CPUs predict branches, execute speculatively, recover on mispredict, and why speculation created side channels (Spectre/Meltdown) — linking performance tuning with security-aware low-level coding.
Fetch sees conditional branch
├── Predict direction (taken / not-taken)
├── Speculatively execute predicted path
└── On resolve:
├── Correct → commit, ~0 penalty (deep pipelines still cost on mispredict)
└── Wrong → squash, refill from correct PC (10–20+ cycles typical)Patterns: backward branches often predicted taken (loops); forward not-taken.
/* Predictable — tight loop backward branch */
for (int i = 0; i < n; i++)
sum += a[i];
/* Unpredictable — data-dependent */
if (data[i] > threshold) /* hard to predict */
rare_path();Techniques: branchless `cmov`/select, lookup tables, sorting data to reduce branches, splitting hot/cold paths.
/* Branchless min (integer) */ int m = a < b ? a : b; /* compiler may lower to cmov */
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
if (unlikely(ptr == NULL))
return -EINVAL;Measure with `perf` — hints are not magic on modern predictors.
CPUs may execute instructions before branch outcome is known. If speculated path touches secret-dependent memory, cache state can leak (Spectre variant 1).
**Mitigations (high level):**
Meltdown (Intel): user load from kernel mapping — fixed by KPTI (separate page tables).
perf stat -e branches,branch-misses ./app
High `branch-misses` ratio → investigate hot branches.
/branch-prediction-and-speculation Make this comparison function constant-time against Spectre-style leakage
| Symptom | Cause | Fix | |---------|-------|-----| | Loop slower than expected | Mispredicted exit | Peel iterations; branchless tail | | `likely` no help | Predictor already good | Profile first | | Secret leak in crypto | Branches on secret bytes | Constant-time algorithms | | Mitigation regression | KPTI/retpoline overhead | Accept or isolate secrets | | "Branchless" slower | CMOV still executes both | Benchmark on target CPU |
A curated suite of AI agent skills for systems and low-level programming — C/C++, Rust, Zig, GPU, bare-metal firmware, Linux kernel/driver development, computer architecture, compiler internals, HPC, and more.
Repo: mohitmishra786/low-level-dev-skills
Custom allocator skill for memory allocation strategies. Use when implementing…
NUMA programming skill for multi-socket memory locality. Use when detecting NUMA topology,…
AF_XDP skill for high-performance XDP sockets. Use when creating AF_XDP sockets, configuring…
DPDK skill for userspace packet I/O. Use when initializing EAL, configuring PMD drivers,…
io_uring skill for Linux async I/O. Use when building high-performance servers with liburing,…
Bare-metal ADC and DAC skill. Use when configuring analog sampling, DMA-driven ADC,…