Size: a a a

WebAssembly — русскоговорящее сообщество

2021 October 11

M

MaxGraey in WebAssembly — русскоговорящее сообщество
ну да. но видимо когда они начинали все это небыло еще stack switching предложения
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
источник

FS

Filipp Samoilov in WebAssembly — русскоговорящее сообщество
Добрый день! Помню было выступление, где чувак накидал интерпретатор wasm на питоне в прямом эфире и запустил астероиды, на расте написанные. По ключевым словам wasm python не находится. Кто-нибудь помнит с какой конференции это было?
источник

FS

Filipp Samoilov in WebAssembly — русскоговорящее сообщество
А прошу прощения, надо было дальше страницу результатов поиска пролистать
https://www.youtube.com/watch?v=r-A78RgMhZU
источник
2021 October 12

でゲソ in WebAssembly — русскоговорящее сообщество
надо банхаммер
источник
2021 October 13

SK

Slava Kuzmich in WebAssembly — русскоговорящее сообщество
В V8 завозят спекулятивные Wasm оптимизации https://chromium.googlesource.com/v8/v8/+/5d75bd1fdbb7886effe5a4fb2fc909cf0debf55b 🤔
источник

Constantine ʕ◔ϖ◔ʔ🦀... in WebAssembly — русскоговорящее сообщество
В каком смысле спекулятивные🤔
источник

SK

Slava Kuzmich in WebAssembly — русскоговорящее сообщество
Используя профиль, предсказывают какая статическая функция будет вызвана по ссылке и инлайнят этот вариант на месте вызова
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
В обычном смысле. Спекулятивный инлайнинг вызова по указателю. Очевидно, если указатель поменяют -- придётся деоптимизировать взад.
источник

SK

Slava Kuzmich in WebAssembly — русскоговорящее сообщество
Они пока не деоптимизируют, они оставляют вызов по ссылке под условием в конце
источник

AC

Alexander Chichigin in WebAssembly — русскоговорящее сообщество
А это не Liftoff для Turbofan оставляет? Второй потом не повыкидывает лишнее? И не будет деоптимизировать в случае Х?
источник

SK

Slava Kuzmich in WebAssembly — русскоговорящее сообщество
Как я понял - сейчас они один предсказывают один раз и дальше живут с этим решением вечно, оставляя в конце косвенный вызов. Возможно деоптимизацию сделают потом, когда будет готова инфраструктура.
источник

К

Константин in WebAssembly — русскоговорящее сообщество
они бы прошлые оптимизации пофиксили
источник

К

Константин in WebAssembly — русскоговорящее сообщество
которые сломали инлайн
источник
2021 October 14

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
@maxgraey я почитал повнимательнее, есть дальше функция которая считает сколько раз размотать
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
https://github.com/v8/v8/blob/master/src/compiler/loop-unrolling.h#L27
Должно получиться пять раз максимум.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
тут дело даже не в колличесве раз. А вот что размер зависит от вложенности:
https://github.com/v8/v8/blob/master/src/compiler/loop-unrolling.h#L31

И это никак не ограничено сверху
источник

PP

Petr Penzin in WebAssembly — русскоговорящее сообщество
В общем да, может быть очень много, т.к. на каждый уровень вложенности они добавляют по 50 инструкций. В функции из бага именно это и происходит?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Да, там глубина вложенности равна трем. Плюс ко всему тело цикло довольно внушительное:
https://github.com/ColinEberhardt/wasm-mandelbrot/blob/master/assemblyscript/mandelbrot.wat#L307
т е такой кейс вообще нельзя разворачивать
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Там где то как раз 40-42 инструкции, depth == 3. То есть размер выходит 160. И она его разматывает скорее всего дважды
источник