| D.A. Spuler. Compiler code generation for multiway branch statements as a static search problem. Technical report, Dept. of Computer Science, James Cook University, Townsville, 4811, Australia, 1994. |
....range tests, which can typically be performed by one single (unsigned) test and branch plus possibly one addition, cutting sparse case lists into denser ones, and deciding which of jump tables or test sequence is more appropriate to each situation. A survey of these techniques can be found in [19]. Accessors: field n x, where x is a variable and n is an integer o set. By convention, the rst argument of nonconstant constructors stands at o set zero. Sequences: l 1; l 2 and units: 3.2 Initial state Input to the pattern matching compiler C consists of two arguments: a vector of ....
Spuler, D. A. Compiler code generation for multiway branch statements as a static search problem. Tech. Rep. 94/3, Department of Computer Science, James Cook University, 1994.
....multiway statements, instruction sets commonly support an indirect jump from a table in order to reduce the cost of such sequences of conditional branches. As a result, compiler front ends typically generate an indirect jump from a table as one translation alternative 1 for multiway statements [25, 28]. This traditional approach for using indirect jumps poses two problems. First, it is difficult to determine when the indirect jump can be effectively used in a machine independent fashion since an accurate cost benefit estimate can only be made after generating machine code. Second, many ....
....Selection g WHILE (change) BRANCH COALESCING Setup Entry and Exit Instruction Scheduling Fill Slots Useless Jumps Figure 2. 2: Modified VPO Chapter 3 RELATED WORK Several authors have suggested heuristics for deciding between different methods of translating multiway branch statements [25, 16, 5, 28]. These methods include a linear search (branch for each case value) binary search, hashing, and indirect jumps from tables. The approach used in this dissertation initially generates conditional branches to perform a linear search and relies on the code improving transformation to coalesce these ....
[Article contains additional citation context not shown here]
D. A. Spuler. Compiler code generation for multiway branch statements as a static search problem. Technical report, Dept. of Computer Science, James Cook University, Townsville, 4811, Australia, 1994.
....i ) x[i] 0; else for (i = 0; i 100; i ) y[i] 0; a) Before Loop Unswitching (b) After Loop Unswitching for (i = 0; i 100; i ) Figure 2. 2: Loop Unswitching Different search methods based on static heuristics for the cases associated with a multiway statement have been studied [3]. These methods include linear search, binary search, hashing, and indirect jump from a table. These studies all assume that each case of a multiway statement are equally likely. Conditional branches have also been avoided by code replication [4] This method determines if there are paths where ....
....conditions is one of several approaches that could be used to determine a target associated with the value of an expression. Essentially, a sequence of range conditions is a linear search. Some of these other approaches include performing a binary search, using a jump table, and hash65 66 ing [3]. Profile data could be used to more effectively apply these other approaches as a semi static search method and to decide when each method or a combination of methods is most beneficial. We plan to investigate the use of a binary search approach. Instead of finding a near optimal sequence of ....
D. A. Spuler, Compiler Code Generation for Multiway Branch Statements as a Static Search Problem, Addison-Wesley, U.S.A, June 1987.
....instruction sets commonly support an indirect jump from a table in order to reduce the cost of such sequences of conditional branches. As a result, compiler front ends typically generate an indirect jump from a table as one translation alternative 1 for multiway statements [Sale 1981; Spuler 1994]. This traditional approach for using indirect jumps poses two problems. First, it is difficult to determine when the indirect jump can be effectively used in a machine independent fashion since an accurate cost benefit estimate can only be made after generating machine code. Second, many ....
....Fig. 12. RTLs after Padding the Front of the Table 5. 2 Using Value Range Analysis to Avoid the Initial Range Check The initial range check (instructions 1 3 in Figure 11(b) can be completely avoided if a bounded range of case values is known and an entry can be stored in the table for each value [Spuler 1994]. Assume that the value range of the variable c in Figure 11(a) is [0. 255] The indirect jump operation associated with the known value range of the branch variable is depicted in Figure 13. 7 Once a set of related branches has been selected, the optimizer vpo uses demanddriven analysis to ....
[Article contains additional citation context not shown here]
Spuler, D. A. 1994. Compiler code generation for multiway branch statements as a static search problem. Technical report, Dept. of Computer Science, James Cook University, Townsville, 4811, Australia.
No context found.
D.A. Spuler. Compiler code generation for multiway branch statements as a static search problem. Technical report, Dept. of Computer Science, James Cook University, Townsville, 4811, Australia, 1994.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC