Содержание
- 2. Удаление мёртвого кода В теории компиляторов удалением мёртвого кода называется оптимизация, удаляющая мёртвый код. Мёртвым кодом
- 3. Примеры мёртвого кода Переменные, значения которых в дальнейшем в программе не используются. Данная оптимизация имеет эффект
- 4. Преимущества 1) Уменьшение: размера IR программы времени работы программы 2) Упрощение кода для дальнейших оптимизаций
- 5. DCE & LLVM В LLVM технология DCE реализована на основе алгоритма Mark & Sweep. Алгоритм выполняется
- 6. Mark & Sweep Фаза расставления меток В первой фазе сборщик мусора находит и помечает все достижимые
- 7. Объекты, к которым программа может обратиться напрямую, называются корнями. Корни – это локальные переменные на стеке
- 8. Mark & Sweep Фаза развертки Во второй фазе выполняется обход всех объектов в куче и освобождение
- 9. Устранение мертвого кода в LLVM Объекты, подлежащие удалению: AllocaInst – выделение памяти в стеке; LoadInst –
- 10. Устранение мертвого кода в LLVM Объекты, не подлежащие удалению: ReturnInst – возвращает значение из функции; SwitchInst
- 12. Скачать презентацию