|
Чем регулярнее система команд - тем проще компилятору оптимизировать. Если, например, только 1 выделенный аккумулятор - можно много извращаться с оптимизацией его использования. Если же есть куча равноправных регистров, то и беспокоиться нужно о меньшем. С помощью простых эвристик можно перебрать варианты компиляции гораздо глубже, найдя оптимальный код, до которого программист просто не дооптимизирует. Оптимизатор практически не может использовать сложные CISC команды с кучей ограничений - потому, что модель вычислений для оптимизатора получается слишком сложной. Оптимизатор просто не использует такие команды. Поэтому, если у нас CISC-процессор, программист может породить лучший код, используя особенности системы команд. В основном потому, что опытный программист может сам прочитать документацию по системе команд. Для рисковика же это преимущество человека как оптимизатора гораздо меньше.
Да, и просто нельзя сравнивать компиляцию С для 8- и 32-битников. Оптимизация арифметики многократной точности (с переносами между словами) - это отдельная задача.
E-mail: info@telesys.ru