9

我最近玩过target_clonesgcc 6.1 及更高版本中可用的属性。它非常漂亮,但是,就目前而言,它需要一种有点笨拙的方法;每个想要多版本化的函数都必须手动声明一个属性。这不是最优的,因为:

  • 它将编译器特定的东西放入代码中。
  • 它要求开发人员确定哪些功能应该接受这种处理。

让我们举个例子,我想编译一些代码,这些代码将利用可用的 AVX2 指令。-fopt-info-vect会告诉我哪些函数是矢量化的,如果我用 构建-mavx2,那么编译器已经知道这一点。有没有办法在全局范围内告诉编译器:“如果您发现一个您认为可以使用 AVX2 优化的函数,请制作该函数的多个版本,包括和不包括 AVX2。”?如果没有,我们可以有一个,好吗?

4

0 回答 0