Size: a a a

Compiler Development

2020 February 27

AK

Andrei Kurosh in Compiler Development
MaxGraey
Кстати кроме DAE еще неплохо и DRE делать, то есть  дропать мертвый код с конца функции если она что то возвращает, но при вызове никто этот результат не использует во время фактического вызова
Годится только для приватных функций
источник

KR

K R in Compiler Development
И вообще вбейте туда (e^x - 1)/x
источник

M

MaxGraey in Compiler Development
Andrei Kurosh
Годится только для приватных функций
Понятное дело, так же как и инлайнинг. Разве это как то нивелирует полезность?)
источник

FO

FORTRAN ONE LOVE in Compiler Development
K R
И вообще вбейте туда (e^x - 1)/x
Лучше 1/exp(x) :-)
источник

M

MaxGraey in Compiler Development
1/(x * x)      -> (1 / x) / x
1/(x * x * x) -> ((2.080083823051904 / x) / (x * x)) / 1.4422495703074083

Вот оно что Михалыч! =)
источник

M

MaxGraey in Compiler Development
Это же прям идеальная тулза для fast pathes
источник

M

MaxGraey in Compiler Development
@foxtran спасибо тебе!
источник

E

EgorBo in Compiler Development
MaxGraey
1/(x * x)      -> (1 / x) / x
1/(x * x * x) -> ((2.080083823051904 / x) / (x * x)) / 1.4422495703074083

Вот оно что Михалыч! =)
не понял прикола
источник

M

MaxGraey in Compiler Development
EgorBo
не понял прикола
Прикол в том, что LLVM и GCC не могут оптимизировать pow(x, -3) и pow(x, -2) и оставляют библиотечный вызов
источник

M

MaxGraey in Compiler Development
а вот более тривиальные pow(x, 2) и pow(x, 0.5) и pow(x, -1) естественно оптимизируются
источник

E

EgorBo in Compiler Development
во что преобразуется pow(x, -2) ?
источник

M

MaxGraey in Compiler Development
EgorBo
во что преобразуется pow(x, -2) ?
Похоже в (1 / x) / x
источник

E

EgorBo in Compiler Development
Pow(x, 0.5) тоже сомнительно что будет полный эквивалент с скрт
источник

M

MaxGraey in Compiler Development
pow ** -0.5 это 1/sqrt(x)
источник

M

MaxGraey in Compiler Development
это делает как LLVM так и GCC
источник

E

EgorBo in Compiler Development
я знаю, но я не уверен что это правильно
источник

E

EgorBo in Compiler Development
я в джите не стал этот юзкейс оптимизировать
источник

E

EgorBo in Compiler Development
только pow(x, 2), 1) -1), 0)
источник

FO

FORTRAN ONE LOVE in Compiler Development
MaxGraey
@foxtran спасибо тебе!
??? Я не понимаю :-(
источник

KR

K R in Compiler Development
FORTRAN ONE LOVE
Лучше 1/exp(x) :-)
Что - тоже чушь пишет?
источник