论文部分内容阅读
编译器在发掘高性能计算机系统并行性的过程中起着非常重要的作用,而其中程序分析又是编译器开发并行性的关键步骤之一。然而,对编译器精度和功能的要求的逐步提高,导致程序分析日益复杂,难于编写、移植和维护。因此,程序分析部分的可适应性问题成为编译领域的研究热点之一。本文在对程序分析算法本身及程序分析对不同并行体系结构的支持方式进行了较为深入的研究后,得到了一个能解决程序分析可适应性问题的整体方案,该方案通过运用多视图的编程范式、过程间分析优化程序自动生成和增量式分析算法等手段,取到了比较好的效果。 本文的主要贡献有: 1.提出一个能适用于所有过程间数据流分析问题的模型。这个模型中过程间分析问题完全是过程内分析问题的扩展,克服了以前其它模型把过程间和过程内分析问题割裂开来的缺点。通过这种模型,我们可以采用统一的、相互协作的过程间和过程内算法解决数据流分析问题,并得到较为精确的上下文敏感的分析结果。 2.根据以上问题模型,提出并实现了一个过程间分析优化程序生成器——IGEN。在IGEN中,我们主要解决了用户描述方法,算法框架选择等问题。由于以上问题的很好解决,IGEN可以生成过程间分析程序和优化程序,并且,它生成的程序具有独立于中间表示,可在一定范围内拼装、选择算法,可增量式维护信息等特点。所以,IGEN既能大幅度减轻程序员的劳动,又能大大提高过程间分析优化部分的可适应性。 3.提出了用多视图的编程范式编制程序分析部分的方案。这里,我们主要解决了视图的划分和定义,算法抽象层次的确定等问题,该方案的运用使程序分析部分从多个方面具备了较高程度的可适应性。 4.提出了一种增量式分析算法。该算法可以适用于所有类型的流图——包括可归约流图和不可归约流图。另外,它实现也比较简单,能方便地运用于分析程序自动生成器中。 5.根据以上算法和设计,实现了一个具有可适应性的程序分析高层模块,并将这个模块分别运用在几个不同的编译系统中,对该模块从正确性、效率和可适应性等几方面进行了验证。