论文部分内容阅读
通信设备的软件系统是具有特定用途的系统,通常是实时操作系统、驱动、库、中间件和业务代码在链接时生成可执行文件,在构建可执行文件的过程中普遍使用了静态连接的方式,所以链接时优化对这类系统具有应用价值。对于使用低版本编译器的代码,可以应用链接时优化。
链接时优化是利用编译分析和优化技术在链接阶段对程序代码进行优化的技术。编译时会因为不确定的外部符号地址而限制了分析和优化的范围。链接时会将编译器产生的各独立的目标文件链接成可执行文件,因而链接时的视角包括了所有的代码和数据,可以进行更大范围的过程间分析和优化,如过程间的常量传播、死代码消除等,对性能和代码体积都有改善。
我们的工作是为一款嵌入式MIPS通信设备实现并优化了一款链接时优化工具。我们在实现了该优化工具的基础上又为其添加了复制传播和GOT表优化等几种优化。我们在同为MIPS体系结构的Loongson2F上使用SPEC2000以及Mibench中的CRC32程序进行了测试,结果表明,我们的工具能够平均获得12.5%的体积压缩。在某些测试用例上能够达到10%以上的性能提升,其中在CRC32上能够获得高达33%以上的性能提升。