Size: a a a

Compiler Development

2020 December 05

h

hazer_hazer in Compiler Development
Alexander Tchitchigin

typedef double int

?
а. пасиб
источник

AG

Alex Gryzlov in Compiler Development
Михаил
И насколько получается ускорить?
источник

AG

Alex Gryzlov in Compiler Development
там есть бенчмарки
источник

М

Михаил in Compiler Development
Благодарю
источник

h

hazer_hazer in Compiler Development
Alexander Tchitchigin

typedef double int

?
подобное запретить бы...
либо базовые типа вроде int делать кивордами. либо надстройку над типами сделать типа "closed", правда тогда redefinition придется через всё дерево искать...
источник

h

hazer_hazer in Compiler Development
Alexander Tchitchigin

typedef double int

?
такс. вы неправы -_-
это не сработает. про контекст я понял, но подобное не сделаешь, как вы описали
источник

а

а это кто in Compiler Development
MaxGraey
Не совсем, ARC требует много плясок. Практически каждай новая фича в компиляторе требует правильной работы со счетчиками особенно такими что имеют статус autoreleased. Кроме того есть пару очень трудноотлавливаемых edge кейсов связанных с алиасингом. В общем это то еще удовольствие. В конечном итоге все это начало очень сильно тормозить процесс разработки и было принято нелегкое решение отказаться от этого
Очень интересный опыт
источник

MM

Mikhail Maltsev in Compiler Development
hazer_hazer
Привет. Можете плиз объяснить зачем в llvm взятие типов реализовано через LLVMContext?
Зачем типы хранить в контексте? int он ведь везде int
Там помимо базовых типов есть ещё массивы, структуры, векторные типы, n-битные типы для "странных" n. Каждый тип - это объект. LLVMContext нужен чтобы для каждого типа был единственный экземпляр такого объекта. Тогда типы можно сравнивать простым сравнением указателей.
источник
2020 December 06

а

а это кто in Compiler Development
MaxGraey
not ssa based - это не SSA, а другие формы -  CPS, RVSDG, ANF и т д
Какие ещё бывают формы, помимо тех что вы перечислили? просто интересно
источник

AG

Alex Gryzlov in Compiler Development
CFG, DFG, SoN, sequent calculus, lambda^1/2
источник

а

а это кто in Compiler Development
Alex Gryzlov
CFG, DFG, SoN, sequent calculus, lambda^1/2
Спасибо : )
источник

t

trsfrm2smgen in Compiler Development
Приветствую всех,как фаззить JIT?
источник

M

MrSmith in Compiler Development
А как с llvm готовить сишный bool. Сначала я хотел выделить int в байт и просто поддерживать инвариант, что он всегда или 1 или 0. Но потом подумал, может есть какой то другой способ что бы не приходилось вечные приведения для br делать
источник

E

EgorBo in Compiler Development
MrSmith
А как с llvm готовить сишный bool. Сначала я хотел выделить int в байт и просто поддерживать инвариант, что он всегда или 1 или 0. Но потом подумал, может есть какой то другой способ что бы не приходилось вечные приведения для br делать
везде юзать i1, не?
источник

M

MrSmith in Compiler Development
Непонятно тогда как попросить llvm тип сделать размером 1 байт
источник

h

hazer_hazer in Compiler Development
MrSmith
Непонятно тогда как попросить llvm тип сделать размером 1 байт
там есть Int1Ty
источник

t

trsfrm2smgen in Compiler Development
MrSmith
Непонятно тогда как попросить llvm тип сделать размером 1 байт
i8
источник

t

trsfrm2smgen in Compiler Development
hazer_hazer
там есть Int1Ty
getIntNTy()
источник

t

trsfrm2smgen in Compiler Development
MrSmith
Непонятно тогда как попросить llvm тип сделать размером 1 байт
изучите более лучше док по IR и llvm::IRBuilder и llvm::Type
источник

M

MrSmith in Compiler Development
trsfrm2smgen
изучите более лучше док по IR и llvm::IRBuilder и llvm::Type
К чему это?
источник