gpt4 book ai didi

c++ - 在使用单射函数索引数组时优化 g++

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

我有一个 for 循环,其中每个步骤 i 处理一个数组元素 p[f(i)],其中 f(i) 是从 1...n 到 1 的单射(一对一)映射...米(米> n)。因此循环中没有数据耦合,可以使用所有编译器优化技术,例如流水线。但是我怎样才能将 f(i) 的单射性告知 g++?或者我什至需要(g++ 能解决这个问题)吗?

最佳答案

假设 f 不依赖于任何全局状态并且不产生副作用,您可以用 const attribute 标记它:

int f(int i) __attribute__((const));

如果 f 确实依赖全局状态,但仍然具有它是其输入和全局状态的纯函数的属性(并且不产生副作用),您可以使用稍微弱一些的 pure attribute

这些属性让 gcc 进行了比其他方式更多的优化,尽管我不知道这些是否对您的情况有帮助。查看生成的汇编代码,看看它们是否有帮助。

关于c++ - 在使用单射函数索引数组时优化 g++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3937806/

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