Size: a a a

Compiler Development

2020 February 17

G

Gradi in Compiler Development
А если добавить вызов какой-нибудь функции?
источник

IJ

Igor 🐱 Jirkov in Compiler Development
акварель на мету
почему это скомпилировалось без резервации ?
читай про red zone
источник

N[

Ned Ogl [0xA]🚜🏍 in Compiler Development
так он же зарезервировал rbp
источник

G

Gradi in Compiler Development
Gradi
А если добавить вызов какой-нибудь функции?
Или может даже пару if'ов типа
if (a == 1) {b = 2} else if (b == 2) {a = 1}
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Ned Ogl [0xA]🚜🏍
так он же зарезервировал rbp
речь о том, что нет sub rsp,  16
источник

IJ

Igor 🐱 Jirkov in Compiler Development
(ну и не забывайте, что с включенными оптимизациями весь исходный код превратится в суп: переменные будут аллоцироваться в регистрах, на стеке, как получится во славу производительности)
источник

А

Алексей in Compiler Development
а red zone зачем нужна?
источник

BD

Berkus Decker in Compiler Development
Алексей
а red zone зачем нужна?
чтобы перезапись стека отлавливать
источник

N[

Ned Ogl [0xA]🚜🏍 in Compiler Development
Igor 🐱 Jirkov
речь о том, что нет sub rsp,  16
а разве не вызывающий должен это делать?
источник

N[

Ned Ogl [0xA]🚜🏍 in Compiler Development
источник

IJ

Igor 🐱 Jirkov in Compiler Development
нет, аллоцирует локальные переменные вызываемый
источник

N[

Ned Ogl [0xA]🚜🏍 in Compiler Development
локальные - да
источник

BD

Berkus Decker in Compiler Development
это return value optimization
источник

а

акварель на мету in Compiler Development
Berkus Decker
это return value optimization
всм
источник

IJ

Igor 🐱 Jirkov in Compiler Development
алсо, cdecl это соглашение вызова для х32. Тут x64
источник

BD

Berkus Decker in Compiler Development
пишет сразу в фрейм вызывающей функции чтобы не копировать потом
источник

IJ

Igor 🐱 Jirkov in Compiler Development
Berkus Decker
это return value optimization
тут же ничего не возвращается, это не rvo
источник

BD

Berkus Decker in Compiler Development
Berkus Decker
пишет сразу в фрейм вызывающей функции чтобы не копировать потом
ну или просто вникуда в этом случае
источник

BD

Berkus Decker in Compiler Development
Igor 🐱 Jirkov
тут же ничего не возвращается, это не rvo
да, промахнулся, сорян
источник

BD

Berkus Decker in Compiler Development
в другую сторону
источник