glibc和SSE功能

5

我正在寻找关于glibc的信息,以及它在多大程度上使用SSE功能。

如果它被优化了,我能直接使用吗?

假设我正在使用较大的Linux发行版之一,我认为它的glibc编译成尽可能通用和可移植的形式,因此没有被优化?

我特别关注memcpy和memcmp函数,以及如何尽可能快地获取这些函数。

2个回答

5

glibc 2.8在x86或x86_64架构中完全不使用SSE进行memcpy或memcmp - 它使用一些手写汇编来避免任何不受该系列CPU支持的内容。在glibc 2.10中,将支持一种新的重定位类型STT_GNU_IFUNC,这将使基于CPU支持的更好优化成为可能。


2
如果您使用最高优化设置进行编译,编译器可能会使用内置函数替换memcpy和memcmp,并且根本不调用glibc。然后,mcpu和march编译器选项将选择最快的代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接