论文部分内容阅读
移动终端复杂度的快速发展,对系统的功耗的要求越来越高,使得需要更高效的代码来完成使命,为此编译器扮演着重要的角色。如何高效快速的为处理器厂商实现支持其体系结构的编译器成为最关键的问题之一。本文通过对近几年兴起的优秀的编译器架构LLVM的分析,结合C-SKY自主知识产权的高性能嵌入式CPU的特点,成功实现了LLVM系统在CSKY CPU上的移植,为国产嵌入式占领市场赢得更多的可能性。本课题主要工作如下:首先,深入分析LLVM的组成部分,重点的介绍了LLVM后端的移植机制,列举了需要实现的重要接口,明确移植方向。其次,从CPU密切相关的数据类型和组织形式,寄存器,指令集,编码方式,寻址方式及帧栈布局等方面深入的介绍了CSKY体系结构。明确在移植中需要的信息。最后,根据LLVM移植原理和CSKY体系结构的特点,给出了移植过程和方法,实现了CSKY体系结构指令集编译,并且给出了测试方法与评估结果。与GCC后端移植的周期比较,LLVM移植周期更短,更容易实现,达到了快速有效移植编译后端的要求。在代码性能上,LLVM生成代码效率与GCC相差无几,但代码密度有更高的优势。而且LLVM的MC层既可以输出汇编代码,又能输出二进制代码,把LLVM的后端移植完成,相当移植了一个编译器和一个汇编器,LLVM这样的优势,更加缩短了移植的周期和工作量。