【方辉专栏】ARM嵌入式编译器(八) 优化代码大小或性能的编译器选项介绍
发布时间:2022-08-24

摘要: 本文主要对Arm Compiler 6编译器的优化选项进行介绍。

关键字:Arm Compiler 6、编译器、优化等级、链接时优化。


1. 代码优化

编译器在优化时有些可以提高代码性能,而有些可以减少代码大小。不同的优化通常相互会有影响。通常情况下,提高代码性能的方法会增加代码大小,而减少代码大小的方法会降低性能。例如,编译器在展开小循环时会获得更高的性能,但会增加代码大小。

下面具体介绍一下armclang的优化参数选项。armclang默认优化级别是-O0,不执行优化。

优化代码执行性能的参数选项:

-O1|-O2|-O3 :数字越大代表优化等级越高。

-Ofast:在-O3基础上进行提高性能的所有优化,有可能会违反一些语言标准。

-Omax:在-Ofast基础上增加链接时优化。

优化代码大小的参数选项:

-Os:执行代码优化减小代码大小,同时一定程度上兼顾代码执行性能。

-Oz:执行代码优化减小代码大小。

-Omin:在-Oz基础上,利用链接时优化删除未使用的代码,同时尝试优化全局内存访问。在编译C++代码时会删除虚函数。


2. 链接时优化

armlink的优化级别与armclang的优化级别相同。

单独在armlink时使用链接时优化,可以使用与armlink --lto_level来选择相应的连接时优化级别。

当然在编写代码时,也可以减少代码大小,提高执行效率。例如前面文章提到的,优化循环终止条件,展开循环,减少对象和库的调试信息,使用内联函数等等。


来源:《Arm® Compiler for Embedded User Guide Version 6.18》


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


关于亿道电子

亿道电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。亿道电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。

欢迎关注“亿道电子”公众号

了解更多研发工具软件知识