Size: a a a

Compiler Development

2020 February 13

MM

Mikhail Maltsev in Compiler Development
И есть machine descriptions - аналог tablegen файлов в lib/Target
источник

E

EgorBo in Compiler Development
спасибо за expand_divmod
источник

E

EgorBo in Compiler Development
кстати, уже упоминал что в интелах 10ххх у деления латенси раз в 5 уменьшили до приемлимого уровня
источник

E

EgorBo in Compiler Development
возможно уже не так имеет смысл запариваться
источник

E

EgorBo in Compiler Development
нашел пр в ллвм
источник

E

EgorBo in Compiler Development
источник

E

EgorBo in Compiler Development
шел 2019, в компиляторы до сих пор добавляют оптимизации из Hacker's Delight
источник

ИЧ

Илья Чистяков in Compiler Development
о, у них тоже файлики на 4к строк
источник

KR

K R in Compiler Development
> оптимизация  (X % Y) % Y is just X % Y.

А это точно, что такие оптимизации должны быть включены? Может быть лучше выдавать предупреждение, что это дебильный код?
источник

E

EgorBo in Compiler Development
K R
> оптимизация  (X % Y) % Y is just X % Y.

А это точно, что такие оптимизации должны быть включены? Может быть лучше выдавать предупреждение, что это дебильный код?
(Foo1() % Foo2()) % Foo3()

вот это дебильный код?
источник

KR

K R in Compiler Development
EgorBo
(Foo1() % Foo2()) % Foo3()

вот это дебильный код?
Ну, если это генерированный код, то смысл есть. 😞 Спасибо.
источник

E

EgorBo in Compiler Development
или даже так:

foo1() % foo2()
источник

M

MaxGraey in Compiler Development
K R
> оптимизация  (X % Y) % Y is just X % Y.

А это точно, что такие оптимизации должны быть включены? Может быть лучше выдавать предупреждение, что это дебильный код?
Такой паттерн может необязательно явно возникнуть а после череды оптимизаций, а код может быть обмазан дженереками и макросами за которыми и не видно что там в итоге выйдет
источник

E

EgorBo in Compiler Development
или появится после фолдингов, цсе, и главное - инлайнинга
источник

E

EgorBo in Compiler Development
но это норма, при обсуждении любой пипхол оптимизации находятся люди, которые говорят что так никто не пишет :)
источник

E

EgorBo in Compiler Development
Короче, побенчмаркал я эту оптимизацию и она у меня на 1 процент быстрее чем старый кодген (бенчмарк — найти в числах о 1 до 10000 кол-во чисел кратных 10)
источник

E

EgorBo in Compiler Development
ну вернее на 3-4
источник

M

MaxGraey in Compiler Development
EgorBo
Короче, побенчмаркал я эту оптимизацию и она у меня на 1 процент быстрее чем старый кодген (бенчмарк — найти в числах о 1 до 10000 кол-во чисел кратных 10)
Ты учитывай что это простейший случай. Там может быть и такое:
x % 2 + x % 3 + x % 5 + … == 0
что можно упростить до
x % 30 == 0

И тогда будет выыграш еще более заметным
источник

E

EgorBo in Compiler Development
MaxGraey
Ты учитывай что это простейший случай. Там может быть и такое:
x % 2 + x % 3 + x % 5 + … == 0
что можно упростить до
x % 30 == 0

И тогда будет выыграш еще более заметным
не, я про x % 10 == 0
источник

E

EgorBo in Compiler Development
старый вс новый кодген в ллвм
источник