> Так вот, оптимизация бывает разной. По скорости, по надежности, по простотеСпасибо, кэп.
> А также в оптимизации значение имеет суммарный конечный результат,
> а если одни параметры оптимизируются в ущерб других - зачем такая
> оптимизация нужна.
Открыть секрет? Оптимизация по размеру делается в ущерб производительности почти всегда. И наоборот. Причем именно эти крайности имеют место быть в основном.
> Видите ли, в нормальных ОСях (и даже не только в Юниксах) принято
> доверять ядру, и не доверять прикладному коду.
Видите ли, к точке сохранения и использования регистров это имеет отношения ровно 0.00.
> Поэтому стековая передача параметров здесь явно выигрывает.
В чём? Примеры в студию.
> Само собой речь шла об указателях на структуры. Вот и считайте, сколько
> раз вы будете переписывать эти указатели, значения которых не меняются
Нисколько. Перезагрузка указателя на фиксированную структуру обычно вообще делается с помощью MOV r,imm, на динамически распределенную - MOV r,mem, если же структура вся помещается на стеке - никакой перезагрузки не нужно.
> когда не известно, сколько регистров будет использовано в каждом вызове в ядро
Такое и может быть только в ваших системах. У нормальных систем есть ABI, и оптимизаторы о нем знают.
> Учтите также в современных программах количество глобальных структур (которые используются для всякого там менеджмента памяти и сборщиков мусора
Опа, iZEN, залогиньтесь.
> "Хитрости" с регистрами в современных процах безусловно существуют, только вы почему-то
> считаете, что при этом никто не додумался сделать "хитрости" и для
> стека тоже.
Дык пруф где?
> Стековая передача параметров дает простор для большого количества других оптимизаций (и
> не только по скорости, см. начало).
Конечно дает. Особенно при инклюзивных кешах, когда любая запись в стек пролетает несколько уровней кеша, и очередь встает колом из-за ожидания доступа в память.