我已经调查了__通过GCC兼容器编译时,在C ++代码中以某些指针进行了限制的效果。

它不仅是运行时间保持不变,而且可执行文件似乎没有改变,字节中的大小与以前完全相同。

我的海湾合作委员会是

gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)

尽管它在解析时接受了此C ++ - 扩展,但在组装代码时似乎并不考虑它。因此,要么有原因,编译器不知道如何使用此语义信息,要么处理此信息是完全禁用的。

该代码执行了很多数字处理,它希望启用它以进行测试。你能帮我吗?

有帮助吗?

解决方案

restrict 预选赛基本上是用户帮助编译器执行某些与别名相关的优化的一种方式。它们只有在代码中已经存在这些优化机会时才会产生效果,因此请使用 restrict 只需在编译器以前必须使用“更安全”(不优化的)代码生成时,可以在情况下实现它们。在其他情况下 restrict 根本没有效果。

所以,你添加了一些 restrict 您的代码预选赛。但是,它们是否在实际重要的情况下使用,即它们实际上使编译器更有自由来优化代码?如果没有,您不应该期望您的代码更改。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top