gpt4 book ai didi

c++ - nvcc、gcc、clang 和 msvc "respect"在结构中使用 __restrict__ 关键字吗?

转载 作者:行者123 更新时间:2023-11-30 03:42:46 33 4
gpt4 key购买 nike

假设我有

struct s {
int* __restrict__ p1;
double v;
};

void foo(int* __restrict__ p2, struct s my_s) { /* ... */ }

在这种情况下,下面列出的 C++ 编译器是否尊重 __restrict__ 关键字,并假设通过 p2 进行的内存访问不会影响通过 p1 的访问?显然这取决于编译器,因为 restrict 不是 C++ 关键字。

我主要对 gcc 4.9.x 和 nVIDIA CUDA 7.5 的 nvcc 的答案感兴趣(当然是在编译设备代码时,而不是在转发到主机编译器时)。关于当前版本的 clang、gcc 和 msvc++ 的答案也很有趣。

最佳答案

GCC似乎表示是,但我想在幕后它对这些类型的事情都很聪明,并且可能完全忽略关键字存在的事实。

我也愿意打赌,如果您使用和不使用 restrict 关键字来分析您的方法,几乎​​没有区别。

如果您这样做,我很想知道结果。

还有 this阅读起来可能很有趣。

最后,有 this博客,这似乎表明 nvcc 支持该关键字。

现在我真的很好奇分析您的代码的结果。

关于c++ - nvcc、gcc、clang 和 msvc "respect"在结构中使用 __restrict__ 关键字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36655853/

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