Source Level Merging of Independent Programs

PACT: Parallel Architectures and Compilation Techniques(2007)

引用 0|浏览13
暂无评分
摘要
This work presents the outline of an algorithm for merging two programs (and hence more) into a single program in source level. The approach is a constrained software equivalent of simultaneous multithreading (SMT). This work goes beyond previous works [2, 3, 4, 1] by considering how to merge the remainder of a loop into a recursively merged tail. The contribution of this work is the technique of handling the tail of non-equivalent loops in the process of recursively merging subcomponents. The proposed scheme makes extensive use of the ability to forward "remaining iterations" from the merging of two sub-components to be used in following mergings of other sub-components. Forwarding remaining iterations has several modes and in particular the ability to use repeated execution of inner loops to complete the iterations of larger loops. This is (to the best of our knowledge) the first complete tool for source-level merging in C. The effectiveness of the proposed scheme for embedded systems has been studied via a sequence of experiments showing expected improvement of 10-20%. We tested merging programs from DSP related benchmarks using several compilers on different architectures.
更多
查看译文
关键词
source level merging,independent programs,constrained software,simultaneous multithreading,nonequivalent loops,subcomponents merging
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要