Нет никакого хорошего примера использования регистра при использовании современных компиляторов (чтение: последние 15 + годы), потому что это почти никогда не приносит пользы и может сделать некоторых плохо. При использовании регистра Вы говорите компилятору, что "Я знаю, как оптимизировать мой код лучше, чем Вы делаете", который почти никогда не имеет место. Одна из трех вещей может произойти при использовании регистра:
, Даже если один компилятор производит лучший код при использовании регистра нет никакой причины полагать, что другой сделает то же. Если у Вас есть некоторый критический код, что компилятор не оптимизирует достаточно хорошо Ваш лучший выбор, должен, вероятно, использовать ассемблер для той части так или иначе, но конечно сделать соответствующее профилирование, чтобы проверить, что сгенерированный код является действительно проблемой сначала.
В целом я соглашаюсь с Robert, но как любое хорошее правило у этого есть исключения также.
, Если Вы работающий над очень встроенной системой Вы могли бы знать лучше, чем компилятор, как оптимизировать код для Ваше определенное приложение на Вашей определенной аппаратной архитектуре .
, Но в 99% случаев объяснение Roberts, хорошее для встроенного слова также.
Другой общий падеж при реализации интерпретаторов низкого уровня. Хранение некоторого состояния в регистрах, например, указателя вершины стека виртуальной машины, может значительно уменьшить доступ к памяти и ускорить Вас код.
См. vmgen — генератор эффективных интерпретаторов виртуальной машины для примера оптимизации (5.2 Вершин кэширования стека).