Базовый блок

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Базовый блок (basic block, BB) — в программировании и теории компиляторов[1] — понятие, обозначающее последовательность инструкций или кода, имеющую одну точку входа (только первая инструкция в последовательности может быть назначением инструкции передачи управления), одну точку выхода и не содержащую инструкций передачи управления ранее точки выхода.

Таким образом, базовый блок — это последовательность инструкций, каждая из которых исполняется тогда и только тогда, когда исполняется первая инструкция из последовательности[2].

На начало базового блока может указывать одновременно несколько инструкций перехода, конец же блока — либо инструкция передачи управления (jump), либо инструкция, предшествующая переходу.

Базовые блоки являются основной единицей кода, над которой проводятся оптимизации компилятором. Также они являются вершинами (или узлами) в графе потока управления.

Примечания

[править | править код]
  1. «Control Flow Analysis» by Frances E. Allen. Дата обращения: 2 июня 2010. Архивировано 26 мая 2020 года.
  2. «Global Common Subexpression Elimination» by John Cocke