Computer Engineering and Applications ›› 2007, Vol. 43 ›› Issue (23): 58-60.

• 学术探讨 • Previous Articles     Next Articles

Software de-pipelining algorithm on IA-64

WANG Miao1,2,ZHAO Rong-cai1,CAI Guo-ming3   

  1. 1.Institute of Information Engineering,Information Engineering University,Zhengzhou 450002,China
    2.Institute of Science,Information Engineering University,Zhengzhou 450001,China
    3.Institute of Electronic Technology,Information Engineering University,Zhengzhou 450004,China
  • Received:1900-01-01 Revised:1900-01-01 Online:2007-08-11 Published:2007-08-11
  • Contact: WANG Miao

一种IA-64下的反软件流水算法

汪 淼1,2,赵荣彩1,蔡国明3   

  1. 1.解放军信息工程大学 信息工程学院,郑州 450002
    2.解放军信息工程大学 理学院,郑州 450001
    3.解放军信息工程大学 电子技术学院,郑州 450004
  • 通讯作者: 汪 淼

Abstract: Software pipelining is a loop optimization technique used to exploit instruction level parallelism.However,different hardware platforms have different supports for software pipelining.It is difficult to migrate and reuse a software-pipelined loop to other processors.Software de-pipelining is the reverse of software pipelining.It can remove software pipelining characteristics from loop codes,which helps code migration from one processor to another.This paper analyses the software-pipelined loop on the IA-64 architecture,and presents a software de-pipelining algorithm that is used to restore the software-pipelined loop back to its semantically equivalent C code.

Key words: software pipelining, software de-pipelining, predicated execution, rotating register

摘要: 软件流水是一种循环程序的优化技术,它可以有效地提高指令级并行性。由于处理机的实现方法各不相同,在一种处理机上经过软件流水优化后的循环代码很难在其它处理机中移植和使用。反软件流水是软件流水的逆向操作,它可以消除循环代码中的软件流水特性,以便于代码在不同平台上的移植。基于IA-64体系结构,分析了软件流水的代码特点,提出了反流水算法,用于将ICC编译器编译后的可执行二进制代码消除软件流水特性,转换成语义等价的C代码。

关键词: 软件流水, 反软件流水, 谓词执行, 旋转寄存器