Title :
Source Level Merging of Independent Programs
Author :
Asher, Y.B. ; Yuda, Moshe
Author_Institution :
Haifa Univ., Haifa
Abstract :
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 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.
Keywords :
multi-threading; constrained software; independent programs; nonequivalent loops; simultaneous multithreading; source level merging; subcomponents merging; Computer Society; Delay; Digital signal processing; Embedded system; Merging; Multithreading; Surface-mount technology; Tail; Testing; Yarn;
Conference_Titel :
Parallel Architecture and Compilation Techniques, 2007. PACT 2007. 16th International Conference on
Conference_Location :
Brasov
Print_ISBN :
978-0-7695-2944-8
DOI :
10.1109/PACT.2007.4336230