gpt4 book ai didi

c++ - 编译器对循环的矢量化

转载 作者:搜寻专家 更新时间:2023-10-31 01:47:04 25 4
gpt4 key购买 nike

我有一个非常基本的问题,关于编译器(在我的例子中是 gcc)使用 -O 标志进行的优化。我想在这里只关注循环的矢量化。假设一个简单的 for 循环没有指针别名/竞争条件的危险。是否可以重写此循环,使带有 -O0 标志的编译器生成的代码与编译器矢量化循环时一样快?

最佳答案

很有可能:不。使用 -O0 可以让编译器全权委托(delegate)使代码尽可能低效。当然,它不是什么恶兽要惹你,但除非你告诉它,否则它不会努力。

一些优化通常必须由编译器完成。通常,您无法通过源代码中的微优化获得与使用积极的编译器优化相同的性能。

关于您的具体示例:是的,您可以在代码中包含 vector 指令以强制使用 vector 指令。但是,如果您执行此类操作,您的代码可能无法在所有平台上运行,除非您非常知道自己在做什么并且始终提供回退。

关于c++ - 编译器对循环的矢量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com