如何查找编译器实现细节?

时间:2014-07-30 11:56:26

标签: c++ compiler-construction

众所周知,由于以跳转表等形式实现,switch-case结构可以提供比if-else结构更好的代码性能。只有当您知道编译器如何实现switch-case时,才能知道这一点。所以我的问题是你怎么知道编译器,例如Microsoft C ++ Compiler或g ++如何实现一个功能?关于常见的编译器,是否有关于这些主题的标准文献?

1 个答案:

答案 0 :(得分:2)

获取how will a compiler implement a feature的信息并不是很有用,因为编译器会运行多个步骤,每个步骤都会修改编译结果。

举个例子: 第一步建立元语言,第二步做第一步优化,下一步可能内联一些代码,下一步...

因此,您无法了解将要创建的代码。所以只有你有机会:尝试一下!

对于您的开关/案例示例,重要的是

  1. 案例模式是线性的
  2. 模式中的代码使用一次或多次
  3. 代码返回或修改变量或仅调用其他函数 4 ...吨其他依赖!
  4. 忘记预测优化器结果。

    对于gcc你有源,看看里面: - )