Partitioning Non-strict Languages for Multi-threaded Code Generation (1994)
| Venue: | Master's thesis, Dept. of EECS, MIT |
| Citations: | 4 - 1 self |
BibTeX
@TECHREPORT{Coorg94partitioningnon-strict,
author = {Satyan R. Coorg and Frederic R. Morgenthaler},
title = {Partitioning Non-strict Languages for Multi-threaded Code Generation},
institution = {Master's thesis, Dept. of EECS, MIT},
year = {1994}
}
OpenURL
Abstract
In a non-strict language, functions may return values before their arguments are available, and data structures may be defined before all their components are defined. Compiling such languages to conventional hardware is not straightforward; instructions do not have a fixed compile time ordering. Such an ordering is necessary to execute programs efficiently on current microprocessors. Partitioning is the process of compiling a non-strict program into threads (i.e., a sequence of instructions). This process involves detecting data dependencies at compile time and using these dependencies to "sequentialize" parts of the program. Previous work on partitioning did not propagate dependence information across recursive procedure boundaries. Using a representation known as Paths we are able to represent dependence information of recursive functions. Also, we incorporate them into a known partitioning algorithm. However, this algorithm fails to make use of all the information contained in pat...







