Виртуальные Л/5 регистры

Виртуальные Л/5 регистры назначаются для текущего зна чения объекта (переменной промежуточного результата). Если значение переменной изменено, то для этого нового значения назначается новый виртуальный A/S регистр. Если при генера ции псевдокоманд для переменной уже был назначен виртуаль ный регистр и ее значение не изменилось, то команда загрузки не порождается. Предполагается, что будет использован уже распределенный виртуальный регистр.

Последнее, однако, справедливо лишь для определенных интервалов, которые порождаются в процессе генерации. Пере становка команд на слишком большое расстояние приводит к увеличению времени жизни виртуальных регистров. Это, в свою очередь, может затруднить их распределение на основные A/S регистры и на резервированные В/Т регистры для промежуточ ных результатов. В конечном счете, при их нехватке могут воз никнуть команды обмена с памятью, которых желательно из бежать. Однако, перестановки удобнее выполнять на виртуаль ных регистрах.

В связи с этим генератор псевдокода оперирует не «бесконечным» множеством виртуальных регистров, а работает лишь с некоторым конечным их числом. Размер этого «пула» виртуальных регистров определяется как число основных A/S регистров плюс число резервированных промежуточных В/Т регистров.

Метки: ,

Связанные записи