Size: a a a

Compiler Development

2020 January 13

VY

Vasiliy Yorkin in Compiler Development
Да, для простоты реализации (видимо)
источник

AT

Alexander Tchitchigin in Compiler Development
Vasiliy Yorkin
Да, для простоты реализации (видимо)
Для реализации bool можно легко использовать int, но тайпчекать по-нормальному.
источник

VY

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

JC

Julian =) Coffee in Compiler Development
EgorBo
подозреваю что раст лучше не будет раз тот же самый бэк что и в кланге (при условии что в расте будет тоже использован маргинальный список, в котором автор решил что лучше хранить указатель на конец вместо длины)
У раста вектор это buff + len
источник

M

MaxGraey in Compiler Development
EgorBo
подозреваю что раст лучше не будет раз тот же самый бэк что и в кланге (при условии что в расте будет тоже использован маргинальный список, в котором автор решил что лучше хранить указатель на конец вместо длины)
Да плюс-минус так же, с единственной разницей len() будет в явном виде храниться:
https://godbolt.org/z/47P29G
источник

M

MaxGraey in Compiler Development
Кстати LLVM сделал LICM пасс и вынес все за пределы базового блока с циклом.
источник

M

MaxGraey in Compiler Development
MaxGraey
Да плюс-минус так же, с единственной разницей len() будет в явном виде храниться:
https://godbolt.org/z/47P29G
Хотя нет, Rust хитрожопее и заменил цикл на memset
источник

JC

Julian =) Coffee in Compiler Development
Я помню орал когда раст оптимизировал цикл с выходом за границы до выброса паники
источник

BD

Berkus Decker in Compiler Development
MaxGraey
Хотя нет, Rust хитрожопее и заменил цикл на memset
Когда все иммутабельное по дефолту, жизнь проще
источник

E

EgorBo in Compiler Development
MaxGraey
Хотя нет, Rust хитрожопее и заменил цикл на memset
раст или ллвм? :) потому что в моно такой код тоже заменяется на мемсет
источник

JC

Julian =) Coffee in Compiler Development
Julian =) Coffee
Я помню орал когда раст оптимизировал цикл с выходом за границы до выброса паники
При том, что скомпилил код без всяких ворнингов)
источник

E

EgorBo in Compiler Development
у ллвм есть пасс что-то типа IdiomLoop
источник

E

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

M

MaxGraey in Compiler Development
EgorBo
у ллвм есть пасс что-то типа IdiomLoop
Ну вот GCC заменяет: https://godbolt.org/z/Y7fBnH
источник

C

Constantine in Compiler Development
Constantine
я не разбирался, а у голанг же свой бэк, не зависит от gcc, clang 🤔
кто-то знает ответ ?
источник

E

EgorBo in Compiler Development
Constantine
кто-то знает ответ ?
да, свой
источник

E

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

M

MaxGraey in Compiler Development
Constantine
кто-то знает ответ ?
Да у golang свой бэк никак не связанный с LLVM или GCC
источник

C

Constantine in Compiler Development
Отлично, спасиб, над будет уделить время, чтоб разобраться что там, как .
И еще можно вопрос: почему у Rust не свой бэк ?
источник

E

EgorBo in Compiler Development
Constantine
Отлично, спасиб, над будет уделить время, чтоб разобраться что там, как .
И еще можно вопрос: почему у Rust не свой бэк ?
отвечает друзь
источник