高级会员

- 积分
- 921
- 金钱
- 921
- 注册时间
- 2016-4-20
- 在线时间
- 169 小时
|

楼主 |
发表于 2016-10-14 12:00:41
|
显示全部楼层
谢谢,我其实不是问这个系统自带O2,O3优化。这个是最基本的 ccs编译器也是这样,我知道O2 O3一般会开的比较慎重。我发帖子的意思是说有没有一些伪指令操作利于优化的。举个例子我写一段DSP代码:
“//进行转秩运算必须按照双子节对齐 且转秩的阶次必须是2的偶次方个
#pragma DATA_ALIGN(Ux1, 128)
void DSP_vec(const short * restrict x, int * restrict y,const int m,
int nr)
{
int i = 0;
_nassert(((int)x & 7) ==0);
_nassert(((int)y & 7) ==0);
_nassert(nr % 8 == 0);
#pragma MUST_ITERATE(2,4096,2);
#pragma UNROLL(16);
for(i=0;i<nr;i++)
{
*(y+i) += m * *(x+i);
}
}
”_nassert()
#pragma MUST_ITERATE(2,4096,2);
#pragma UNROLL(16);
这些都是dsp提供的伪指令告诉编译器 循环的范围和需要手动展开的次数和内存对齐之类。keil有没有类似的伪指令。 |
|