论文部分内容阅读
数字信号处理器(Digital Signal Processor, DSP)往往具有不同于通用处理器的体系结构,传统编译技术生成的代码无法满足信号处理的高性能要求。这需要我们采用与传统不同的编译技术对代码进行处理。在工业界所采用的所有方法之中,编译指示和嵌入式汇编是两种切实可行,且被广泛采用的方法。BWDSP100是国内某研究所自主研发的高性能信号处理器,本文所论述的工作是以国际知名的可重定位IMPACT编译器为编译基础设施,为BWDSP100设计和实现编译指示和嵌入式汇编。编译指示相关的工作包括设计和实现。我们为BWDSP100设计了3种编译指示,具体为DATA_ALIGN、DATA_MEM_BANK和DATA_SECTION。编译指示DATA_ALIGN和编译指示DATA_MEM_BANK主要解决C语言代码和手写汇编库函数之间的相互调用问题。编译指示DATA_SECTION可以用来解决数据在多个内存数据块放置的问题,而且我们开发了一种算法,此算法可以利用编译指示DATA_SECTION携带的信息,优化访存相关的指令,实验表明此算法达到了良好的优化效果。编译指示的实现工作要求我们能够在IMPACT的高层中间代码Pcode和底层中间代码Lcode中将编译指示的信息正确且完备的表示出来。我们为BWDSP100设计了嵌入式汇编语法和语义,并在IMPACT中具体实现。嵌入式汇编语法和语义的设计既参考工业界既有嵌入式汇编的设计,同时,还结合BWDSP100指令的特点。嵌入式汇编的实现需要修改编译器的前端和后端。编译器的前端需要将嵌入式汇编翻译成Lcode形式,这涉及到抽象语法树到Pcode的转换,以及从Pcode到Lcode的转换。而编译器后端受到影响的阶段有分簇,寄存器分配和指令调度。本文对各个阶段所受到的影响进行了详细描述。