Size: a a a

pro.osdev — расширенный хромосомный набор

2021 April 21

IJ

Igor 🐱 Jirkov in pro.osdev — расширенный хромосомный набор
Кроме того в зависимости от процессора новые блестящие векторные инструкции могут работать быстрее или не быстрее старых, т.к. грубо говоря есть разница, реализуются ли они микрокодом или дополнительными схемами в железе
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
а именно поэтому в глибц  рантайм патчинг адреса strcpy в зависимости от того что было найдено лучше дла этого проца
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
оно как кернел вроде не гоняет бенчмарки, но какие-то таблицы выбора там запилены
источник

d

disba1ancer in pro.osdev — расширенный хромосомный набор
мб cpuid какой-нибудь
источник

DF

Dollar Føølish in pro.osdev — расширенный хромосомный набор
Или мудрость поколений
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
ну проц получить несложно, а бенчи гоняют предварительно обычно

просто линукс на старте гоняет пачку  реализаций хеширования и выбирает что быстрее
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
а глибц насколько я знаю так не делает, там заранее все отгоняли
источник

IJ

Igor 🐱 Jirkov in pro.osdev — расширенный хромосомный набор
Кстати любопытно что при определенных обстоятельствах гцц генерирует вызов к strcpy типа тут


char x[] = "hello";


... но только если хеллоу достаточно длинный. Интересно, как они определили границу: до скольки символов нет вызова. Там чот около 60 емнип
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
ну потому что эвристически определили что до этой длины  побайтовое копирование ок )
источник

BV

Boris Vinogradov in pro.osdev — расширенный хромосомный набор
про что я и писал выше товарищам что библиотека не отделима от языка
источник

BV

Boris Vinogradov in pro.osdev — расширенный хромосомный набор
это я ещё забыл сказать про всякие стек гарды
источник

d

disba1ancer in pro.osdev — расширенный хромосомный набор
написал на годболте аналог memcpy, так компилятор мне его туда и подставил...
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
ну часть либц уже неотделима вообще ни от чего - llvm генерит вызовы к memcpy для любых языков
источник

BV

Boris Vinogradov in pro.osdev — расширенный хромосомный набор
кек
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
поэтому оно в llvm intrinsics уже живет
источник

BV

Boris Vinogradov in pro.osdev — расширенный хромосомный набор
а будет весело если ты вот напишь свой memcpy и он туда вызов memcpy подставит
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
я где-то такое видел уже
источник

d

disba1ancer in pro.osdev — расширенный хромосомный набор
-ffreestanding всё исправил
источник

BD

Berkus Decker in pro.osdev — расширенный хромосомный набор
freesttanding не избавляет  от intrinsics по-моему
источник

d

disba1ancer in pro.osdev — расширенный хромосомный набор
у gcc есть libgcc такие штуки видимо там
источник