Кусок из фидошной эхи (былые времена):Shaos wrote:а солид умеет юзать регистры проца как часто используемые переменные?Vasil Ivanov wrote:Солид, в плане генерации кода, на ступеньку выше будет всех сишных компиляторов,
имеющихся на данное время на 8-ми битках. Сравни асм-листинги после твоего Хайтек-Си и от Солида. Вот и тебе "пример простой, но..."
и вообще какой-нибудь компилятор сей для z80 это умеет делать?
======================================
в Hi-Tech C для PC есть
- глобальное распределение регистров и
- передача аргументов в регистрах
(этих фич нет в варианте для CPM)
MSX-C/SOLID-C: кроме того, что есть в Hi-Tech имеет:
- нерекурсивные ф-ции
- распределение регистров с помощью PUSH/POP
======================================
Кусок из доки Солид Си:
==============================================
Одной из целей разработки компилятора MSX-C было создание инструментального средства, которое позволяяет писать и саму операционную систему, и программное обеспечение для ЭВМ. Для достижения этой цели в кодогенератор введены различные дополнительные средства.Так, разработаны средства автоматического распределения регистров. Благодаря этим средствам, которые впервые внедрены в компиляторе для микро-ЭВМ, удалось существенно повысить эффективность объектного кода. В результате этих мероприятий стало возможным писать на высоко-уровневом языке, которым является Си, даже системы, работающие в условиях жестких ограничений по памяти и реальному масштабу времени. При этом почти полностью устранена необходимость программирования на Ассемблере.
==============================================
Уверен, что переменные не всегда будут попадать в регистры (только для самых простых случаев), обязательно будут переменные и в ячейках памяти. Регистров мало, а передавать нужно много чего и данный компилятор не настолько умен, чтобы удивить кодеров, пишущих на асме. Ессно с ручной оптимизацией все эти компиляторы все-равно не стоит сравнивать. Поэтому считаю, что для 8-ми биток самым оптимальным вариантом будет инструмент типа "C--", можно одновременно писать к примеру lzw-алгоритмы и boot-загрузчики
