Size: a a a

Compiler Development

2020 December 06

t

trsfrm2smgen in Compiler Development
trsfrm2smgen
Я думаю важная задача компилятора генерить оптимизированный код,а не следовать стандартам )
Стандарты нужны при отладке,а при конечном бинаре они не нужны,главное семантику сохранить
источник

t

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

t

trsfrm2smgen in Compiler Development
Главное скорость)
источник

t

trsfrm2smgen in Compiler Development
trsfrm2smgen
Главное скорость)
Безопасность и др параметры если они поставлены
источник

E

EgorBo in Compiler Development
вообще можно использовать везде i32 и приписать метадату range [0..1] :) но да, придется биткастить к и1 для br постоянно. но зато ллвм все равно всё оптимизирует как хочет
источник

E

EgorBo in Compiler Development
точнее даже не надо биткастить, просто icmp eq i32 %mybool, 1
источник

M

MrSmith in Compiler Development
Выглядит так как будто что то точно сломается
источник

M

MrSmith in Compiler Development
Может есть какой то exac size
источник

M

MrSmith in Compiler Development
Для метадаты
источник

E

EgorBo in Compiler Development
эмитить и1 везде подряд тоже чо-нибудь сломает :)
источник

E

EgorBo in Compiler Development
MrSmith
Может есть какой то exac size
а чем range не то?
источник

M

MrSmith in Compiler Development
Приводить всеравно к i1 надо. Ну ладно, я понял что задача не так просто решается. Посмотрю где оно вообше влияет да может создат вообше на стороне translator псевдотипы
источник

BD

Berkus Decker in Compiler Development
MrSmith
Боже какой же ты бред пишешь
Llvm использует i1 для булов, так что не бред
источник

BD

Berkus Decker in Compiler Development
Это же ир
источник

BD

Berkus Decker in Compiler Development
i1 потом можно ловерить во что нужно уже
источник

M

MrSmith in Compiler Development
Berkus Decker
Llvm использует i1 для булов, так что не бред
Я про то что "можно не соблюдать весь стандарт" и "костыли"
источник

M

MrSmith in Compiler Development
Не просто так они это тащут уже столько лет, видимо что то на это завязанно
источник

BD

Berkus Decker in Compiler Development
MrSmith
Я про то что "можно не соблюдать весь стандарт" и "костыли"
Ну какую часть стандарта представление в виде i1 не соблюдает?
источник

BD

Berkus Decker in Compiler Development
Все что 0i1 это false, все что не 0i1 это true
источник

M

MrSmith in Compiler Development
Ну я пока так и сделаю, с падингами, sizeof и тд потом протестирую. Может они и ничего так не сломает
источник