编译器优化实现

时间:2009-11-14 09:32:36

标签: optimization compiler-construction implementation

实际上我正在制作一个实现编译器优化技术的重大项目。我已经了解了现有的技术,但我很困惑选择什么技术以及如何实现它。

4 个答案:

答案 0 :(得分:2)

天儿真好,

您在谈论哪个优化领域?

编译器优化,例如:

  • 循环优化
  • 数据流优化
  • 基于静态单一分配的优化
  • 代码生成器优化

或优化编译器本身的性能,即它的工作速度?

答案 1 :(得分:1)

假设您有一个要优化的编译器,如果它不是您编写的,请查阅文档以查看缺少的内容。否则,如果它是由你写的,你可以从最简单的开始。最简单的定义取决于编译器使用的语言。或者我错过了什么?

答案 2 :(得分:0)

我想你可能已经过度优化了你的问题。您是在尝试决定从哪里开始或尝试决定某些优化是否值得实施而其他优化是否值得实施?我会假设所有现有技术都有一个位置,并且根据它们遇到的代码是有用的。如果你决定先做哪一个,那就选择你能做的那个并做。选择低垂的水果。在你解决一个棘手的问题之前,在你的后兜里获得一些胜利,然后绊倒并感到沮丧。我认为真正的诀窍是在那里进行所有优化并开始工作,但想出一种方法来决定哪些方法能够为特定程序产生更好的效果,哪些方法会阻碍并使事情变得更糟。

答案 3 :(得分:-1)

恕我直言,要做的是实现简单明了的优化,然后让它休息。当然,尝试进行奇怪而精彩的优化以纠正用户可以简单编码的事情是非常有趣的,但是如果你真的想在编码不好或设计不佳后尝试清理,那么用户总是会超过你。 This is my favorite example.

我最喜欢编译器优化的例子是Fortran编译器,他们会花费很多时间来编写代码来削减代码几乎无法调试的假设周期,通常程序计数器就在那里不到1%的时间,因此浪费了精力。