反馈式编译模式的研究和实现
作者单位:国防科学技术大学
学位级别:硕士
导师姓名:赵克佳
授予年度:2006年
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:反馈式编译 插桩 profile信息 编译优化 GCC4.0
摘 要:为了最大可能地利用目标平台的特性,提高目标代码运行效率,编译器必须进行各种优化。传统的优化技术都是建立在对源程序静态分析的基础之上的,所依据的信息都是静态的信息。然而这种静态的信息往往只能给编译优化提供比较保守的依据,常常丧失了不少优化机会,从而使优化达不到理想的效果。 基于profiling的反馈式编译优化方法通过程序运行时的剖面信息来指导编译器对代码的优化。这种编译方法弥补了静态信息的局限性,可以有效地提高编译优化的效果和执行代码的性能,是传统的静态编译方法无法办到的。利用profiling技术进行优化的反馈式编译方法已成为先进编译器普遍采用的方法。 本文研究反馈式编译的相关技术和具体实现方法,主要有以下内容: 1、研究了反馈式编译模式的实现原理、主要流程,所遇到的问题和解决方法。 2、探讨了反馈式编译技术中profiling信息的种类以及获取profiling信息的方式,并对每一种profiling信息的定义、应用,各种不同的获取profiling信息的方式进行了分析和研究。 3、深入剖析了GCC4.0的反馈式编译的实现技术,具体包括:编译流程、总体框架、插桩方法、反馈数据文件的格式,以及在中间语言中标注反馈信息等的实现机制。 4、根据GCC4.0的框架特点我们在GCC4.0中实现了一种新的profiling——path profile。我们的path profile实现方案采用*** and ***提出的算法,利用GCC已经实现的edge profile的插桩方式来获取路径索引,记录程序执行时路径的执行次数。path profile在程序性能提高、反馈信息指导编译和软件测试覆盖上有很多潜在的用途。试验结果表明该方案取得了一定的效果。