Size: a a a

Compiler Development

2020 February 15

AS

Aleksey Shipilev in Compiler Development
EgorBo
@shipilev https://bugs.openjdk.java.net/browse/JDK-8237946
а почему такие ограничения для с2? :D
Я так понимаю, что деталь реализации внутреннего представления маски регистров (как настоящих регистровых, так и стековых). Ограничил сверху размер маски -- сэкономил рантайм-футпринт компилятора, за счёт ограничения на представимость слишком длинных наборов аргументов. Ну и вот.
источник

E

EgorBo in Compiler Development
у нас помню есть ограничение на кол-во переменных для лив анализа что-то типа в 500, и если случайно перебдеть - код превращается в огромное месиво из спиллов :)
источник

AS

Aleksey Shipilev in Compiler Development
Всякий liveness, по крайней мере в C2, считается на битмапах, где может быть конское кол-во виртуальных регистров. Быстрое компилятор подохнет в квадратичных муках или ноды кончатся, чем в тот лимит наступит.
источник

AS

Aleksey Shipilev in Compiler Development
А с регистровыми масками на вызовах и наступили на угловые случаи с представимостью, да и хрен с ним. Лишь бы не баг в компиляторе (потому я не раскапывая далеко сразу и засабмитил вопроизводитель). См. http://hg.openjdk.java.net/jdk/jdk/file/274a0bcce99d/src/hotspot/share/adlc/formsopt.cpp#l164
источник
2020 February 16

E

EgorBo in Compiler Development
не помню было ли в чате: https://godbolt.org/z/R-4RmH
источник

FO

FORTRAN ONE LOVE in Compiler Development
и что оно делает?
источник

PS

Peter Sovietov in Compiler Development
Это классический пример, который встречается почти в каждой статье по супероптимизации.
источник

E

EgorBo in Compiler Development
FORTRAN ONE LOVE
и что оно делает?
проверяет число на степень двойки
источник

E

EgorBo in Compiler Development
я просто у нас в кодобазе нашел много мест где юзается и решил вынести в ф-цию
источник

E

EgorBo in Compiler Development
xx && yy — это уже не совсем про пипхолы, тут, блин, два бейсик блока :)
источник

DF

Dollar Føølish in Compiler Development
Peter Sovietov
Это классический пример, который встречается почти в каждой статье по супероптимизации.
Что такое супероптимизация?
источник

DF

Dollar Føølish in Compiler Development
Я нуб
источник

FO

FORTRAN ONE LOVE in Compiler Development
EgorBo
я просто у нас в кодобазе нашел много мест где юзается и решил вынести в ф-цию
нам бы такого человека)
источник

E

EgorBo in Compiler Development
Dollar Føølish
Что такое супероптимизация?
это как есть man, а есть superman
источник

DF

Dollar Føølish in Compiler Development
А что если сделать $ man Superman ))
источник

E

EgorBo in Compiler Development
но в целом, я так понимаю супероптимизации - это про то, что обычным локальным оптимизациям пофигу, они оптимизируют один кусочек и не напрягаются что имело бы смысл его не трогать и взглянуть на всё под другим углом
источник

AT

Alexander Tchitchigin in Compiler Development
Peter Sovietov
Это классический пример, который встречается почти в каждой статье по супероптимизации.
"Супероптимизация" это как "суперкомпиляция" или нет?
источник

PS

Peter Sovietov in Compiler Development
Alexander Tchitchigin
"Супероптимизация" это как "суперкомпиляция" или нет?
Нет, это простая вещь: https://arxiv.org/pdf/1711.04422.pdf
источник

AZ

Alexander Zaitsev in Compiler Development
Dollar Føølish
Что такое супероптимизация?
источник

PS

Peter Sovietov in Compiler Development
Многие популярные битовые трюки супероптимизатор вполне может синтезировать автоматически.
источник