TI中文支持网
TI专业的中文技术问题搜集分享网站

C6657 循环优化问题

int main()
{for (i = 1;i<=31999;i++){F[i]=(Sig_mod_out[i-1]>0)?32767:-32767;D[i]=_ssub(Sig_qnt_os[i] , F[i]);S[i]=_sadd(S[i-1],D[i]);Sig_mod_out[i]=S[i]>0;}
}
F,S,D,Sig_mod_out初始化为空,Sig_qnt_os给定的

优化等级 -o2,–opt_for_speed 3

循环cycle为350000;如何进一步优化,希望cycle能在100000以内

Shine:

用-O3优化选项试试。

Tao_LL:

回复 Shine:

试过的,结果没有优化

user5179571:

回复 Tao_LL:

请问您这个是怎么做的优化呢?我也遇到同样的问题,而且我直接使用-O3选项,读取的数据变量会出错。请问您是怎么做的呢?

Tao_LL:

回复 user5179571:

您好。

如果循环次数较大。可以尝试在循环前加上一句UROLL的预编译指令。O3是不会直接导致出错的

user5179571:

回复 Tao_LL:

e2echina.ti.com/…/495547
您好,这是我发表的贴子,您能否帮我看一下我的这个问题。十分感谢。
出错是因为我想从文件中读取数据之后,将读取出来的前三个float型数据转换成int型数据(记录的是我整个数据大小,以便后续处理)的过程,加上这个-O3优化后,后两个改成的int型数据就不对了(之前读取的float型数据还是对的。)只有用-O0时不会出错,但处理速度没有提升。

赞(0)
未经允许不得转载:TI中文支持网 » C6657 循环优化问题
分享到: 更多 (0)