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

请问这段代码怎么优化比较合适?

#include "global.h"

void detrend_const(float *pdata, float num)
{
	unsigned int i = 0;
	double sum_r=0;
	double sum_i=0;
	double mean_r=0;
	double mean_i=0;

	for(i = 0; i < num; i++)
	{
		sum_r += *(pdata + 2 * i);
		sum_i += *(pdata + 2 * i + 1);
	}
	mean_r = sum_r / num;
	mean_i = sum_i / num;

	for(i = 0; i < num; i++)
	{
		*(pdata + 2 * i) = *(pdata + 2 * i) - mean_r;
		*(pdata + 2 * i + 1) = *(pdata + 2 * i + 1) - mean_i;
	}
}

希望能占用最少的时钟周期,不考虑用汇编或线性汇编,怎么样改写最好?谢谢大神的解答!

Tony Tang:

建议看一下这编文档:spru198k:c6000 programmer guide

不考虑汇编,对于上面面段代码则考虑循环展开(unroll),以及告知编译器至少循环多少次(MUST_ITERATE)之类的信息。

Mr.a.mike:

回复 Tony Tang:

这么高级,还能告诉编译器至少执行多少次,get到一个新技能。之前还从未看过progeam guide.看来可以研究下是什么了

赞(0)
未经允许不得转载:TI中文支持网 » 请问这段代码怎么优化比较合适?
分享到: 更多 (0)