16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007) (2007)
Sept. 15, 2007 to Sept. 19, 2007
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/PACT.2007.65
Yosi Ben Asher , Haifa University, Israel
Moshe Yuda , Haifa University, Israel
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.
Y. B. Asher and M. Yuda, "Source Level Merging of Independent Programs," 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007)(PACT), Brasov, Romania, 2007, pp. 402.