是否有任何论文描述了从编译的程序推断子例程的算法/技术?换句话说:是否有一种算法可以找到程序中多次出现的代码块?这些 block 可以对指令进行重新排序(当然,无需更改程序行为),以便更有可能找到匹配项。
这个过程可以看作是编译器为避免调用而完成的子例程内联的相反过程,但会增加二进制大小。
在我看来,这是一个非常难的理论问题。
最佳答案
嗯,这是一个有趣的问题。人们确实在这方面做出了努力。快速搜索会返回这两个:
基思·D·库珀、纳撒尼尔·麦金托什:Enhanced Code Compression for Embedded RISC Processors ,PLDI 1999。
克里斯托弗·W·弗雷泽、尤金·W·迈尔斯、艾伦·L·温特:Analyzing and Compressing Assembly Code ,SIGPLAN 通知,1984 年 6 月。
但可能还有更多。您可以使用 Google Scholar查找引用这些旧论文的更多最新论文。
关于assembly - 子程序推理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407229/