我现在正在编写一种可以编译为 C 的语言,当我说 IL 时,我的意思是因为 C 是我编写代码的语言,然后由另一个 c 编译器(例如 gcc 或 clang)生成程序集。
我生成的C代码,会不会更有利于:
- 如果我做一些简单的选择传递(不断传播,删除死代码,......)这会减少 C 编译器必须做的工作量,还是因为它不是真正的人类 C 代码而使其变得更难?
- 如果我要编译成三地址代码或 SSA 或其他形式,然后将其输入到带有函数、标签和变量的 C 程序中——这会使 C 编译器更容易还是更难优化?
哪种链接在一起形成以下问题...
- 从编译为 C 的语言生成良好 C 代码的最佳方法是什么?
- 是否值得进行任何优化并将其留给编译器?