我想问一下这是否有意义,如果有,是否有任何尝试?
澄清问题:
当编译器制造商在优化器上工作时,他们试图让编译器根据目标架构吐出最好的汇编序列,对吗?
所以从这个意义上说,他们必须想象在案例 X 中使用的最佳指令是什么。所以我想象在设计过程中,他们会凭直觉使用他们的组装知识,以及一些带有典型案例基准测试的试错过程(代码片段)它们以优化器为目标。
但是,如果汇编代码的编译器输出选择可以由遗传算法决定,该遗传算法将简单地尝试使用两个标准:“尊重客户端意图不变”和“执行测试的速度越快越好”。
使用它,似乎可以通过向元优化器提供数千个代码片段来优化来准备优化器,学习优化它们的最佳方法,然后是最终的优化器工作(如“最终编译器中交付的那个”) ) 将检测哪个片段与正在解析的客户端代码相似并应用翻译。
我希望我很清楚。我不是建议在客户端代码编译期间使用 GO 的编译器,而是建议嵌入 GO 找到的结果的静态形式的编译器(在编译器制造商的实验室中运行)。