Arm 努力为 AArch64 引入 GCC 函数多版本控制功能

GNU 编译器集合 (GCC) 支持一个不经常使用的特性,名为函数多版本控制 (function multi-versioning - FMV),它用于支持一个函数的多个版本,并根据使用的 CPU 选择对应的函数。

但目前 GCC FMV 仅适用于 x86/x86_64 和 POWER 架构。x86_64 上的 GCC 函数多版本控制可以将函数的所有版本都包含在同一个二进制文件中,这些函数在运行时根据处理器使用对应的版本。如此一来,开发人员可以轻松地为热代码路径创建优化的函数,而不必提供多个二进制文件。

下图为 GCC 文档 中关于函数多版本控制的 FMV 语法示例。

而据外媒 Phoronix 报道,近日  Arm 终于想起了这个功能,开始努力为 AArch64 架构提供 GCC 函数多版本控制。7 月18 日 Arm 开发者在邮件中宣布了他们在 FMV 支持方面的测试工作,目前该 GCC FMV for AArch64 规范处于 Beta 状态,将来可能会更改或扩展。以确保工具链遵循 Arm 的 C 语言扩展规则。

在 Arm 的 GitHub 仓库中可以了解更多 GCC FMV for AArch64 的详细信息。

猜你喜欢

转载自www.oschina.net/news/203468/arm-gcc-function-multiversion