我最近玩过target_clones
该属性从 gcc 6.1 及更高版本可用。这非常漂亮,但是就目前而言,它需要一种有点笨拙的方法;每个想要多版本化的函数都必须手动声明一个属性。这不是最佳的,因为:
- 它将编译器特定的内容放入代码中。
- 它要求开发人员确定哪些功能应该接受这种处理。
让我们举个例子,我想编译一些可以利用 AVX2 指令(如果可用)的代码。-fopt-info-vect
如果我构建的话,会告诉我哪些函数被矢量化了-mavx2
,所以编译器已经知道这一点。有没有办法在全局范围内告诉编译器:“如果您发现一个您认为可以使用 AVX2 优化的函数,请为该函数制作多个版本,无论是否有 AVX2。”?如果没有的话,我们可以要一份吗?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)