我正在从事一个自动将自定义语言转换为Java的项目,并被要求在转换过程中对代码进行一些基本优化。例如,自定义代码可能具有如下内容:
if someFunction(a, b) > x:
do something
else:
return someFunction(a, b) + y在这个实例中,someFunction被用相同的输入多次调用,因此可以通过缓存someFunction()的值并只调用它一次来获得额外的性能。因此,上述代码的“优化”版本可能如下所示:
var1 = someFunction(a, b)
if var1 > x:
do something
else:
return var1 + y目前,这是在转换过程中手工完成的。我运行一个程序,将自定义语言中的代码转换为Java,然后手动检查转换后的代码,以查看可以优化哪些代码。我想自动化优化过程,因为这些问题一次又一次地出现。用自定义语言编写代码的人不想担心这些事情,所以我不能要求他们确保他们给我的代码已经被优化了。
什么是教程,论文等.这详细说明了在现代编译器中是如何做这些事情的?我不想太多地重新发明轮子。提前谢谢。
编辑1:
可以假定该函数是纯的。
https://stackoverflow.com/questions/39959328
复制相似问题