8.1 EDK,GNU  – 使用8.1i GNU编译器后,我的应用程序的代码大小增加了。为什么?-Altera-Intel社区-FPGA CPLD-ChipDebug

8.1 EDK,GNU – 使用8.1i GNU编译器后,我的应用程序的代码大小增加了。为什么?

问题描述

用8.1 GNU编译器编译我的应用程序后,我的代码大小显着增加。为什么会这样?

解决/修复方法

EDK 8.1中的GNU编译器包括一个算法更改,当没有桶形移位器时,它会影响代码优化。在这种情况下,-O3选项不是最佳地优化代码。对于长时间移位(N),它曾使用具有单个位移的N次循环,而不是吐出一系列SRL指令。前者代码大小较低,后者速度非常快。

因此,当您在EDK 8.1i中使用-O2或-O3进行编译时,您将看到后者“更快”的代码。使用-Os(大小优化)进行编译时,您将看到较小的(原始)代码。

请登录后发表评论

    没有回复内容