如何查找编译器实现细节

How to find compiler implementation details?

本文关键字:编译器 实现 细节 查找 何查找      更新时间:2023-10-16

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

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

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

因此,您无法了解将要创建的代码。所以你唯一的机会就是:试一试!

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

  1. 案例模式是线性的
  2. 模式内的代码被使用一次或多次
  3. 代码返回或修改变量或只调用其他函数4……还有很多其他依赖项!

忘记优化器结果的预测。

对于gcc,您有源代码,请查看内部:-)