[英]Can you do all gcc optimizations (-O2, -O3) manually in your c source code?
在我的类项目中,我的项目设置为使用gcc的优化级别-O0(无优化),我们不允许在最终提交时更改它。
我使用-O2测试了我的代码,并获得了整个程序的2倍加速。 所以我想知道,是否有可能完成-O2所做的每个优化,并在我的代码中手动执行这些优化? 或者是堆栈,框架,机器/程序集等内部的一些-O2优化,因此不允许程序员在我的源代码中手动进行那些优化(如果这样做有意义的话)
是否可以通过-O2执行的每个优化,并在我的代码中手动执行这些优化?
否。编译器执行的许多优化都不能用C表示。其中一些包括:
这并不是说编译器执行的所有优化都是不可翻译的 - 当然 - 仅仅是其中一些优化。
是的,但这与在Minecraft中构建自己的8086级微处理器相同 - 不值得花时间和精力。 是的,这些优化中的许多涉及低于抽象语言级别的东西。 你的教授可能不知道你想要一个未经优化的可执行文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.