Size: a a a

2020 June 12

λ

λoλdog in graalvm_ru
не, там ast
источник

OS

Oleg Shelajev in graalvm_ru
оно состоит из java объектов которые умеют выполнять то что делает вершина дерева
источник

ПФ

Паша Финкельштейн... in graalvm_ru
Ага, ок, AST
источник

ПФ

Паша Финкельштейн... in graalvm_ru
так
источник

OS

Oleg Shelajev in graalvm_ru
типа вся программа становится примерно node.execute(),node.execute(node.execute())
источник

ПФ

Паша Финкельштейн... in graalvm_ru
Очевидно что в случае bf у нас есть 8 (?) типов вершин
источник

OS

Oleg Shelajev in graalvm_ru
это просто джавовый код и конечно он оптимизируется jit'om
источник

ПФ

Паша Финкельштейн... in graalvm_ru
А может даже 6
источник

λ

λoλdog in graalvm_ru
Паш
источник

ПФ

Паша Финкельштейн... in graalvm_ru
А как это потом оптимизируется?
источник

λ

λoλdog in graalvm_ru
ты можешь открыть код трюфельный бреифака
источник

OS

Oleg Shelajev in graalvm_ru
дерево самоизменяющееся — в нем вершины могут заменяться на другие вершины и тд
источник

λ

λoλdog in graalvm_ru
и посмотреть как там формируется трюфельный аст
источник

ПФ

Паша Финкельштейн... in graalvm_ru
λoλdog
и посмотреть как там формируется трюфельный аст
ну это-то ок, я хочу понять что оно может оптимизировать
источник

λ

λoλdog in graalvm_ru
а еще есть даже визуализатор где-то
источник

OS

Oleg Shelajev in graalvm_ru
вот в какой-то момент там происходит PE
источник

OS

Oleg Shelajev in graalvm_ru
partial evaluation
источник

OS

Oleg Shelajev in graalvm_ru
считай что все до чего может дотянутся инлайнится и константы пропагируются
источник

ПФ

Паша Финкельштейн... in graalvm_ru
Вот у нас есть какой-нибудь ---- — это декремент ячейки памяти на 4.
источник

OS

Oleg Shelajev in graalvm_ru
получается как бы вместо node.execute, node.execute — один как бы node.execute на большой блок из вершин
источник