论文部分内容阅读
指令级并行在很大程度上促进了计算机体系结构的发展和进步,同时也促使计算机的性能前进了一大步,指令级并行从出现开始就成为一个热研究领域并且在很长时间内已经取得了很多研究成果;关于指令级并行极限的研究【Wall91】表明指令级并行理想的IPC(instruction per cycle)多数程序能达到5,其他的研究指出运用先进编译技术和理想的模型指令级并行的IPC能超过2位数,而实际的编译器产生的代码很难达到5个IPC,特别是对一款产品处理器。体系结构的设计不断给编译器支持以获得更高的指令级并行;谓词技术的支持在一定程度上对指令级并行增加了机会同时也有新的挑战,本文工作重点对谓词技术做了充分的研究,论述了谓词技术在编译技术中作用及其在体系结构中的地位,同时研究了EPIC体系结构相关的深层代码优化,并取得以下研究成果:1.建立条件转换的代价模型,把条件转换与误预测高的分支跳转联系起来,进行预测的指令调度,精确了条件转换的代价模型,作为谓词技术支持的一部分,使条件转换与谓词分析技术能够相辅相成。2.提出一种在区域上计算谓词关系的谓词分析技术,建立了谓词关系数据库,在IA-64开放源码研究编译器ORC中实验分析了谓词技术的性能影响,进一步分析了IA-64体系结构谓词支持技术的作用。3.提出了避免SSA表示的谓词分析方法,解决了多到达定值的谓词分析问题,适应了ORC后端代码生成的中间表示CGIR,实验表明谓词分析技术的灵活应用与准确计算对谓词的多到达定值的处理技术是高效的。4.提出并实现了谓词敏感的数据流分析框架,解决了数据流分析中存在的条件指令的定值和引用问题。谓词敏感的数据流分析产生的流分析信息一方面生成程序分析的流依赖信息,另一方面生成了活跃变量在控制流基本块之间的活跃信息,它区别谓词支持对指令调度和寄存器分配的局部影响,更能反应谓词技术在程序本身中的行为。5.提出控制流路径敏感的深层代码优化技术,在控制流的优化中容易做到的是如何消除分支,或者缩短关键路径等,而本技术把控制流路径按照程序的入口和出口对应形成不同的路径区分开来分别优化,特别对多出口的程序来说显示出优越性。6.提出LINUX操作系统下的程序调用共享连接深层优化技术,改进了对程序符号表属性的优化设置,进而对函数调用进行优化;并且适应EPIC体系结构特征对全局变量进行优化布局,减少了程序的访存开销,对存储优化效果明显。IA-64开放源码研究编译器ORC作为一个健壮灵活的研究平台为本文取得的研究成果提供了保证,谓词技术的支持是IA-64体系结构的新特点,ORC中