摘要

现代编译器提供的优化选项众多,选择何种参数因子、选择哪些选项组合以及以何种顺序应用这些选项成为一个复杂的问题,这其中优化次序问题是最困难的优化问题。随着传统方法的改进(迭代编译结合启发式优化搜索)以及新技术的出现(机器学习),构建一种相对高效、智能的编译器自动调优框架成为可能。文中通过调查过去数十年的相关研究,总结了前人的研究思路和应用方法。首先介绍了编译器自动调优的发展历程,包括早期的手工方法、成本函数驱动的方法、启发式优化搜索驱动的迭代编译、基于机器学习的直接预测以及机器学习驱动的迭代编译方法。然后重点梳理了基于机器学习的直接预测和机器学习驱动的迭代编译自动调优方法,统计和对比了一些较为成功的框架和最新的研究成果。最后提出了当前存在的问题和今后的重点研究方向。