大家好
最近、当 为 C66x DSP 进行编译时、我将 C6000代码生成工具链从7.4.x 升级到8.3.x。 如果性能更差、并且我检查了生成的汇编、我发现当内联函数具有作为 restrict 引用传递的输入参数时、新编译器的性能更差、如下所示
静态空 inline_smpy2_hi_lo (int src1、int src2、int * restrictout_hi、int * restrict out_lo)
{
long long out =_smpy2ll (src1、src2);
* out_hi =_hill (out);
* out_lo =_loll (out);
}
对于()
{
…
_smpy2_hi_lo (inA1、inB1、&out_HI1、&out_LO1);
…
}
我知道我可以使用具有64位返回参数的_smpy2ll 来简化代码。 但我想知道、为什么同一代码可以与编译器 v7.4.x 一起正常运行、但不适用于 v8.3.x 在最新的 v8.3.x 编译器中是否有一个简单的编译器选项来处理带有参考参数的内联函数?
谢谢你。