Size: a a a

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

2019 October 16

lp

lil pep in WebAssembly — русскоговорящее сообщество
если больше чем один макрос использует ватт - сам интерпретатор амортизируешь
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
интерпретатора - достаточно. Логики там обычно не много. Если оно в сто раз медленее чем натив все равно это быстрее чем компиляция прок макроса
источник

AF

Alexey F. in WebAssembly — русскоговорящее сообщество
другой вариант - интерпретировать раст.. https://github.com/solson/miri
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Именно. Это должно решаться на уровне HIR или MIR где можно добавить мемоизации для ветвей или не добавлять если там DAG-based какой нибудь. А прикручивание wasm интерпертаторы выглядит как какой то костыль если честно
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
это хороший поинт, правда я не в курсе подводных камней
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
HIR слишком высокоуровневый для таких вещей, MIR как раз. Про мемезацию ветвей я не совсем представляю
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
но в любом случае watt  хорошая возможность посмотреть результаты до реализации в карге
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
HIR слишком высокоуровневый для таких вещей, MIR как раз. Про мемезацию ветвей я не совсем представляю
> мемезацию ветвей я не совсем представляю

Ну это скорее как дополнительный шаг, я просто слышал что у Rust этого нет, от того компиляция и пробразования в MIR очень долгие
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
+ интерпретация. ее тоже можно мемоизировать (вернее ее результат)
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
очень плохо себе представляю как мемоизировать васм или мир
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
(без гигантского потребления памяти)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
очень плохо себе представляю как мемоизировать васм или мир
Ну вот Halide как то справляется:
https://github.com/halide/Halide/blob/master/src/Memoization.h
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
(без гигантского потребления памяти)
LRU не?
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
интересно, я не знаком. Их IR регистровая или стековая машина?
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
интересно, я не знаком. Их IR регистровая или стековая машина?
В смысле? Это обчно LIR регистровый или стековый. Обычный IR (который милвар или HIR) это CFG + SSA или DFG / CFG / DAG и прочие комбинации графов с SSA и без
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Там еще полихедральныая модель может использоваться
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
ну чую ща начнеться

SSA по вашему не регистровый?)) но ладно мы это как то отдалились
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
кстати Polly что в LLVM - это говно
источник

lp

lil pep in WebAssembly — русскоговорящее сообщество
ладно я удаляюсь, у меня тут пол третьего )
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
lil pep
ну чую ща начнеться

SSA по вашему не регистровый?)) но ладно мы это как то отдалились
Ну SSA может быть и не над регистрами) Например есть mSSA (memory SSA)
источник