170 похожих чатов

А поясните тупому, как a может быть на регистре?

18 ответов

28 просмотров

Ну берёшь значение a со стека и пихаешь его в регистр проца, а на стеке удаляешь. Может у нас там Main корроткий, и мы знаем, что можно занять регистр спокойно.

Dmitriy-Bobrovskiy Автор вопроса
Ilya L
Ну берёшь значение a со стека и пихаешь его в реги...

Ну, окей, это оптимизация, соглашусь, такое может быть.

Если эскейп анализ показывает что переменные никуда не уходят наружу из метода, компилятор имеет право пихать ее куда угодно, даже если предполагается что обычно переменная в куче. Можно разбить класс/структуру на филды и распознать по регистрам Конкретно здесь компилятор мог и на регичтр не класть - все равно это никто не читает, а значит и создавать не обязательно

Dmitriy-Bobrovskiy Автор вопроса
Etki
Если эскейп анализ показывает что переменные никуд...

Гм. Ну, тут да. Тут согласен, но я рассматриваю worst-case обычно.

Alex Berezhnykh
Думаю, не мог. Вдруг в Add сайд-эффекты.

переменаая - просто адрес, даже если объект меняется в add, это не отменяет того, что переменную можно удалить со стека

Alex Berezhnykh
Думаю, не мог. Вдруг в Add сайд-эффекты.

Такую мелочь грех не заинлайнить (включая EnsureCapacity)

Ilya Chernoudov
переменаая - просто адрес, даже если объект меняет...

Это про то что если в Add был бы какой Console.WriteLine, то написанное мной про целиковый выброс кода было бы некорректно

Etki
screenshot Такую мелочь грех не заинлайнить (включая EnsureCa...

Вот не согласен. EnsureCapacity на холодном пути лежит и очень дорогой внутри, так что нет. А вот остальное можно и заинлайнить.

Dmitriy-Bobrovskiy Автор вопроса

Так это сайд-эффект же ж.

Dmitriy-Bobrovskiy Автор вопроса
Etki
А речь о чем-то другом?

Ну, просто в стандартных методах контейнеров странно их ожидать.🤷‍♂

Etki
screenshot Такую мелочь грех не заинлайнить (включая EnsureCa...

EnsureCapacity как раз не надо - это ж редкий кейс

Etki
screenshot Такую мелочь грех не заинлайнить (включая EnsureCa...

А потом ты читаешь кодген для throw и "да ну нахер, буду проституткой"

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта