当前位置:首页 > 工业控制 > 电子设计自动化
[导读]1.集成的预处理器(Integrated Preprocessor) C/C++的预处理器集成在分析器工具中,可以提高代码的编译速度。用户可以只进行预处理也可以将预处理列表 保存在文件中。TMS320X28xx的C/C++编译器包含杯准的预处理功能

1.集成的预处理器(Integrated Preprocessor)

C/C++的预处理器集成在分析器工具中,可以提高代码的编译速度。用户可以只进行预处理也可以将预处理列表 保存在文件中。TMS320X28xx的C/C++编译器包含杯准的预处理功能,这些功能主要完成下列预处理任务:

●宏定义和扩展;

● #include 文件处理

●条件编译处理;

●其他硕处理标识(在原代码文件中以#字符开始的特定的代码段)。

2.代码优化

编译器采用先进的优化技术对C/C++源代码进行优化,如图1所示,从而减小代码的尺寸,提高代码的效率和运行 速度。C28x优化器充分利用C28x的结构特点对其代码进行优化,生成更高效率的代码。优化器是位于分析器和代码 产生器中间的优化工具,最简单的方法就是使用clZOOO—v2S shell程序,并通过-o选项确定优化级别。


 图1 带有优化的编译操作

优化器总计有4个优化级别,分别对应不同的优化程序。

(1) -o0

●简化控制流图(Control flow graph);

●将变量分配到寄存器;

●完成循环旋转(Loop Rotation);

●删除未使用的代码;

●简化表达式和语句;

●内联声明未inline的函数。

(2) -o1

●完成所有00的优化操作;

●运行局部复制/常数传递;

●删除未使用的赋值语句;

●删除局部公共表达式(Local Common Expression)。

(3) -o2

●完成所有-ol的优化操作;

●完成循环优化;

●删除全局公共子表达式(Global Common Expression);

●删除全局未使用的赋值语句;

●如果使用o优化但不标注优化的级别,则系统默认为-O2优化。

(4)-o3

●完成所有-o2的优化操作;

●删除未使用的函数;

●当函数的返回值没有用到时,简化函数的返回形式;

●内联小的函数;

●记录函数声明以便当优化调用时知道调用函数的属性;

●当所有调用都传递一个相同的参数时,把这个参数直接放在函数体中,不通过寄存器/存储器的方式传递这个参数;

●识别文件级变量特性。

上述各级别的优化都是通过优化器来实现的,此外代码生成器也要运行其他优化,尤其是和处理器相关的优化。而代码生成器的优化操作总会被运行,与是否运行优化器没有关系。

欢迎转载,信息来源维库电子市场网(www.dzsc.com)



来源:ks990次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

MIKROE增加了图形功能,CLANG支持ARM和RISC-V以及许多其他功能

关键字: 编译器 RISC-V架构 工业自动化

IAR Embedded Workbench for Arm已全面支持恩智浦最新的S32系列,可加速软件定义汽车的车身和舒适性应用的开发

关键字: 电机控制 电动汽车 编译器

这款新编译器专为dsPIC®数字信号控制器 (DSC)优化设计,可为实时应用定制许可选项

关键字: 编译器 数字信号控制器 自动驾驶

C语言编译器是一种用于将C语言源代码转换为可执行程序的软件工具。它的主要功能是将C语言代码翻译成机器语言,以便计算机能够理解和执行。C语言编译器通常包括预处理器、编译器、汇编器和链接器等多个组件,它们协同工作以完成编译过...

关键字: C语言 编译器 Microsoft Visual C++

IAR Embedded Workbench 9.40版本引入了与指针验证和分支目标识别(PACBTI)扩展的无缝兼容性,保护嵌入式应用程序免受各种安全攻击。

关键字: 代码 嵌入式应用程序 编译器

在过去数十年,摩尔定律一直支配着半导体的发展。随着MCU的性能越来越强,嵌入式产品也越来越智能,嵌入式软件也变得越来越复杂。编译器作为嵌入式软件开发的基础工具,将程序员编写的源代码转换为底层硬件可以执行的机器指令。一款优...

关键字: 摩尔定律 嵌入式 软件开发 编译器

Python的创始人是一位荷兰籍的程序员——吉多·范罗苏姆(Guido van Rossum),江湖外号“龟叔”。据说这个外号是由于Guido的开头与龟的拼音gui相同得来的,所以Guido也被程序员们戏称为“龟叔”。在...

关键字: Python 编译器 人工智能

从汇编角度来说,如果“test %al, %al”能改成“test %0x1, %al”就没有匪夷所思的问题了,如此一来应该会降低CPU的效率,毕竟执行指令还需要一个立即数,我没搞过编译器也没设计过CPU,纯属瞎猜,能搞...

关键字: 汇编 CPU 编译器

ZigBee 无线网络节点开发平台软件开发平台 IAR Embedded Workbench(简称 EW)的 C/C++交叉编译器和调试器是今天世界最完整的和最容易使用专业嵌入式应用开发工具。EW 对不同的微处理器提供一...

关键字: IAR 无线网络 编译器

摘要:深度调峰就是受电网负荷峰谷差较大影响而导致机组降出力、超过基本调峰范围进行调峰的一种运行方式,深度调峰的负荷范围超过该机组锅炉最低稳燃负荷,一般调峰深度为60%~70%BMCR。现从实际出发,阐述泰州发电厂#1机组...

关键字: 深度调峰 操作 稳燃
关闭
关闭