DSP优化经验一

来源:互联网 发布:淘宝交易总额 编辑:程序博客网 时间:2024/06/04 08:59

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);


是个断言语句。对条件进行判断,如果为1,通过,为0,则抛出异常。

0 0