Если речь идёт о компиляции Unix для машин с 64К ОЗУ, где борьба идёт за каждый байт - имеющиеся (для PDP-11) компиляторы C практически непригодны, потому что оптимизируют код очень слабо. Главная (по количеству бездарно потраченных компилятором байтов) проблема - наличие у функций прологов и эпилогов, а также использование стека для передачи параметров и создания локальных переменных. LLVM позволяет выделить пул временных регистров ( например для PDP11 - R0, R1, R2 ) и тогда первые три параметра вызова функции будут передаваться не в стеке, а в этих регистрах. Если же параметров у функции меньше (или их вообще нет) - свободные временные регистры будут автоматически использоваться для хранения локальных переменных. Когда исходник состоит из большого количества небольших функций с малым числом параметров - даже такая простенькая оптимизация сокращает объём генерируемого кода чуть ли не вдвое.
Проще говоря - есть реальный шанс сделать компилятор, который для базового ядра Unix уменьшит объём генерируемого кода в разы (по сравнению с изначальным).





Ответить с цитированием