GCC 12 可以为“-O2”优化级别启用矢量化选项
GCC 12 可以为“-O2”优化级别启用矢量化选项
邮件列表显示,明年的 GCC 12 编译器在使用默认的“-O2”优化级别时可能会默认启用矢量化选项。
GCC 当前在默认情况下达到“-O3”优化级别之前不会启用其循环和 SLP 向量化选项,但这是许多 Linux 发行版和其他软件包的常见优化选项。因此,自 8 月以来,GCC 开发人员一直在考虑在 -O2 级别启用他们的矢量化选项,这允许在树上执行基本块矢量化以提高编译性能。
在讨论中,开发人员倾向于使用“相对便宜”的成本模型(-fvect-cost-model-very-cheap)来启用矢量化选项。如果尺度迭代次数是四的倍数,则可以以非常低的成本实现矢量化,这也是这些模型中成本最低的。同时,-O3 处矢量化的默认成本模型是“动态的”,以进行更多检查以确定矢量化代码路径是否更快。
关于在明年的 GCC 12 版本中默认为 -O2 启用矢量化器的讨论正在进行中,感兴趣的开发者可以查看他们的 GCC 文档 或邮件列表。
GCC 12 可以为“-O2”优化级别启用矢量化选项:等您坐沙发呢!