glibc和SSE功能

时间:2009-05-06 22:34:07

标签: c performance sse

我正在尝试查找有关glibc的信息以及它使用SSE功能的程度。

如果它已经过优化,我可以开箱即用吗?

假设我正在使用一个较大的Linux发行版,我假设它的glibc被编译为尽可能通用并且尽可能便携,因此没有优化?

我对memcpy和memcmp函数以及如何尽快获得这些函数特别感兴趣。

2 个答案:

答案 0 :(得分:5)

glibc 2.8根本不使用SSE用于memcpy或memcmp(在x86或x86_64中) - 它使用一些手写的程序集,避免了该系列的所有CPU都不支持的任何内容。在glibc 2.10中,将支持一种新类型的重定位STT_GNU_IFUNC,这将基于可能的CPU支持进行更好的优化。

答案 1 :(得分:2)

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