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.

[参考译文] 编译器/TDA3:VCOP指令重新排序次优

Guru**** 2601915 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/625979/compiler-tda3-suboptimal-vcop-instruction-reordering

部件号:TDA3

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

我正在尝试编译以下kernel-C代码(ARP32编译器v.ARP8. 1.0 8):

__vector d00,D01,D02,D03,d10, d11,d12,d13;
...
d00 =最大值(d00,d10);
d01 =最大值(D01,D11);
D02 =最大值(D02, d12);
d03 =最大值(D03,D13);
d00 =最大值(d00,D02);
D01 =最大值(D01,D03);
... 

编译器将创建此程序集:

VMAX V2,V14,V2 ;[DP_32_VCOP1]|400|||
VMAX V6,V10,V6 ;[DP_32_VCOP2]|402|

VMAX V2,V6,V2 ;[DP_32_VCOP1]|404|||
VMAX V0,V12,V0 ;[DP_32_VCOP2]|401|

VMAX V4,V8,V4 ;[DP_32_VCOP1]|403|
VMAX V0,V4,V0 ;[DP_32_VCOP1]|405| 

这些指令的排序方式是,最后一对VMAX不能并行化。

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

    最好的做法是获得一个测试用例,用它来重现这些结果,然后让ARP32编译器专家对其进行分析。  因此,请按照如何 提交编译器测试用例一文中的说明提交测试用例

    谢谢,此致,

    -George

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

    感谢您通过其他渠道提交测试案例。  我可以再现同样的结果。  我在 SDOWP系统中提交了CodeGen-3725以解决此问题。  由于生成的代码是正确的,因此它不是错误条目。  这是一项提高性能的请求。  欢迎您使用我签名中下面的SDOWP链接进行关注。

    谢谢,此致,

    -George