Size: a a a

Compiler Development

2020 December 18

PS

Pavel Samolysov in Compiler Development
Alexander Tchitchigin
Если приходится делать много double -> int преобразований?
Я на js не пишу, но наверное приходится делать много раз даже команду запилили. В Z-процессоры ibm что-то пилили для Java, но я так и не смог найти конкретику, кроме процессоров, выводимых в спец режим "выполняем только java"
источник

AK

Andrei Kurosh in Compiler Development
Alexander Tchitchigin
Если приходится делать много double -> int преобразований?
источник

AT

Alexander Tchitchigi... in Compiler Development
И? Я не очень в курсе, насколько часто в JS по факту используются целочисленные, а тем более битовые операции. Не думаю, что каждая целочисленная операция требует конверсии. Учитывая, что движки и так целочисленные хранят в виде целочисленных внутри.
источник

h

hazer_hazer in Compiler Development
Alexander Tchitchigin
И? Я не очень в курсе, насколько часто в JS по факту используются целочисленные, а тем более битовые операции. Не думаю, что каждая целочисленная операция требует конверсии. Учитывая, что движки и так целочисленные хранят в виде целочисленных внутри.
рил? там же NaN-boxing
источник

AT

Alexander Tchitchigi... in Compiler Development
hazer_hazer
рил? там же NaN-boxing
And?.. 😊
источник

h

hazer_hazer in Compiler Development
NaN-Boxing = всё—double
источник

AT

Alexander Tchitchigi... in Compiler Development
hazer_hazer
NaN-Boxing = всё—double
Я же написал "внутри". Почитайте про V8 немного. Остальные тоже так делают.
источник

DB

Dmitry Borisenkov in Compiler Development
Andrei Kurosh
эх! это тоже конечно интересно, но обратная сторона была бы интереснее :)
А зачем ускорять компиляторы? JITы разве что, но если скорость выполнения программ критична, то AOT будет лучше. Разве что супероптимизатор какой-нибудь на GPU может иметь какой-то практический смысл.
источник

VS

Victor Shamparov in Compiler Development
Dmitry Borisenkov
А зачем ускорять компиляторы? JITы разве что, но если скорость выполнения программ критична, то AOT будет лучше. Разве что супероптимизатор какой-нибудь на GPU может иметь какой-то практический смысл.
Ну есть иногда и проблема со скоростью компиляции. Нам тут недавно пожаловались на это.
источник

BD

Berkus Decker in Compiler Development
Alexander Tchitchigin
Компилятор же делает много pointer chasing и ветвлений — это вообще можно ускорить как-то лучше, чем уже делает CPU?
конечно, можно все возможные варианты исполнения прогонять параллельно с отрубанием тех которые не пригодились 😄
источник

AK

Andrei Kurosh in Compiler Development
Dmitry Borisenkov
А зачем ускорять компиляторы? JITы разве что, но если скорость выполнения программ критична, то AOT будет лучше. Разве что супероптимизатор какой-нибудь на GPU может иметь какой-то практический смысл.
представьте, сколько времени уходит на цикл "запустил - воспроизвел баг - поправил - перезапустил" на крупных проектах на C++
источник

DB

Dmitry Borisenkov in Compiler Development
Инкрементальная сборка не в помощь?
источник

BD

Berkus Decker in Compiler Development
Andrei Kurosh
представьте, сколько времени уходит на цикл "запустил - воспроизвел баг - поправил - перезапустил" на крупных проектах на C++
без модулей, без цмака, без нинзи - одними автотулсами и ужасным precompiled header-ом
источник

AK

Andrei Kurosh in Compiler Development
Dmitry Borisenkov
Инкрементальная сборка не в помощь?
ну, наверное, в помощь. я не знаю. вы хотите сказать, что компиляция как таковая впринципе уже настолько быстра, что ее некуда ускорять? )
источник

VS

Victor Shamparov in Compiler Development
Dmitry Borisenkov
Инкрементальная сборка не в помощь?
А если хочется ещё и полную мощь оптимизаций?
источник

VS

Victor Shamparov in Compiler Development
(там есть такие интересные режимы как -flto или -fwhole-program)
источник

VS

Victor Shamparov in Compiler Development
И профилирование
источник

BD

Berkus Decker in Compiler Development
Victor Shamparov
А если хочется ещё и полную мощь оптимизаций?
наверное инкрементальная сборка больше для быстрой итерации, а полная мощь оптимизации для финальной сборки? они немного противоречат друг другу
источник

h

hazer_hazer in Compiler Development
Alexander Tchitchigin
Я же написал "внутри". Почитайте про V8 немного. Остальные тоже так делают.
ну. внутри то да. но разве перед этим не придется забокшеный double в int преобразовать?
источник

DB

Dmitry Borisenkov in Compiler Development
Andrei Kurosh
ну, наверное, в помощь. я не знаю. вы хотите сказать, что компиляция как таковая впринципе уже настолько быстра, что ее некуда ускорять? )
Я хочу сказать, что кмк на скорость сборки влияет куда больше факторов к компилятору умеющих косвенное отношение: система сборки, дизайн языка и проч. И вероятно практичнее фокусироваться на них чем пытаться пускать компилятор на условном GPU.
источник