我继承了一些高度优化 (SSE4) 但未注释的 C 代码。是否有任何工具或实用程序可以将 SSE 内在函数转换为更具可读性的代码或伪代码?这主要是为了提高可读性,以便我可以在深入研究和进行更改之前更好地理解代码。
最佳答案
我不知道有任何这样的工具。
但无论如何它很可能不会有太大帮助。如果 SSE 代码优化得很好,困难的部分可能不是解码内在函数。困难的部分是遵循所有技巧来改善局部性并消除迭代内数据依赖性(剥离、多面体循环转换等)
不过,我可以给你一个 future 的建议:总是以最简单的方式编写同一个例程的注释良好的标量版本。这个“引用代码”应该只关心可读性和正确性,而不是速度......所以它应该有很多断言。还有一个测试套件可以同时运行标量版本和优化变体。
无论是首次实现例程,还是更新现有例程,始终从引用代码和测试套件开始。不一定按此顺序。
这种方法前期成本更高,但从长远来看要便宜得多。
关于c++ - 将 SSE 内在函数转换为可读的 C/C++ 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710649/