Домен
Компиляторы и языки
Профиль навыка
LLVM: IR, passes, backend code generation, Clang, MLIR
Ролей
2
где встречается этот навык
Грейдов
5
сформированная дорожка роста
Обязательных требований
5
ещё 5 — необязательные
Компиляторы и языки
Инструменты компиляторов
17.03.2026
Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.
Таблица показывает, как меняется глубина владения навыком от Junior до Principal.
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Знает архитектуру LLVM: frontend, IR, backend, и роль каждого компонента. Понимает структуру LLVM IR и базовые инструкции. Умеет компилировать C через clang и изучать сгенерированный IR. |
| Systems Programmer (C/C++) | Знакомится с LLVM framework: понимает архитектуру (frontend, IR, backend). Изучает LLVM IR на простых примерах, собирает проект с Clang под руководством наставника. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Пишет LLVM Analysis и Transform passes на C++ API. Генерирует LLVM IR программно для простых конструкций. Использует opt и llvm-dis для анализа и отладки pipeline. |
| Systems Programmer (C/C++) | Работает с LLVM: пишет простые LLVM passes для анализа кода, использует Clang sanitizers, понимает opt pipeline. Применяет LLVM для генерации кода из custom DSL. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Разрабатывает custom LLVM backend или target lowering для нестандартной архитектуры. Оптимизирует LLVM pipeline для специфических workload. Пишет target-специфичные instruction selection patterns. |
| Systems Programmer (C/C++) | Проектирует custom LLVM passes для оптимизации системного кода. Разрабатывает backend для нового target, интегрирует custom analysis passes в CI для автоматического поиска багов. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Руководит интеграцией LLVM в компиляторный проект команды. Принимает архитектурные решения о версии LLVM и custom passes стратегии. Оценивает trade-offs LLVM vs QBE vs MLIR. |
| Systems Programmer (C/C++) | Определяет стратегию использования LLVM в системной разработке. Формирует custom toolchain на базе LLVM/Clang, управляет разработкой language tools и static analyzers. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Определяет стратегию использования LLVM/MLIR для всей компиляторной платформы. Координирует вклад в upstream LLVM community. Исследует применение MLIR для domain-specific оптимизаций. |
| Systems Programmer (C/C++) | Формирует enterprise LLVM стратегию для организации. Определяет подходы к custom compiler infrastructure, менторит архитекторов по LLVM backend development и language tooling. |