繁体   English   中英

将SSE内部函数转换为可读的C / C ++代码?

[英]Convert SSE intrinsics to readable C/C++ code?

我继承了一些高度优化的(SSE4),但没有注释的C代码。 是否有任何工具或实用程序会将SSE内在函数转换为可读性更高的代码或伪代码? 这主要是为了提高可读性,以便在深入研究和进行更改之前,我可以更好地理解代码。

我不知道有任何这样的工具。

但无论如何,它很可能无济于事。 如果对SSE代码进行了优化,则最困难的部分可能是无法解码内在函数。 困难的部分是遵循所有技巧来改善局部性并消除迭代内数据依赖性(条纹,多面体循环变换等)。

但是,我可以向您提出建议:始终以最简单的方式编写相同例程的标量版本。 这个“参考代码”应该只关心可读性和正确性,而不是速度。因此,它应该有很多断言。 还有一个测试套件,可以同时执行标量版本和优化的变体。

无论是初次实施例程还是更新现有例程,始终从参考代码和测试套件开始。 不一定按此顺序。

这种方法的前期成本更高,但从长远来看则便宜得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM