clang是否提供类似于GCC 6.x的函数多版本化(target_clones)?

bol*_*ind 8 gcc clang compiler-optimization

我非常感兴趣地阅读了这篇LWN文章.执行摘要:GCC 6.x支持一种称为函数多版本的东西,它构建了同一函数的多个版本,针对不同的指令集进行了优化.假设你有一台支持AVX2的机器而没有支持AVX2的机器.可以在两者上运行相同的二进制文件,函数foo()存在两个版本,其中一个版本使用AVX2指令.但是,只有在CPU支持时,才会调用AVX2指令的功能.

我的问题是:clang是否支持类似的东西?它似乎不是世界上最先进的功能.

Had*_*ais 3

LLVM 7 使用基于 ELF 的 x86/x86_64 目标的“target”属性支持函数多版本化。

但“target_clones”尚未落地。

  • LLVM 7 宣布拥有它:http://lists.llvm.org/pipermail/llvm-announce/2018-September/000080.html (2认同)