首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动代码优化技术

自动代码优化技术
EN

Stack Overflow用户
提问于 2016-10-10 13:22:03
回答 1查看 1.5K关注 0票数 5

我正在从事一个自动将自定义语言转换为Java的项目,并被要求在转换过程中对代码进行一些基本优化。例如,自定义代码可能具有如下内容:

代码语言:javascript
复制
if someFunction(a, b) > x:
    do something
else:
    return someFunction(a, b) + y

在这个实例中,someFunction被用相同的输入多次调用,因此可以通过缓存someFunction()的值并只调用它一次来获得额外的性能。因此,上述代码的“优化”版本可能如下所示:

代码语言:javascript
复制
var1 = someFunction(a, b)

if var1 > x:
    do something
else:
    return var1 + y

目前,这是在转换过程中手工完成的。我运行一个程序,将自定义语言中的代码转换为Java,然后手动检查转换后的代码,以查看可以优化哪些代码。我想自动化优化过程,因为这些问题一次又一次地出现。用自定义语言编写代码的人不想担心这些事情,所以我不能要求他们确保他们给我的代码已经被优化了。

什么是教程,论文等.这详细说明了在现代编译器中是如何做这些事情的?我不想太多地重新发明轮子。提前谢谢。

编辑1:

可以假定该函数是纯的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-12 03:22:56

这就是所谓的公共子表达式消去

通常,这需要您实现一个完整的编译器来进行数据流分析。在龙书中给出了一种算法,"6.1.2构造DAG的值-数法“(至少适用于局部CSE )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39959328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档