DSP优化经验一
2014-04-23 11:44
204 查看
restrict的作用就是限制一个指针对一块内存的访问,进一步说就是如果一块内存区域通过一个受限制指针访问,那么它就不能通过另一个受限指针访问。
引入restrict的目的是确保同一块内存上没有其它引用,让编译器更好地优化指令,生成更有效的汇编代码。
把#pragma MUST_ITERATE( , , )放在循环体之前,告知开发板循环次数,改善软件流水
MUST_ITERATE告诉编译器循环的属性,但是这些属性必须是真实的,不然程序可能运行出错。此指令主要用于优化C函数循环,一般情况下,只要有循环都最好带上此指令
#pragma MUST_ITERATE(min, max, multiple);其中multiple参数必须有,循环执行次数必是multiple的整数倍。
这个信息对编译器使用软件流水技术非常重要
那min和max是最大和最小循环次数
const short *restrict x;
//Assumption: Vectors x and h are double-word aligned
_nassert((int)x % 8 == 0);
引入restrict的目的是确保同一块内存上没有其它引用,让编译器更好地优化指令,生成更有效的汇编代码。
把#pragma MUST_ITERATE( , , )放在循环体之前,告知开发板循环次数,改善软件流水
MUST_ITERATE告诉编译器循环的属性,但是这些属性必须是真实的,不然程序可能运行出错。此指令主要用于优化C函数循环,一般情况下,只要有循环都最好带上此指令
#pragma MUST_ITERATE(min, max, multiple);其中multiple参数必须有,循环执行次数必是multiple的整数倍。
这个信息对编译器使用软件流水技术非常重要
那min和max是最大和最小循环次数
const short *restrict x;
//Assumption: Vectors x and h are double-word aligned
_nassert((int)x % 8 == 0);
是个断言语句。 对条件进行判断,如果为1,通过,为0,则抛出异常。
相关文章推荐
- DSP程序开发与优化经验之二:程序运行时间测量方法总结
- 浅淡TI DSP 6000系列优化经验
- DSP程序开发与优化经验之三:C6XX优化经验总结
- DSP程序开发与优化经验之一:TI多核处理DSP C66XX开发经验
- DSP程序开发与优化经验之四:浮点仿真转化为定点化DSP程序
- 关于TI 6000系列DSP优化经验
- DSP程序开发与优化经验之四:TMS320C64x+ DSP------Using Cache
- DSP程序开发与优化经验之二:程序运行时间测量方法总结
- TI DSP TMS320C66x学习笔记之DSP优化经验
- TI DSP TMS320C66x学习笔记之DSP优化经验(八-1)
- 【unity实用技能】性能优化经验分享
- 【数据操作】存储过程编写经验和优化措施
- MySQL MyISAM/InnoDB高并发优化经验
- MySQL性能优化的最佳20+条经验
- C6XX优化经验总结
- SQL Server 数据库优化经验总结
- 脱壳经验(二)--如何优化
- MySQL性能优化的最佳20+条经验
- 个人经验总结优化数据库大幅度提高…
- (转)MySQL 性能优化的最佳20多条经验分享