TL;DR: A comparison of the alternative methods for software pipelining is presented, and the relationships between the methods are explored and possibilities for improvement highlighted.
Abstract: Utilizing parallelism at the instruction level is an important way to improve performance. Because the time spent in loop execution dominates total execution time, a large body of optimizations focuses on decreasing the time to execute each iteration. Software pipelining is a technique that reforms the loop so that a faster execution rate is realized. Iterations are executed in overlapped fashion to increase parallelism.Let {ABC}n represent a loop containing operations A, B, C that is executed n times. Although the operations of a single iteration can be parallelized, more parallelism may be achieved if the entire loop is considered rather than a single iteration. The software pipelining transformation utilizes the fact that a loop {ABC}n is equivalent to A{BCA}n−1BC. Although the operations contained in the loop do not change, the operations are from different iterations of the original loop.Various algorithms for software pipelining exist. A comparison of the alternative methods for software pipelining is presented. The relationships between the methods are explored and possibilities for improvement highlighted.
TL;DR: This paper begins the study of dataflow analysis of dynamic control programs, where arbitrary ifwhiles are allowed.
Abstract: Exact array dataflow analysis can be achieved in the general case if the only control structures are do-loops and structural ifs, and if loop counter bounds and array subscripts are affine expressions of englobing loop counters and possibly some integer constants. In this paper, we begin the study of dataflow analysis of dynamic control programs, where arbitrary ifs and whiles are allowed. In the general case, this dataflow analysis can only be fuzzy.
TL;DR: In this article, a loop optimization system based on loop analysis is proposed for evaluating whether or not the process of expanding iterations of instructions in a loop into one iteration is performed based on at least one of the operations in each iteration in the loop and the number of memory access instructions.
Abstract: In loop processing by an electronic computer that simultaneously executes a plurality of instructions, a loop optimization system according to this invention comprises loop analyzing means for judging whether or not the process of expanding iterations of instructions in a loop into one iteration is performed based on at least one of the number of operations in each iteration in the loop and the number of memory access instruction; loop expanding means for converting a given number of iterations in an instruction sequence of the loop into an equivalent instruction sequence where those iterations are expanded into one iteration; and loop optimizing means for rearranging instructions in the developed loop so that different repetitious operations may be allocated to separate processing units for simultaneous execution.
TL;DR: Usually, ranking function synthesis and invariant generation over a loop with integer variables involves abstracting the loop to have real variables, but this work introduces a technique for handling loops over integer variables directly.
Abstract: Usually, ranking function synthesis and invariant generation over a loop with integer variables involves abstracting the loop to have real variables. Integer division and modulo arithmetic must be soundly abstracted away so that the analysis over the abstracted loop is sound for the original loop. Consequently, the analysis loses precision. In contrast, we introduce a technique for handling loops over integer variables directly. The resulting analysis is more precise than previous analyses.
TL;DR: A novel fitness metric is introduced that analyzes data flow dependence among the actions and conditions of the transitions of a path in order to estimate its feasibility.
Abstract: The extended finite state machine (EFSM) is a powerful approach for modeling state-based systems. However, testing from EFSMs is complicated by the existence of infeasible paths. One important problem is the existence of a transition with a guard that references a counter variable whose value depends on previous transitions. The presence of such transitions in paths often leads to infeasible paths. This paper proposes a novel approach to bypass the counter problem. The proposed approach is evaluated by being used in a genetic algorithm to guide the search for feasible transition paths (FTPs).