В современных архитектурах VLIW (Very Long Instruction Word) роль компилятора становится критической, так как на него возлагается ответственность за параллелизм. dzen.ru
Некоторые аспекты роли компилятора:
- Планирование потока команд. www.cta.ru Компилятор планирует выполнение программы статически (до запуска), не ограничен временными и аппаратными ресурсами. www.cta.ru
- Генерация оптимального кода. www.cta.ru Компилятор располагает полной и достоверной информацией о регистрах процессора и генерирует код, в котором нет конфликтов между регистрами. www.cta.ru
- Контроль за загрузкой функциональных блоков. www.cta.ru Компилятор следит за загрузкой функциональных блоков и не запускает команды, в которых предполагается обращение к занятым функциональным блокам. www.cta.ru
- Угадывание направления ветви. en.wikipedia.org Компилятор использует эвристику или информацию профиля, чтобы угадать направление ветви и предварительно планировать операции. en.wikipedia.org
Это делает компилятор более сложным, но при этом упрощает аппаратное обеспечение. en.wikipedia.org www.geeksforgeeks.org