This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TMS320C6657:由于包含对数学库函数的调用而未进行流水线处理的循环

Guru**** 2552210 points
Other Parts Discussed in Thread: MATHLIB

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/939681/compiler-tms320c6657-loops-not-pipelined-due-to-containing-calls-to-math-library-functions

器件型号:TMS320C6657
主题中讨论的其他器件:MATHLIB

工具/软件:TI C/C++编译器

我的代码中有许多循环由于包含对 math.h 中函数的调用而不符合流水线要求、例如 sin ()、cos ()、sqrt ()、pow()、 等等

我是否可以对这些循环进行流水线处理?

以下是一个不符合要求的循环示例:

对于(k = 0;k < AEC_FFT_SIZE_2+1;k++)
{
ARG =系数*k;
CFR_FFT[k]=(浮点) cos (arg);
} 

 如果有任何建议、我将不胜感激。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Negin"]我是否可以对这些循环进行流水线处理?

    不幸的是、不

    要考虑的一种解决方案是内联函数。  但这仅适用于控制流很少或没有控制流的较小函数(IF其他、循环等) 。   cos 等数学函数并非如此

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您需要多高的精度? 您可能会考虑使用查找表和内插创建自己的可线性函数。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    当您的循环仅计算余弦时、如前所述、可以开发自己的流水线近似值。 或者、MATHLIB 配备矢量三角函数、它们只适合您的示例代码。

    希望这对您有所帮助。