# compiler-optimizations-deep

Разбирает причины неудачной автовекторизации, сброса регистров на стек и настраивает профильную оптимизацию PGO или BOLT при сборке проектов на C и C++.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 311 установок · ★ 267
- Автор: mohitmishra786
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/mohitmishra786/low-level-dev-skills/tree/HEAD/skills/compiler-internals/compiler-optimizations-deep/SKILL.md
- Обновлён: 2026-06-27
- HTML: https://affpapa.org/nevibecode/skills/compiler-optimizations-deep

## Что делает

Скилл объясняет этапы работы компилятора глубже стандартных флагов `-O2` и `-O3`. Он сопоставляет стадии LLVM IR и GCC GIMPLE: вынос инвариантов цикла (LICM), инлайнинг, выбор инструкций и жадное распределение регистров. Агент помогает разобрать вывод `clang -Rpass-missed=loop-vectorize`, когда цикл не векторизуется из-за неизвестного числа итераций или невыровненных указателей.

Для двухэтапной сборки скилл даёт последовательность команд сбора профиля через `llvm-profdata` и оптимизации бинарника утилитой BOLT после линковки. Для работы BOLT бинарный файл нельзя очищать от отладочных символов, а линкер обязан сохранить релокации с помощью флага `-Wl,--emit-relocs`. Без этого утилита завершится аварийно.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill compiler-optimizations-deep -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/compiler-optimizations-deep/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/compiler-optimizations-deep/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill compiler-optimizations-deep -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/compiler-optimizations-deep/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill compiler-optimizations-deep -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/compiler-optimizations-deep/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install mohitmishra786/low-level-dev-skills compiler-optimizations-deep
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/compiler-optimizations-deep/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill compiler-optimizations-deep -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/mohitmishra786/low-level-dev-skills --path skills/compiler-internals/compiler-optimizations-deep
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/compiler-optimizations-deep/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add mohitmishra786/low-level-dev-skills --skill compiler-optimizations-deep -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/mohitmishra786/low-level-dev-skills/tree/HEAD/skills/compiler-internals/compiler-optimizations-deep/SKILL.md

## Когда брать
- разобрать диагностику Clang при срыве автовекторизации цикла
- снизить регистровое давление и убрать лишние сбросы переменных на стек
- настроить двухэтапную сборку с профильной оптимизацией Clang PGO
- оптимизировать размещение кода в бинарнике утилитой BOLT

## Примеры запросов агенту
- /compiler-optimizations-deep Почему LLVM не может векторизовать цикл редукции в `foo.c`?
- /compiler-optimizations-deep Как уменьшить spilling регистров в горячей функции?
- /compiler-optimizations-deep Настрой шаги компиляции PGO и BOLT для Clang

## Похожие
- [migrate-to-rust](https://affpapa.org/nevibecode/skills/migrate-to-rust.md) — скилл · 538 установок
- [dwarf-expert](https://affpapa.org/nevibecode/skills/dwarf-expert.md) — скилл · 5200 установок
- [check-compiler-errors](https://affpapa.org/nevibecode/skills/check-compiler-errors.md) — скилл · 2300 установок
- [reference-compiler-cli](https://affpapa.org/nevibecode/skills/reference-compiler-cli.md) — скилл · 909 установок
- [Arm MCP Server](https://affpapa.org/nevibecode/mcp/arm-mcp-server.md) — MCP-сервер · ★ 95
- [create-slack-app](https://affpapa.org/nevibecode/skills/create-slack-app.md) — скилл · 446 установок

Из того же набора: [mohitmishra786/low-level-dev-skills](https://affpapa.org/nevibecode/by/mohitmishra786/low-level-dev-skills.md) — 95 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
