Wpis z mikrobloga

@terion: GCC wspiera multi-version poza C++?

Przeglądając glibc można podejrzeć sobie implementację na piechotę w C dla niektórych funkcji z stdlib. Przykładowo, dobrze znany memset() zaimplementowany jest kilka sposobów. Kod wybierający właściwą wersję jest tutaj: https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/x86_64/multiarch/ifunc-memset.h;h=0c25eae4a48d5c9400a7fbd3d738448fe28f9603;hb=HEAD a poszczególne implementacje tutaj: https://sourceware.org/git/?p=glibc.git;a=tree;f=sysdeps/x86_64/multiarch;hb=HEAD pliki memset-*.S
GCC wspiera multi-version poza C++?


@babool:
Sprawdzę wieczorem, ale wydaje mi się że wspiera tak samo dla C jak i C++. Na innych językach się nie znam tak dobrze :p
Tak, glibc ma dispatchowanie na poszczególne architektury. Stąd jak sprawdzisz co naprawdę jest wołane zobaczysz coś w stylu: _memcpyssse3 itp.

Ale sam fakt narzutu wynikającego z wołania funkcji bibliotecznej i to jeszcze warunkowo może zupełnie pogrążyć te optymalizacje. Z