Структура Blk

Материал из Compilers Wiki
Версия от 08:43, 26 марта 2018; Alexander (обсуждение | вклад) (Новая страница: «Структура <code>Blk</code> - структура, хранящая информацию о базовом блоке. ===Основные поля:=== <…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Структура Blk - структура, хранящая информацию о базовом блоке.

Основные поля:[править]

Ins *ins - массив инструкций, входящих в этот блок.

uint nins - количество инструкций в блоке.

Blk *s1, Blk *s2 - указатели на последующие блоки (по ходу программы). Если s1 == null и s2 == null, то это значит, что блок находится около exit.

Blk *link - указатель на следующий блок (вычисленный, вовсе не обязательно следующий по ходу программы!). Если s1 == null && s2 == null, то совсем необязательно, что link == null.

Blk *pred - массив указателей на предшествующие (по ходу программы) блоки.

uint npred - количество указателей в массиве.

Blk *idom - указатель на непосредственный доминатор.