splitting tehniques that partition live ranges have been proposed to solve both the spilling problem[5][8] and the assignment problem[8][9]. The parti

Size: px
Start display at page:

Download "splitting tehniques that partition live ranges have been proposed to solve both the spilling problem[5][8] and the assignment problem[8][9]. The parti"

Transcription

1 Load/Store Range Analysis for Global Register Alloation Priyadarshan Kolte and Mary Jean Harrold Department of Computer Siene Clemson University Abstrat Live range splitting tehniques divide the live ranges of variables into live range segments to improve global register alloation. We present a new tehnique for live range splitting alled load/store range analysis. This analysis loalizes the prots and the register requirements of every aess to every variable to provide a ne granularity of andidates for register alloation. Load/Store range analysis is based on the data ow analysis algorithm for def-use haining. Experiments on a small suite of C and FORTRAN benhmark programs show that a graph oloring register alloator operating on load/store ranges often provides better alloations than the same alloator operating on live ranges. Experimental results also show that the omputational ost of using load/store ranges for register alloation is moderately more than the ost of using live ranges. 1 Introdution The goal of register alloation is to map variables in an intermediate language program to either registers or memory so that the number of aesses to memory is minimized during program exeution. Sine there is a signiant dierene between aess times of registers and memory, a good register alloation sheme an produe appreiable speedup in program exeution time[15]. Various ompiler optimizations suh as ommon subexpression elimination, loop-invariant ode motion, proedure inlining and ode sheduling further inrease the demand for good register alloation. Register alloation onsists of two subproblems: register spilling and register assignment. Register spilling determines whih live ranges y will be assigned to registers (alloated live ranges) and whih live ranges will be assigned to memory (spilled live ranges). Then, register assignment maps alloated live ranges to registers so that no register ontains more than one live range at eah program statement. Graph oloring on interferene graphs of live ranges is an established paradigm for register alloation[6][7]. The nodes of an interferene graph are live ranges and there are edges between nodes that are simultaneously live at any statement in the program. Sine both the spilling and the oloring problems are NPomplete[12][20], the graph oloring method uses heuristis to obtain a register alloation. However, using live ranges as nodes of the interferene graph unneessarily onstrains the register alloator sine a register must be alloated for the entire live range of a variable. To produe better register alloations, live range This work was p artially supported by NSF grant CCR to Clemson University. y The live range of a variable is the set of statements in the program over whih the variable is live (has a value).

2 splitting tehniques that partition live ranges have been proposed to solve both the spilling problem[5][8] and the assignment problem[8][9]. The partitions of a live range of a variable may be assigned to dierent registers or even spilled to memory in dierent regions of the program. Although live range splitting is promising, there is no theoretial or empirial evidene that these live range splitting tehniques provide better alloations than the graph oloring algorithm using live ranges. In this paper, we overview a new tehnique to split live ranges alled load/store range analysis that addresses the register spilling problem. A load/store range is a minimal partition z of a live range that an be independently and protably alloated (or spilled). We ompute load/store ranges using standard iterative data ow analysis algorithms[1]. Then, we onstrut the interferene graph of a program using load ranges and store ranges instead of live ranges, and use existing heuristis to spill and olor the nodes of this graph. We inorporated our load/store range analysis into a register alloator that uses Chaitin's graph oloring sheme[7] with delayed spilling[3] and the Haifa suite of spill heuristis[2], and we ompared it with a similar register alloator that used live range interferene graphs. Experimental results using several well known C and FORTRAN benhmark programs show that the graph oloring alloator operating on load/store ranges often produes better spilling than the same algorithm operating on live ranges. The main benet of our approah is that, unlike live ranges that are oarse and do not adequately aount for lustered aesses of variables[8][16], our tehnique provides a ne granularity of andidates for register alloation that are based on the aess patterns of variables. Additionally, sine our new load/store ranges an be used instead of live ranges with any existing graph oloring algorithms, our tehnique an easily be inorporated into existing ompilers that use graph oloring for register alloation. Finally, we report the eetiveness of our load/store range analysis by omparing its alloations with those using live range analysis. This approah ontrasts with previous experiments [8][17] that ompare the memory aesses produed by a register alloator using the proposed live range splitting sheme with the memory aesses in the program without any register alloation. We are urrently experimenting to show the overall eetiveness of our tehnique on program run time and will report the results in the nal paper. In the next setion, we give bakground information. Setion 3 summarizes our tehnique for load/store range analysis and Setion 4 outlines our algorithm to onstrut the interferene graph using our load/store range analysis tehnique. In Setion 5, we disuss the use of load/store range analysis with an existing register alloation sheme and present our experimental results. Related work is briey disussed in Setion 6. Bakground The live range of variable V is the set of all statements over whih V is live. The live range of a variable may ontain a number of disonneted regions where eah region is a name[6]. For variable V, the name of denition D is the largest onneted set of statements over whih V is live that ontains the live range of z A partition divides the live ranges into possibly overlapping segments of live ranges. 2

3 B2 START B1 = S1: X :=... Li1?.... := X Z ZZZ~ S2: X :=... B3 S3: X :=... Z Z ZZZ~ ZZZ~ Li2... = B4... := X Z ZZZ~ STOP B5 =... := X Figure 1: Li1, ontaining fstart, B1g, and Li2, ontaining fb2, B3, B4, B5g, are the two live ranges of X. denition D. The live range of denition D of variable V is the set of all statements where D reahes and a use U of V is reahable. The two equations below are used to ompute names. In the rst equation, live range Li is omputed for eah denition D. In the seond equation, names are omputed by taking the union of interseting Li. Li(D) = f statement S j D reahes S ^ Name(D) = S Name(D) \ Li(D 0 ) 6= Li(D 0 ) [ Li(D) use U reahable from S g For example, Figure 1 shows a program with the variable X dened in START, B2 and B3, and used in B1, B4 and B5. X has three denitions and hene, at most three names. The live ranges of the definitions of X are Li(S1) = fstart, B1g, Li(S2) = fb2, B4g and Li(S3) = fb3, B4, B5g. Sine Li(S1) does not interset with either Li(S2) or Li(S3), Name(S1) = Li(S1) = fstart,b1g; all this set Li1. On the other hand, Li(S2) and Li(S3) interset at blok B4, and Name(S2) is the same as Name(S3). Thus, Name(S2) = Name(S3) = Li(S2) [ Li(S3) = fb2, B3, B4, B5g; all this set Li2. Li1 and Li2 are shown in Figure 1. In the remainder of this paper, we use the term live range of a variable to mean the live range of a name. A program statement is omposed of two phases: the read phase, whih reads operands, and the write phase, whih writes the results. We denote the elements of a live range as follows. 3

4 \S r " indiates that the live range inludes only the read phase of statement S \S w " indiates that the live range inludes only the write phase of statement S \S rw " indiates that the live range inludes both the read and write phases of statement S Two live ranges interfere with eah other if they are live at the same phase of the same statement. The degree of live range L is the number of live ranges that interfere with L. The width of statement S is the number of live ranges that interfere at S. If the number of live ranges that interfere in the two phases of S is dierent, the width of S is the maximum of the widths of the two phases. The prot assoiated with a live range is the weighted sum of the number of denitions and uses of the variable, where the weights are the the exeution frequenies of the denitions and uses. Load/Store Range Analysis The aim of load/store range analysis is to loalize prots and register requirements of the aesses to variables to ahieve better spilling. Register requirements are the statements over whih a register is required and aesses are the denitions and uses of the variable. Eah denition of a variable produes a store range. A store range of a denition is the set of statements over whih the variable must be alloated to a register to avoid a store at the denition. A store range may ontain a number of load ranges, and there is at least one load range for every use in the store range. A load range of a use is the set of statements over whih the variable must be alloated to a register to avoid a load at the use. The main observation used to onstrut load ranges is that alloating a register over all statements between a use of a variable and the \most reent aess" of the variable is neessary and suient to avoid a load at the use. Load ranges and store ranges are minimal partitions of live ranges that an be independently and profitably alloated or spilled. Independent alloation means that the alloation (inluding the omputation of the heuristi funtion for the alloation) of a load range of a variable is independent of that of all other load ranges of that variable. Similarly, the alloation of a store range of a variable is independent of the alloations of all other store ranges of that variable. Protable alloation means that every load and store range has a positive savings in program exeution time if it is alloated. Minimum partitions are the smallest sets of statements that are protable and independent. The example in Figure 2 illustrates the usefulness of load ranges of a variable. To see this, onsider the variable X at statements S1 through S4 in the basi blok. There is a denition of X at statement S1, and uses of X at statements S2, S3, and S4. X is live between S1 and S4, and the live range of X is Li1:(S1 w,: : :,S4 r ). The prot of alloating Li1 is 4 beause it has 1 store and 3 loads when we assume that the basi blok is exeuted one. Store range analysis produes a store range St1:(S1 w,: : :,S4 r ) that has a prot of 4. Load range analysis produes the load ranges Lo1:(S1 w,: : :,S2 r ), Lo2:(S2 rw,: : :,S3 r ) and Lo3:(S3 rw,: : :,S4 r ). The prot of alloating Lo1 to a register is 1 beause a load is saved at S2. The prot of alloating Lo2 is 1 beause we assume that a load is used to aess X at S2 and a register is used to aess 4

5 Li1 St1 Lo1 S1: X := S2:... := X... S3:... := X 4 4 s s s s 1 Lo2 1 s Lo3 s... 1 S4:... := X... Basi Blok Live Range Store Range Load Ranges Figure 2: Load ranges Lo1, Lo2 and Lo3 are independent of one another. X at S3 and thus, we save a memory load at S3. Similarly the prot of Lo3 is 1. The ranges of X are also shown in Figure 2. A lled irle indiates that the range overs the read phase as well as the write phases of a statement, whereas an empty irle indiates that the range is live in only one phase. Suppose there are too many live variables in the region between statements S2 and S3 and variable X has to be spilled. If we spill the live range of X, Li1, there is no prot, but if we spill load ranges, we may be able to alloate the load ranges Lo1 and Lo3 to obtain a prot of 2. On the other hand, if there are enough registers available in the basi blok, alloating store range St1 is the same as alloating live range Li1 and yields a prot of 4. Live range Li1 is split into load ranges Lo1, Lo2 and Lo3, whih learly are protable partitions. These are minimal partitions beause it is not possible to nd smaller partitions that yield any prot. Lo1, Lo2 and Lo3 an be independently alloated beause the alloation as well as the omputation of the prot for any one of them does not depend on the alloation of the others. Thus, the prot of alloating a ombination of the load ranges is the sum of the prots of the ranges. For example, if Lo1 and Lo2 are alloated to a register, then the prot is 2 beause of the loads saved at S2 and S3. To illustrate the usefulness of store ranges, onsider the fragment of the program shown in Figure 3. Variable X is dened at statements S1 and S2, and is used at statement S3. The live range of X is Li1:(S1 w,: : :,S2 w,: : :,S3 r ). Suppose S1 and S2 are eah exeuted one and S3 is exeuted twie, then the prot of Li1 is 4. Store range analysis produes two store ranges: St1:(S1 w,: : :,S3 r ) and St2:(S2 w,: : :,S3 r ) eah with a prot of 2. If a register is not available in the region S1,: : :,S3, onsidering store ranges as andidates for spilling is beneial beause only St1 is spilled while St2 is alloated a register. 5

6 ? S0: if (...) S0: if (...) S1: X :=... Z ZZ~ else = S1: X :=... S2: X :=... S2: X :=... Z ZZ? endif Z~?? S3:... := X S3:... := X? Li1 @? 4 2 Program Fragment Control Flow Graph Live Range Store Ranges Figure 3: Store ranges St1 and St2 are independent of eah other. The Interferene Graph using Load/Store Ranges In this setion, we outline our algorithm Load/StoreInterferenes, given in Figure 4 to onstrut the load/store interferene graph. The rst step in Load/StoreInterferene omputes store ranges using iterative data ow algorithms for reahing denitions and reahable uses. The store range (St) of denition D is the set of all those statements where the denition D reahes and there is a reahable use U. St (def D) = f statement S j def D reahes S ^ use U reahable from S g The prot assoiated with a store range is the sum of the number of denitions and uses that have been weighted by the exeution frequeny of the denitions and uses. The seond step of Load/StoreInterferene renames eah variable by assigning a unique subsript to eah aess of the variable in the program. In the third step of Load/StoreInterferenes, load ranges of eah store range are omputed. We introdue additional terminology to dene a load range. An aess of a variable is a denition or a use. An aess-free subpath with respet to variable V and two statements S i and S j is a subpath from statement S i to the statement S j that ontains no aesses of the variable V. Ourrene V i of variable V arrives at statement S if there is at least one aess-free subpath with respet to V from V i to S. Use U of variable V is exposed at statement S if there is at least one aess-free subpath with respet to V from S to U. A denition of a variable is never exposed. A load range (Lo) of two aesses V i and V j of a store range is the set of statements between V i and V j. Lo (V i, V j ) = f statement S j 6

7 Algorithm Input : Output : Load/StoreInterferenes Control flow graph G Interferene graph IG for load/store ranges /* step 1 : ompute store ranges of definitions*/ Compute reahing definitions and reahable uses for G Compute store ranges using reahing definitions and reahable uses /* step 2 : rename aesses of variables */ for eah variable V in the program do Assign a unique subsript to eah aess of V /* step 3 : ompute load ranges of store ranges */ all ComputeLoadRanges /* step 4 : ompute nodes and edges of IG */ Weight nodes in IG with profits Add edges by omputing interferene among ranges Figure 4: Algorithm to ompute the load/store interferene graph. V i arrives at S ^ V j is exposed at S g The prot assoiated with Lo(V i, V j ) is the number of times that an aess-free subpath from V i to V j is exeuted. The load ranges of eah store range are omputed using the proedure skethed in Figure 5. Sine the omputation of load ranges requires arriving aesses and exposed uses information, proedure ComputeLoadRanges uses an iterative data ow analysis framework to ompute the arriving aesses in the A IN sets and the exposed uses in the E IN sets. The fourth step of Load/StoreInterferenes onstruts the interferene graph with the store ranges and the load ranges as its nodes. Also, in this step, weights representing the prots of the ranges are added to the nodes. To ompute the prots of the ranges, we estimate that eah aess is exeuted 10 d times where d is the loop-nesting depth at whih the aess ours. We statially estimate the prot of load range Lo(V i, V j ) as the quotient of the exeution frequeny of V j and the number of aesses that reah V j. When a load range is deleted from the interferene graph during register alloation, the prot (weight) assoiated with its store range is deremented aordingly. The fourth step of Load/StoreInterferenes also determines the edges of the interferene graph by omputing the interferenes among these load and store ranges. The load ranges of distint variables interfere if they ontain the same read or write phase of the same statement. The load ranges and store ranges of a variable do not interfere with one another. The degree of a load range is the number of other variables with whih it interferes. The degree of a store range is the ardinality of the union of the set of variables that interfere with its load ranges. During register alloation, the interferenes of a store range are deleted only when the orresponding interferenes of its load ranges are deleted from the interferene graph. For a partiular register alloation sheme, the omputational expense of using load/store ranges instead of live ranges is the additional time required to ompute the load/store ranges and the inrease in alloation time due to the inreased number of nodes handled by the alloator. Sine the order of omputing store ranges is the same as omputing live ranges, the only additional expense is the time to ompute the load 7

8 Proedure Input : Output : Delare : ComputeLoadRanges Store Range G with set of statements S and edge set E Load ranges Lo of store range G A IN, A OUT, E IN, E OUT, GEN, USE and KILL are arrays of sets of aesses suh that there is one suh set for eah statement s 2 S; /* step 1 : initialization of sets */ for s 2 S do KILL [s] := f v j v is an aess of a variable that ours in s g; GEN [s] := f v j v is an aess in s g; USE [s] := f v j v is a use in s g; A IN [s] := ; /* A IN is set of arriving aesses at a point just before s */ A OUT [s] := GEN [s]; /* A OUT is set of arriving aesses at a point just after s */ E IN [s] := USE [s]; /* E IN is set of exposed aesses at a point just before s */ E OUT [s] := ; /* E OUT is set of exposed aesses at a point just after s */ endfor /* step 2 : ompute exposed uses by iterating until a steady state */ E OUT [s] := S t is a suessor of s E IN [t]; E IN [s] := USE [s] [ (E OUT [s] - KILL [s]); /* step 3 : ompute arriving aesses by iterating until a steady state */ A IN [s] := S p is a predeessor of s A OUT [p]; A OUT [s] := GEN [s] [ (A IN [s] - KILL [s]); /* step 4 : ompute load ranges for all pairs of aesses in S */ Lo (V i, V j ) := f s j V i 2 A IN [s] ^ V j 2 E IN [s] g Figure 5: Proedure to ompute load ranges. ranges. Load ranges are omputed using an iterative data ow analysis algorithm where arriving aesses and exposed uses are the propagated values. If we assume that eah statement of the program denes one result and uses at most two operands, then the number of arriving aesses and exposed uses is at most three times the number of denitions in the program. Thus, omputing load/store ranges is proportional to omputing live ranges. The number of load/store ranges is dependent on the denition-use assoiations in the program and is polynomial in the size of the program. In our experiments, we found that the number of load/store ranges is between two and three times the number of live ranges. Register Alloation with Load/Store Ranges We implemented two register alloators that are based on Chaitin's graph oloring sheme[7] with the delayed spilling enhanement[3] and the Haifa spill heuristis[2]. One alloator uses live ranges as the nodes of its interferene graph and the other uses load/store ranges. We experimented with a few well known C and FORTRAN programs in order to ompare the two alloators. The C programs that we onsidered inlude linpak, whih is a linear algebra kernel, lloops, whih is a kernel ontaining the 14 Lawrene Livermore loops, nsieve, whih is the Sieve of Eratosthenes. We also examined the dhrystone, whetstone and dhampstone syntheti benhmarks, but do not report the results beause both alloators produed nearly idential alloations. The FORTRAN programs that we onsidered are the tomatv mesh generation 8

9 Program Proedure Total R Using Using Gain (%) Loads/ Live Lo./St. Stores Ranges Ranges nsieve main % % % % sieve % % % {9 {34.6% lloops main % % {684 {2.0% % init % % % % linpak main % % {3 {11.5% % matgen % % % % dgefa % % % % daxpy % % % {3 {4.0% ddot % % % % dsal % % % % Table 1. Alloations for C programs program and the matrix300 matrix multipliation program from the SPEC benhmarks suite. Here, we report some representative statistis. The live ranges and load/store ranges of the C programs are omputed from the denition/use information obtained from a modied version of the GNU C ompiler x, g[14][19]. The denition/use information of the FORTRAN programs is obtained by using f2 to translate the programs into C[11], and then ompiling the resulting C programs with the modied g ompiler. Tables 1 and 2 ompare the two alloators for the C and FORTRAN programs respetively. The rst and seond olumns ontain the names of the program and its proedure respetively. The third olumn lists the weighted number of loads and stores in the proedure and the fourth olumn gives R, the number of general purpose registers available for alloation. We experimented with 1, 2, 4 and 8 registers to get our results. The fth olumn ontains the weighted number of loads and stores obtained after alloating R registers to the live ranges of the proedure; the sixth olumn shows the orresponding number for the alloation of x 1987, 1989 Free Software Foundation, In, 675 Mass Avenue, Cambridge, MA

10 Program Proedure Total R Using Using Gain (%) Loads/ Live Lo./St. Stores Ranges Ranges tomatv main % % % % matrix300 main % % % % prnt % % {3.5% % sgemv % % % {1 {0.1% Table 2. Alloations for FORTRAN programs Program Proedure Store Load Single Loads/ Live Ranges Ranges Ranges Stores Ranges nsieve main sieve lloops main init linpak main matgen dgefa daxpy ddot dsal tomatv main matrix300 main prnt sgemv Table 3. Number of nodes in the interferene graphs load/store ranges. The last two olumns show the absolute dierene and the perentage dierene between the two alloations respetively. In ases where the resulting number of loads/stores is small, suh as nsieve, sieve with 8 registers, linpak, matgen with 8 registers, matrix300, main with 8 registers and matrix300,saxpy with 8 registers, the results are extreme. However, for other ases, the alloations with the load/store ranges usually results in a redution in the number of loads and stores in the program. To determine the growth in the size of the interferene graph using load/store ranges, we reorded the number of nodes produed by eah alloator. Table 3 ompares the number of nodes in the load/store interferene graphs of our test programs with the number of nodes in the live range interferene graph for the same programs. The third olumn in Table 3 lists the number of store ranges and the fourth lists the number of load ranges. The fth olumn gives the number of store ranges that ontained only one load range. We optimized the number of load/store ranges by eliminating the load ranges that were the only members of their store ranges from the interferene graph. The resulting number of load/store ranges is shown in the sixth olumn. The last olumn in Table 3 shows the number of live ranges of the proedure. Comparing the last two olumns of this table reveals that the number of load/store ranges is generally less than three times the 10

11 number of live ranges. Although there are a few programs where the ratio of the number of load/store ranges to the number of live ranges is higher, these are small programs with few live ranges. These results support our laim that, in pratie, the ost of alloating load/store ranges is muh less than the theoretial worst ase estimates. 2 Related Work The original graph oloring register alloator proposed by Chaitin et al.[6] uses a heuristi to rst alloate or spill live ranges and then to assign registers to those alloated variables. A later heuristi for deiding whih live ranges to spill[7] hooses the andidate with the lowest ost/degree ratio, where the ost is the ost of aessing the variable from memory and the degree is the number of live ranges that interfere with the node in the interferene graph. Later work in global register alloation onentrated on improving Chaitin's graph oloring heuristi[3] and on developing better heuristis for seleting the nodes to be spilled[2]. Briggs, et al.[3] observed that a onstrained node need not neessarily be spilled beause some of its neighbors might share olors and thus, leave a olor for it. They introdued the idea of delayed spilling, whih always produes alloations that are at least as good as those produed by Chaitin. Bernstein, et al.[2] developed the Haifa register alloator and rened Chaitin's spilling heuristi to produe a set of three omplementary heuristi funtions: ost/degree 2, ost/(areadegree), and ost/(areadegree 2 ). The area funtion of a variable approximates the ontribution of the variable to register pressure, and takes into aount the number of program statements in the live range of the variable, the loop-nesting depth of these statements, and the width of these statements. Their experiments showed that although none of these three heuristi funtions onsistently dominated one another, the \best-of-three" always outperformed Chaitin's heuristi for spilling. An important proposal that was made but not implemented or analyzed in the Haifa register alloator projet was that spilling be performed only in the \busy regions" instead of the entire program as in Chaitin's implementation. Callahan and Koblenz[5] proposed a sheme that omputes the spill osts of variables based on variable usage patterns between spills and reloads rather than the usage over the entire program. Although this sheme is intuitively appealing, it is muh more omplex than Chaitin's original sheme, and there are no theoretial or empirial omparisons between the alloations produed by this sheme and those produed by Chaitin. Chow and Hennessy[8] presented an alternate graph oloring sheme alled priority-based oloring. Nodes of the interferene graph are assigned priorities using a ost/size funtion that is similar to Chaitin's ost/degree heuristi. This tehnique does not expliitly address the spilling problem beause they believed that spilled nodes are those with lower priority and therefore, with lower prot in exeution time. Although the live range splitting an produe olorings where Chaitin fails, the greedy oloring approah may to split live ranges that ould have been assigned a single olor by Chaitin's oloring heuristi. Thus, it may introdue unneessary register-register transfer instrutions. Further, it is not lear whether the priority-based oloring produes any improvement in spilling over Chaitin's heuristi. Bernstein's team reports that their 11

12 modiation to Chaitin's spilling heuristi universally outperforms the priority-based oloring approah, but they do not give any spei numbers[2]. Cytron and Ferrante[9] presented an algorithm for live range splitting to improve the olorability of interferene graphs. They desribed an algorithm that guarantees a oloring using MAXLIVE olors, where MAXLIVE is the maximum width at any program statement. If the number of available registers, R, is less than MAXLIVE, the assignment pass is preeded by an alloation pass. The alloation pass uses weights on the nodes suh as Chow and Hennessy's priorities to alloate live range segments suh that the maximum number of live range segments alloated at any statement is R. However, the tehnique for determining suh an alloation is not desribed. Like the priority-based oloring, this algorithm an produe olorings where Chaitin fails, but it may also split live ranges where Chaitin's oloring heuristi would have worked. Referenes [1] A. V. Aho, R. Sethi and J. D. Ullman, Compilers, Priniples, Tehniques, and Tools, Addison{Wesley Publishing Company, [2] D. Bernstein, D. Q. Goldin, M. C. Golumbi, H. Krawzyk, Y. Mansour, I. Nahshon and R. Y. Pinter, \Spill ode minimization tehniques for optimizing ompilers", Proeedings of the ACM SIGPLAN '89 Conferene on Programming Language Design and Implementation, Sigplan Noties, vol. 24, no. 6, pp. 258{263, June, [3] P. Briggs, K. D. Cooper, K. Kennedy and L. Torzon, \Coloring heuristis for register alloation", Proeedings of the ACM SIGPLAN '89 Conferene on Programming Language Design and Implementation, Sigplan Noties, vol. 24, no. 6, pp , June, [4] P. Briggs, K. D. Cooper and L. Torzon, \Rematerialization", Proeedings of the ACM SIGPLAN '92 Conferene on Programming Language Design and Implementation, Sigplan Noties, vol. 27, no. 7, pp. 311{321, June, [5] D. Callahan and B. Koblenz, \Register alloation via hierarhial graph oloring", Proeedings of the ACM SIGPLAN '91 Conferene on Programming Language Design and Implementation, Sigplan Noties, vol. 26, no. 6, pp. 192{203, June, [6] G. J. Chaitin, M. A. Auslander, A. K. Chandra, J. Coke and P. W. Markstein, \Register alloation via oloring", Computer Languages, vol. 6, pp. 47{57, January, [7] G. J. Chaitin, \Register alloation and spilling via oloring", Proeedings of the ACM SIGPLAN '82 Symposium on Compiler Constrution, Sigplan Noties, vol. 17, no. 6, pp. 98{105, June, [8] F. Chow and J. Hennessy, \The priority-based oloring approah to register alloation", ACM Transations on Programming Languages and Systems, vol. 12, no. 4, pp. 501{536, Otober,

13 [9] R. Cytron and J. Ferrante, \What's in a name? The value of renaming for parallelism detetion and storage alloation", Proeedings of the 1987 International Conferene on Parallel Proessing, pp. 19{27, August, [10] R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman and F. K. Zadek, \Eiently omputing stati single assignment form and the ontrol dependene graph", ACM Transations on Programming Languages and Systems, vol. 13, no. 4, pp. 451{490, Otober, [11] S. I. Feldman, D. M. Gay, M. W. Maimone and N. L. Shryer, A Fortran-to-C onverter, Computing Siene Tehnial Report No. 149, AT&T Bell Laboratories, Murray Hill NJ, November, [12] M. R. Garey and D. S. Johnson, Computers and Intratability: A Guide to the Theory of NP- Completeness, W.H. Freeman and Company, New York, [13] M. R. Garey and D. S. Johnson, \The omplexity of near{optimal graph oloring", Journal of the ACM, vol. 23, pp. 43{49, [14] M. J. Harrold and P. Kolte, \Combat: A ompiler based data ow testing system", Proeedings of the 10 th Pai Northwest Software Quality Conferene, Otober, [15] J. L. Hennessy and D. A. Patterson, Computer Arhiteture A Quantitative Approah, Morgan Kaufmann Publishers, In., San Mateo, California, [16] W. -C. Hsu, C. N. Fisher and J. R. Goodman, \On the minimization of loads/stores in loal register alloation", IEEE Transations on Software Engineering, vol. 15, no. 10, pp. 1252{1260, Otober, [17] J. R. Larus and P. N. Hilnger, \Register alloation in the SPUR Lisp ompiler", Proeedings of the ACM Symposium on Compiler Constrution, Sigplan Noties, vol. 21, no. 6, pp. 255{263, June, [18] T. A. Proebsting and C. N. Fisher, \Probabilisti register alloation", Proeedings of the ACM SIG- PLAN '92 Conferene on Programming Language Design and Implementation, Sigplan Noties, vol. 27, no. 7, pp. 300{310, June, [19] R. M. Stallman, \Using and porting GNU CC (version )," Free Software Foundation, In., Cambridge MA, February, [20] M. Yannakakis, \Node- and edge-deletion NP-omplete problems", Proeedings of the 10 th Annual ACM Symposium on Theory of Computing, pp. 253{264,

Register Allocation III. Interference Graph Allocators. Computing the Interference Graph (in MiniJava compiler)

Register Allocation III. Interference Graph Allocators. Computing the Interference Graph (in MiniJava compiler) Register Alloation III Announements Reommen have interferene graph onstrution working by Monay Last leture Register alloation aross funtion alls Toay Register alloation options Interferene Graph Alloators

More information

A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR

A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR Malaysian Journal of Computer Siene, Vol 10 No 1, June 1997, pp 36-41 A DYNAMIC ACCESS CONTROL WITH BINARY KEY-PAIR Md Rafiqul Islam, Harihodin Selamat and Mohd Noor Md Sap Faulty of Computer Siene and

More information

Compilation Lecture 11a. Register Allocation Noam Rinetzky. Text book: Modern compiler implementation in C Andrew A.

Compilation Lecture 11a. Register Allocation Noam Rinetzky. Text book: Modern compiler implementation in C Andrew A. Compilation 0368-3133 Leture 11a Text book: Modern ompiler implementation in C Andrew A. Appel Register Alloation Noam Rinetzky 1 Registers Dediated memory loations that an be aessed quikly, an have omputations

More information

Register Allocation III. Interference Graph Allocators. Coalescing. Granularity of Allocation (Renumber step in Briggs) Chaitin

Register Allocation III. Interference Graph Allocators. Coalescing. Granularity of Allocation (Renumber step in Briggs) Chaitin Register Alloation III Last time Register alloation aross funtion alls Toay Register alloation options Interferene Graph Alloators Chaitin Briggs CS553 Leture Register Alloation III 1 CS553 Leture Register

More information

On - Line Path Delay Fault Testing of Omega MINs M. Bellos 1, E. Kalligeros 1, D. Nikolos 1,2 & H. T. Vergos 1,2

On - Line Path Delay Fault Testing of Omega MINs M. Bellos 1, E. Kalligeros 1, D. Nikolos 1,2 & H. T. Vergos 1,2 On - Line Path Delay Fault Testing of Omega MINs M. Bellos, E. Kalligeros, D. Nikolos,2 & H. T. Vergos,2 Dept. of Computer Engineering and Informatis 2 Computer Tehnology Institute University of Patras,

More information

Pipelined Multipliers for Reconfigurable Hardware

Pipelined Multipliers for Reconfigurable Hardware Pipelined Multipliers for Reonfigurable Hardware Mithell J. Myjak and José G. Delgado-Frias Shool of Eletrial Engineering and Computer Siene, Washington State University Pullman, WA 99164-2752 USA {mmyjak,

More information

Extracting Partition Statistics from Semistructured Data

Extracting Partition Statistics from Semistructured Data Extrating Partition Statistis from Semistrutured Data John N. Wilson Rihard Gourlay Robert Japp Mathias Neumüller Department of Computer and Information Sienes University of Strathlyde, Glasgow, UK {jnw,rsg,rpj,mathias}@is.strath.a.uk

More information

A Partial Sorting Algorithm in Multi-Hop Wireless Sensor Networks

A Partial Sorting Algorithm in Multi-Hop Wireless Sensor Networks A Partial Sorting Algorithm in Multi-Hop Wireless Sensor Networks Abouberine Ould Cheikhna Department of Computer Siene University of Piardie Jules Verne 80039 Amiens Frane Ould.heikhna.abouberine @u-piardie.fr

More information

Evaluation of Benchmark Performance Estimation for Parallel. Fortran Programs on Massively Parallel SIMD and MIMD. Computers.

Evaluation of Benchmark Performance Estimation for Parallel. Fortran Programs on Massively Parallel SIMD and MIMD. Computers. Evaluation of Benhmark Performane Estimation for Parallel Fortran Programs on Massively Parallel SIMD and MIMD Computers Thomas Fahringer Dept of Software Tehnology and Parallel Systems University of Vienna

More information

Automatic Physical Design Tuning: Workload as a Sequence Sanjay Agrawal Microsoft Research One Microsoft Way Redmond, WA, USA +1-(425)

Automatic Physical Design Tuning: Workload as a Sequence Sanjay Agrawal Microsoft Research One Microsoft Way Redmond, WA, USA +1-(425) Automati Physial Design Tuning: Workload as a Sequene Sanjay Agrawal Mirosoft Researh One Mirosoft Way Redmond, WA, USA +1-(425) 75-357 sagrawal@mirosoft.om Eri Chu * Computer Sienes Department University

More information

Algorithms for External Memory Lecture 6 Graph Algorithms - Weighted List Ranking

Algorithms for External Memory Lecture 6 Graph Algorithms - Weighted List Ranking Algorithms for External Memory Leture 6 Graph Algorithms - Weighted List Ranking Leturer: Nodari Sithinava Sribe: Andi Hellmund, Simon Ohsenreither 1 Introdution & Motivation After talking about I/O-effiient

More information

Sparse Certificates for 2-Connectivity in Directed Graphs

Sparse Certificates for 2-Connectivity in Directed Graphs Sparse Certifiates for 2-Connetivity in Direted Graphs Loukas Georgiadis Giuseppe F. Italiano Aikaterini Karanasiou Charis Papadopoulos Nikos Parotsidis Abstrat Motivated by the emergene of large-sale

More information

This fact makes it difficult to evaluate the cost function to be minimized

This fact makes it difficult to evaluate the cost function to be minimized RSOURC LLOCTION N SSINMNT In the resoure alloation step the amount of resoures required to exeute the different types of proesses is determined. We will refer to the time interval during whih a proess

More information

NONLINEAR BACK PROJECTION FOR TOMOGRAPHIC IMAGE RECONSTRUCTION. Ken Sauer and Charles A. Bouman

NONLINEAR BACK PROJECTION FOR TOMOGRAPHIC IMAGE RECONSTRUCTION. Ken Sauer and Charles A. Bouman NONLINEAR BACK PROJECTION FOR TOMOGRAPHIC IMAGE RECONSTRUCTION Ken Sauer and Charles A. Bouman Department of Eletrial Engineering, University of Notre Dame Notre Dame, IN 46556, (219) 631-6999 Shool of

More information

Constructing Transaction Serialization Order for Incremental. Data Warehouse Refresh. Ming-Ling Lo and Hui-I Hsiao. IBM T. J. Watson Research Center

Constructing Transaction Serialization Order for Incremental. Data Warehouse Refresh. Ming-Ling Lo and Hui-I Hsiao. IBM T. J. Watson Research Center Construting Transation Serialization Order for Inremental Data Warehouse Refresh Ming-Ling Lo and Hui-I Hsiao IBM T. J. Watson Researh Center July 11, 1997 Abstrat In typial pratie of data warehouse, the

More information

CleanUp: Improving Quadrilateral Finite Element Meshes

CleanUp: Improving Quadrilateral Finite Element Meshes CleanUp: Improving Quadrilateral Finite Element Meshes Paul Kinney MD-10 ECC P.O. Box 203 Ford Motor Company Dearborn, MI. 8121 (313) 28-1228 pkinney@ford.om Abstrat: Unless an all quadrilateral (quad)

More information

Exploring the Commonality in Feature Modeling Notations

Exploring the Commonality in Feature Modeling Notations Exploring the Commonality in Feature Modeling Notations Miloslav ŠÍPKA Slovak University of Tehnology Faulty of Informatis and Information Tehnologies Ilkovičova 3, 842 16 Bratislava, Slovakia miloslav.sipka@gmail.om

More information

A {k, n}-secret Sharing Scheme for Color Images

A {k, n}-secret Sharing Scheme for Color Images A {k, n}-seret Sharing Sheme for Color Images Rastislav Luka, Konstantinos N. Plataniotis, and Anastasios N. Venetsanopoulos The Edward S. Rogers Sr. Dept. of Eletrial and Computer Engineering, University

More information

Parallelizing Frequent Web Access Pattern Mining with Partial Enumeration for High Speedup

Parallelizing Frequent Web Access Pattern Mining with Partial Enumeration for High Speedup Parallelizing Frequent Web Aess Pattern Mining with Partial Enumeration for High Peiyi Tang Markus P. Turkia Department of Computer Siene Department of Computer Siene University of Arkansas at Little Rok

More information

Calculation of typical running time of a branch-and-bound algorithm for the vertex-cover problem

Calculation of typical running time of a branch-and-bound algorithm for the vertex-cover problem Calulation of typial running time of a branh-and-bound algorithm for the vertex-over problem Joni Pajarinen, Joni.Pajarinen@iki.fi Otober 21, 2007 1 Introdution The vertex-over problem is one of a olletion

More information

Dynamic Programming. Lecture #8 of Algorithms, Data structures and Complexity. Joost-Pieter Katoen Formal Methods and Tools Group

Dynamic Programming. Lecture #8 of Algorithms, Data structures and Complexity. Joost-Pieter Katoen Formal Methods and Tools Group Dynami Programming Leture #8 of Algorithms, Data strutures and Complexity Joost-Pieter Katoen Formal Methods and Tools Group E-mail: katoen@s.utwente.nl Otober 29, 2002 JPK #8: Dynami Programming ADC (214020)

More information

Graph-Based vs Depth-Based Data Representation for Multiview Images

Graph-Based vs Depth-Based Data Representation for Multiview Images Graph-Based vs Depth-Based Data Representation for Multiview Images Thomas Maugey, Antonio Ortega, Pasal Frossard Signal Proessing Laboratory (LTS), Eole Polytehnique Fédérale de Lausanne (EPFL) Email:

More information

Cluster-Based Cumulative Ensembles

Cluster-Based Cumulative Ensembles Cluster-Based Cumulative Ensembles Hanan G. Ayad and Mohamed S. Kamel Pattern Analysis and Mahine Intelligene Lab, Eletrial and Computer Engineering, University of Waterloo, Waterloo, Ontario N2L 3G1,

More information

Algorithms, Mechanisms and Procedures for the Computer-aided Project Generation System

Algorithms, Mechanisms and Procedures for the Computer-aided Project Generation System Algorithms, Mehanisms and Proedures for the Computer-aided Projet Generation System Anton O. Butko 1*, Aleksandr P. Briukhovetskii 2, Dmitry E. Grigoriev 2# and Konstantin S. Kalashnikov 3 1 Department

More information

Space- and Time-Efficient BDD Construction via Working Set Control

Space- and Time-Efficient BDD Construction via Working Set Control Spae- and Time-Effiient BDD Constrution via Working Set Control Bwolen Yang Yirng-An Chen Randal E. Bryant David R. O Hallaron Computer Siene Department Carnegie Mellon University Pittsburgh, PA 15213.

More information

Learning Convention Propagation in BeerAdvocate Reviews from a etwork Perspective. Abstract

Learning Convention Propagation in BeerAdvocate Reviews from a etwork Perspective. Abstract CS 9 Projet Final Report: Learning Convention Propagation in BeerAdvoate Reviews from a etwork Perspetive Abstrat We look at the way onventions propagate between reviews on the BeerAdvoate dataset, and

More information

Outline: Software Design

Outline: Software Design Outline: Software Design. Goals History of software design ideas Design priniples Design methods Life belt or leg iron? (Budgen) Copyright Nany Leveson, Sept. 1999 A Little History... At first, struggling

More information

A Novel Bit Level Time Series Representation with Implication of Similarity Search and Clustering

A Novel Bit Level Time Series Representation with Implication of Similarity Search and Clustering A Novel Bit Level Time Series Representation with Impliation of Similarity Searh and lustering hotirat Ratanamahatana, Eamonn Keogh, Anthony J. Bagnall 2, and Stefano Lonardi Dept. of omputer Siene & Engineering,

More information

Bayesian Belief Networks for Data Mining. Harald Steck and Volker Tresp. Siemens AG, Corporate Technology. Information and Communications

Bayesian Belief Networks for Data Mining. Harald Steck and Volker Tresp. Siemens AG, Corporate Technology. Information and Communications Bayesian Belief Networks for Data Mining Harald Stek and Volker Tresp Siemens AG, Corporate Tehnology Information and Communiations 81730 Munih, Germany fharald.stek, Volker.Trespg@mhp.siemens.de Abstrat

More information

Boosted Random Forest

Boosted Random Forest Boosted Random Forest Yohei Mishina, Masamitsu suhiya and Hironobu Fujiyoshi Department of Computer Siene, Chubu University, 1200 Matsumoto-ho, Kasugai, Aihi, Japan {mishi, mtdoll}@vision.s.hubu.a.jp,

More information

Multi-Piece Mold Design Based on Linear Mixed-Integer Program Toward Guaranteed Optimality

Multi-Piece Mold Design Based on Linear Mixed-Integer Program Toward Guaranteed Optimality INTERNATIONAL CONFERENCE ON MANUFACTURING AUTOMATION (ICMA200) Multi-Piee Mold Design Based on Linear Mixed-Integer Program Toward Guaranteed Optimality Stephen Stoyan, Yong Chen* Epstein Department of

More information

A Novel Validity Index for Determination of the Optimal Number of Clusters

A Novel Validity Index for Determination of the Optimal Number of Clusters IEICE TRANS. INF. & SYST., VOL.E84 D, NO.2 FEBRUARY 2001 281 LETTER A Novel Validity Index for Determination of the Optimal Number of Clusters Do-Jong KIM, Yong-Woon PARK, and Dong-Jo PARK, Nonmembers

More information

A Dual-Hamiltonian-Path-Based Multicasting Strategy for Wormhole-Routed Star Graph Interconnection Networks

A Dual-Hamiltonian-Path-Based Multicasting Strategy for Wormhole-Routed Star Graph Interconnection Networks A Dual-Hamiltonian-Path-Based Multiasting Strategy for Wormhole-Routed Star Graph Interonnetion Networks Nen-Chung Wang Department of Information and Communiation Engineering Chaoyang University of Tehnology,

More information

Detection and Recognition of Non-Occluded Objects using Signature Map

Detection and Recognition of Non-Occluded Objects using Signature Map 6th WSEAS International Conferene on CIRCUITS, SYSTEMS, ELECTRONICS,CONTROL & SIGNAL PROCESSING, Cairo, Egypt, De 9-31, 007 65 Detetion and Reognition of Non-Oluded Objets using Signature Map Sangbum Park,

More information

HEXA: Compact Data Structures for Faster Packet Processing

HEXA: Compact Data Structures for Faster Packet Processing Washington University in St. Louis Washington University Open Sholarship All Computer Siene and Engineering Researh Computer Siene and Engineering Report Number: 27-26 27 HEXA: Compat Data Strutures for

More information

Approximate logic synthesis for error tolerant applications

Approximate logic synthesis for error tolerant applications Approximate logi synthesis for error tolerant appliations Doohul Shin and Sandeep K. Gupta Eletrial Engineering Department, University of Southern California, Los Angeles, CA 989 {doohuls, sandeep}@us.edu

More information

The Minimum Redundancy Maximum Relevance Approach to Building Sparse Support Vector Machines

The Minimum Redundancy Maximum Relevance Approach to Building Sparse Support Vector Machines The Minimum Redundany Maximum Relevane Approah to Building Sparse Support Vetor Mahines Xiaoxing Yang, Ke Tang, and Xin Yao, Nature Inspired Computation and Appliations Laboratory (NICAL), Shool of Computer

More information

A Load-Balanced Clustering Protocol for Hierarchical Wireless Sensor Networks

A Load-Balanced Clustering Protocol for Hierarchical Wireless Sensor Networks International Journal of Advanes in Computer Networks and Its Seurity IJCNS A Load-Balaned Clustering Protool for Hierarhial Wireless Sensor Networks Mehdi Tarhani, Yousef S. Kavian, Saman Siavoshi, Ali

More information

Sequential Incremental-Value Auctions

Sequential Incremental-Value Auctions Sequential Inremental-Value Autions Xiaoming Zheng and Sven Koenig Department of Computer Siene University of Southern California Los Angeles, CA 90089-0781 {xiaominz,skoenig}@us.edu Abstrat We study the

More information

mahines. HBSP enhanes the appliability of the BSP model by inorporating parameters that reet the relative speeds of the heterogeneous omputing omponen

mahines. HBSP enhanes the appliability of the BSP model by inorporating parameters that reet the relative speeds of the heterogeneous omputing omponen The Heterogeneous Bulk Synhronous Parallel Model Tiani L. Williams and Rebea J. Parsons Shool of Computer Siene University of Central Florida Orlando, FL 32816-2362 fwilliams,rebeag@s.uf.edu Abstrat. Trends

More information

Performance of Histogram-Based Skin Colour Segmentation for Arms Detection in Human Motion Analysis Application

Performance of Histogram-Based Skin Colour Segmentation for Arms Detection in Human Motion Analysis Application World Aademy of Siene, Engineering and Tehnology 8 009 Performane of Histogram-Based Skin Colour Segmentation for Arms Detetion in Human Motion Analysis Appliation Rosalyn R. Porle, Ali Chekima, Farrah

More information

Chapter 2: Introduction to Maple V

Chapter 2: Introduction to Maple V Chapter 2: Introdution to Maple V 2-1 Working with Maple Worksheets Try It! (p. 15) Start a Maple session with an empty worksheet. The name of the worksheet should be Untitled (1). Use one of the standard

More information

Alleviating DFT cost using testability driven HLS

Alleviating DFT cost using testability driven HLS Alleviating DFT ost using testability driven HLS M.L.Flottes, R.Pires, B.Rouzeyre Laboratoire d Informatique, de Robotique et de Miroéletronique de Montpellier, U.M. CNRS 5506 6 rue Ada, 34392 Montpellier

More information

An Alternative Approach to the Fuzzifier in Fuzzy Clustering to Obtain Better Clustering Results

An Alternative Approach to the Fuzzifier in Fuzzy Clustering to Obtain Better Clustering Results An Alternative Approah to the Fuzziier in Fuzzy Clustering to Obtain Better Clustering Results Frank Klawonn Department o Computer Siene University o Applied Sienes BS/WF Salzdahlumer Str. 46/48 D-38302

More information

Improved Circuit-to-CNF Transformation for SAT-based ATPG

Improved Circuit-to-CNF Transformation for SAT-based ATPG Improved Ciruit-to-CNF Transformation for SAT-based ATPG Daniel Tille 1 René Krenz-Bååth 2 Juergen Shloeffel 2 Rolf Drehsler 1 1 Institute of Computer Siene, University of Bremen, 28359 Bremen, Germany

More information

Flow Demands Oriented Node Placement in Multi-Hop Wireless Networks

Flow Demands Oriented Node Placement in Multi-Hop Wireless Networks Flow Demands Oriented Node Plaement in Multi-Hop Wireless Networks Zimu Yuan Institute of Computing Tehnology, CAS, China {zimu.yuan}@gmail.om arxiv:153.8396v1 [s.ni] 29 Mar 215 Abstrat In multi-hop wireless

More information

Self-Adaptive Parent to Mean-Centric Recombination for Real-Parameter Optimization

Self-Adaptive Parent to Mean-Centric Recombination for Real-Parameter Optimization Self-Adaptive Parent to Mean-Centri Reombination for Real-Parameter Optimization Kalyanmoy Deb and Himanshu Jain Department of Mehanial Engineering Indian Institute of Tehnology Kanpur Kanpur, PIN 86 {deb,hjain}@iitk.a.in

More information

the data. Structured Principal Component Analysis (SPCA)

the data. Structured Principal Component Analysis (SPCA) Strutured Prinipal Component Analysis Kristin M. Branson and Sameer Agarwal Department of Computer Siene and Engineering University of California, San Diego La Jolla, CA 9193-114 Abstrat Many tasks involving

More information

Capturing Large Intra-class Variations of Biometric Data by Template Co-updating

Capturing Large Intra-class Variations of Biometric Data by Template Co-updating Capturing Large Intra-lass Variations of Biometri Data by Template Co-updating Ajita Rattani University of Cagliari Piazza d'armi, Cagliari, Italy ajita.rattani@diee.unia.it Gian Lua Marialis University

More information

Cross-layer Resource Allocation on Broadband Power Line Based on Novel QoS-priority Scheduling Function in MAC Layer

Cross-layer Resource Allocation on Broadband Power Line Based on Novel QoS-priority Scheduling Function in MAC Layer Communiations and Networ, 2013, 5, 69-73 http://dx.doi.org/10.4236/n.2013.53b2014 Published Online September 2013 (http://www.sirp.org/journal/n) Cross-layer Resoure Alloation on Broadband Power Line Based

More information

Abstract. Key Words: Image Filters, Fuzzy Filters, Order Statistics Filters, Rank Ordered Mean Filters, Channel Noise. 1.

Abstract. Key Words: Image Filters, Fuzzy Filters, Order Statistics Filters, Rank Ordered Mean Filters, Channel Noise. 1. Fuzzy Weighted Rank Ordered Mean (FWROM) Filters for Mixed Noise Suppression from Images S. Meher, G. Panda, B. Majhi 3, M.R. Meher 4,,4 Department of Eletronis and I.E., National Institute of Tehnology,

More information

Gray Codes for Reflectable Languages

Gray Codes for Reflectable Languages Gray Codes for Refletable Languages Yue Li Joe Sawada Marh 8, 2008 Abstrat We lassify a type of language alled a refletable language. We then develop a generi algorithm that an be used to list all strings

More information

Multiple-Criteria Decision Analysis: A Novel Rank Aggregation Method

Multiple-Criteria Decision Analysis: A Novel Rank Aggregation Method 3537 Multiple-Criteria Deision Analysis: A Novel Rank Aggregation Method Derya Yiltas-Kaplan Department of Computer Engineering, Istanbul University, 34320, Avilar, Istanbul, Turkey Email: dyiltas@ istanbul.edu.tr

More information

Dr.Hazeem Al-Khafaji Dept. of Computer Science, Thi-Qar University, College of Science, Iraq

Dr.Hazeem Al-Khafaji Dept. of Computer Science, Thi-Qar University, College of Science, Iraq Volume 4 Issue 6 June 014 ISSN: 77 18X International Journal of Advaned Researh in Computer Siene and Software Engineering Researh Paper Available online at: www.ijarsse.om Medial Image Compression using

More information

Real-Time Control for a Turbojet Engine

Real-Time Control for a Turbojet Engine A Multiproessor mplementation of Real-Time Control for a Turbojet Engine Phillip L. Shaffer ABSTRACT: A real-time ontrol program for a turbojet engine has been implemented on a four-proessor omputer, ahieving

More information

Allocating Rotating Registers by Scheduling

Allocating Rotating Registers by Scheduling Alloating Rotating Registers by Sheduling Hongbo Rong Hyunhul Park Cheng Wang Youfeng Wu Programming Systems Lab Intel Labs {hongbo.rong,hyunhul.park,heng..wang,youfeng.wu}@intel.om ABSTRACT A rotating

More information

References. December 1992, pp. 71 { 81. pp.457{467. Magazine, June for very large high throughput database systems,"

References. December 1992, pp. 71 { 81. pp.457{467. Magazine, June for very large high throughput database systems, the overall working time for other appliations. In ase, data ltering was the only appliation being run, then using distributed indexing, we an serve 00 times as many requests. 6 Conlusion We have explored

More information

Multi-Channel Wireless Networks: Capacity and Protocols

Multi-Channel Wireless Networks: Capacity and Protocols Multi-Channel Wireless Networks: Capaity and Protools Tehnial Report April 2005 Pradeep Kyasanur Dept. of Computer Siene, and Coordinated Siene Laboratory, University of Illinois at Urbana-Champaign Email:

More information

Performance Benchmarks for an Interactive Video-on-Demand System

Performance Benchmarks for an Interactive Video-on-Demand System Performane Benhmarks for an Interative Video-on-Demand System. Guo,P.G.Taylor,E.W.M.Wong,S.Chan,M.Zukerman andk.s.tang ARC Speial Researh Centre for Ultra-Broadband Information Networks (CUBIN) Department

More information

Partial Character Decoding for Improved Regular Expression Matching in FPGAs

Partial Character Decoding for Improved Regular Expression Matching in FPGAs Partial Charater Deoding for Improved Regular Expression Mathing in FPGAs Peter Sutton Shool of Information Tehnology and Eletrial Engineering The University of Queensland Brisbane, Queensland, 4072, Australia

More information

Improved flooding of broadcast messages using extended multipoint relaying

Improved flooding of broadcast messages using extended multipoint relaying Improved flooding of broadast messages using extended multipoint relaying Pere Montolio Aranda a, Joaquin Garia-Alfaro a,b, David Megías a a Universitat Oberta de Catalunya, Estudis d Informàtia, Mulimèdia

More information

Reading Object Code. A Visible/Z Lesson

Reading Object Code. A Visible/Z Lesson Reading Objet Code A Visible/Z Lesson The Idea: When programming in a high-level language, we rarely have to think about the speifi ode that is generated for eah instrution by a ompiler. But as an assembly

More information

Colouring contact graphs of squares and rectilinear polygons de Berg, M.T.; Markovic, A.; Woeginger, G.

Colouring contact graphs of squares and rectilinear polygons de Berg, M.T.; Markovic, A.; Woeginger, G. Colouring ontat graphs of squares and retilinear polygons de Berg, M.T.; Markovi, A.; Woeginger, G. Published in: nd European Workshop on Computational Geometry (EuroCG 06), 0 Marh - April, Lugano, Switzerland

More information

An Efficient and Scalable Approach to CNN Queries in a Road Network

An Efficient and Scalable Approach to CNN Queries in a Road Network An Effiient and Salable Approah to CNN Queries in a Road Network Hyung-Ju Cho Chin-Wan Chung Dept. of Eletrial Engineering & Computer Siene Korea Advaned Institute of Siene and Tehnology 373- Kusong-dong,

More information

Using Augmented Measurements to Improve the Convergence of ICP

Using Augmented Measurements to Improve the Convergence of ICP Using Augmented Measurements to Improve the onvergene of IP Jaopo Serafin, Giorgio Grisetti Dept. of omputer, ontrol and Management Engineering, Sapienza University of Rome, Via Ariosto 25, I-0085, Rome,

More information

Tackling IPv6 Address Scalability from the Root

Tackling IPv6 Address Scalability from the Root Takling IPv6 Address Salability from the Root Mei Wang Ashish Goel Balaji Prabhakar Stanford University {wmei, ashishg, balaji}@stanford.edu ABSTRACT Internet address alloation shemes have a huge impat

More information

1 The Knuth-Morris-Pratt Algorithm

1 The Knuth-Morris-Pratt Algorithm 5-45/65: Design & Analysis of Algorithms September 26, 26 Leture #9: String Mathing last hanged: September 26, 27 There s an entire field dediated to solving problems on strings. The book Algorithms on

More information

8 Instruction Selection

8 Instruction Selection 8 Instrution Seletion The IR ode instrutions were designed to do exatly one operation: load/store, add, subtrat, jump, et. The mahine instrutions of a real CPU often perform several of these primitive

More information

Reading Object Code. A Visible/Z Lesson

Reading Object Code. A Visible/Z Lesson Reading Objet Code A Visible/Z Lesson The Idea: When programming in a high-level language, we rarely have to think about the speifi ode that is generated for eah instrution by a ompiler. But as an assembly

More information

C 2 C 3 C 1 M S. f e. e f (3,0) (0,1) (2,0) (-1,1) (1,0) (-1,0) (1,-1) (0,-1) (-2,0) (-3,0) (0,-2)

C 2 C 3 C 1 M S. f e. e f (3,0) (0,1) (2,0) (-1,1) (1,0) (-1,0) (1,-1) (0,-1) (-2,0) (-3,0) (0,-2) SPECIAL ISSUE OF IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION: MULTI-ROBOT SSTEMS, 00 Distributed reonfiguration of hexagonal metamorphi robots Jennifer E. Walter, Jennifer L. Welh, and Nany M. Amato Abstrat

More information

Establishing Secure Ethernet LANs Using Intelligent Switching Hubs in Internet Environments

Establishing Secure Ethernet LANs Using Intelligent Switching Hubs in Internet Environments Establishing Seure Ethernet LANs Using Intelligent Swithing Hubs in Internet Environments WOEIJIUNN TSAUR AND SHIJINN HORNG Department of Eletrial Engineering, National Taiwan University of Siene and Tehnology,

More information

A Fast Kernel-based Multilevel Algorithm for Graph Clustering

A Fast Kernel-based Multilevel Algorithm for Graph Clustering A Fast Kernel-based Multilevel Algorithm for Graph Clustering Inderjit Dhillon Dept. of Computer Sienes University of Texas at Austin Austin, TX 78712 inderjit@s.utexas.edu Yuqiang Guan Dept. of Computer

More information

COST PERFORMANCE ASPECTS OF CCD FAST AUXILIARY MEMORY

COST PERFORMANCE ASPECTS OF CCD FAST AUXILIARY MEMORY COST PERFORMANCE ASPECTS OF CCD FAST AUXILIARY MEMORY Dileep P, Bhondarkor Texas Instruments Inorporated Dallas, Texas ABSTRACT Charge oupled devies (CCD's) hove been mentioned as potential fast auxiliary

More information

Video Data and Sonar Data: Real World Data Fusion Example

Video Data and Sonar Data: Real World Data Fusion Example 14th International Conferene on Information Fusion Chiago, Illinois, USA, July 5-8, 2011 Video Data and Sonar Data: Real World Data Fusion Example David W. Krout Applied Physis Lab dkrout@apl.washington.edu

More information

A Coarse-to-Fine Classification Scheme for Facial Expression Recognition

A Coarse-to-Fine Classification Scheme for Facial Expression Recognition A Coarse-to-Fine Classifiation Sheme for Faial Expression Reognition Xiaoyi Feng 1,, Abdenour Hadid 1 and Matti Pietikäinen 1 1 Mahine Vision Group Infoteh Oulu and Dept. of Eletrial and Information Engineering

More information

The recursive decoupling method for solving tridiagonal linear systems

The recursive decoupling method for solving tridiagonal linear systems Loughborough University Institutional Repository The reursive deoupling method for solving tridiagonal linear systems This item was submitted to Loughborough University's Institutional Repository by the/an

More information

TMIX: Temporal Model for Indexing XML Documents

TMIX: Temporal Model for Indexing XML Documents TMIX: Temporal Model for Indexing XML Douments Rasha Bin-Thalab Department of Information System Faulty of omputers and Information Cairo University, Egypt azi_z30@yahoo.om Neamat El-Tazi Department of

More information

Time delay estimation of reverberant meeting speech: on the use of multichannel linear prediction

Time delay estimation of reverberant meeting speech: on the use of multichannel linear prediction University of Wollongong Researh Online Faulty of Informatis - apers (Arhive) Faulty of Engineering and Information Sienes 7 Time delay estimation of reverberant meeting speeh: on the use of multihannel

More information

Staircase Join: Teach a Relational DBMS to Watch its (Axis) Steps

Staircase Join: Teach a Relational DBMS to Watch its (Axis) Steps Stairase Join: Teah a Relational DBMS to Wath its (Axis) Steps Torsten Grust Maurie van Keulen Jens Teubner University of Konstanz Department of Computer and Information Siene P.O. Box D 88, 78457 Konstanz,

More information

Distributed Resource Allocation Strategies for Achieving Quality of Service in Server Clusters

Distributed Resource Allocation Strategies for Achieving Quality of Service in Server Clusters Proeedings of the 45th IEEE Conferene on Deision & Control Manhester Grand Hyatt Hotel an Diego, CA, UA, Deember 13-15, 2006 Distributed Resoure Alloation trategies for Ahieving Quality of ervie in erver

More information

3-D IMAGE MODELS AND COMPRESSION - SYNTHETIC HYBRID OR NATURAL FIT?

3-D IMAGE MODELS AND COMPRESSION - SYNTHETIC HYBRID OR NATURAL FIT? 3-D IMAGE MODELS AND COMPRESSION - SYNTHETIC HYBRID OR NATURAL FIT? Bernd Girod, Peter Eisert, Marus Magnor, Ekehard Steinbah, Thomas Wiegand Te {girod eommuniations Laboratory, University of Erlangen-Nuremberg

More information

Adapting K-Medians to Generate Normalized Cluster Centers

Adapting K-Medians to Generate Normalized Cluster Centers Adapting -Medians to Generate Normalized Cluster Centers Benamin J. Anderson, Deborah S. Gross, David R. Musiant Anna M. Ritz, Thomas G. Smith, Leah E. Steinberg Carleton College andersbe@gmail.om, {dgross,

More information

Semi-Supervised Affinity Propagation with Instance-Level Constraints

Semi-Supervised Affinity Propagation with Instance-Level Constraints Semi-Supervised Affinity Propagation with Instane-Level Constraints Inmar E. Givoni, Brendan J. Frey Probabilisti and Statistial Inferene Group University of Toronto 10 King s College Road, Toronto, Ontario,

More information

What are Cycle-Stealing Systems Good For? A Detailed Performance Model Case Study

What are Cycle-Stealing Systems Good For? A Detailed Performance Model Case Study What are Cyle-Stealing Systems Good For? A Detailed Performane Model Case Study Wayne Kelly and Jiro Sumitomo Queensland University of Tehnology, Australia {w.kelly, j.sumitomo}@qut.edu.au Abstrat The

More information

Incremental Mining of Partial Periodic Patterns in Time-series Databases

Incremental Mining of Partial Periodic Patterns in Time-series Databases CERIAS Teh Report 2000-03 Inremental Mining of Partial Periodi Patterns in Time-series Dataases Mohamed G. Elfeky Center for Eduation and Researh in Information Assurane and Seurity Purdue University,

More information

On the Generation of Multiplexer Circuits for Pass Transistor Logic

On the Generation of Multiplexer Circuits for Pass Transistor Logic Preprint from Proeedings of DATE 2, Paris, rane, Marh 2 On the Generation of Multiplexer Ciruits for Pass Transistor Logi Christoph Sholl Bernd Beker Institute of Computer Siene Albert Ludwigs University

More information

Uncovering Hidden Loop Level Parallelism in Sequential Applications

Uncovering Hidden Loop Level Parallelism in Sequential Applications Unovering Hidden Loop Level Parallelism in Sequential Appliations Hongtao Zhong, Mojtaba Mehrara, Steve Lieberman, and Sott Mahlke Advaned Computer Arhiteture Laboratory University of Mihigan, Ann Arbor,

More information

High-level synthesis under I/O Timing and Memory constraints

High-level synthesis under I/O Timing and Memory constraints Highlevel synthesis under I/O Timing and Memory onstraints Philippe Coussy, Gwenolé Corre, Pierre Bomel, Eri Senn, Eri Martin To ite this version: Philippe Coussy, Gwenolé Corre, Pierre Bomel, Eri Senn,

More information

2017 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media,

2017 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, 2017 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any urrent or future media, inluding reprinting/republishing this material for advertising

More information

Color Image Fusion for Concealed Weapon Detection

Color Image Fusion for Concealed Weapon Detection In: E.M. Carapezza (Ed.), Sensors, and ommand, ontrol, ommuniations, and intelligene (C3I) tehnologies for homeland defense and law enforement II, SPIE-571 (pp. 372-379). Bellingham, WA., USA: The International

More information

An Optimized Approach on Applying Genetic Algorithm to Adaptive Cluster Validity Index

An Optimized Approach on Applying Genetic Algorithm to Adaptive Cluster Validity Index IJCSES International Journal of Computer Sienes and Engineering Systems, ol., No.4, Otober 2007 CSES International 2007 ISSN 0973-4406 253 An Optimized Approah on Applying Geneti Algorithm to Adaptive

More information

Analysis of input and output configurations for use in four-valued CCD programmable logic arrays

Analysis of input and output configurations for use in four-valued CCD programmable logic arrays nalysis of input and output onfigurations for use in four-valued D programmable logi arrays J.T. utler H.G. Kerkhoff ndexing terms: Logi, iruit theory and design, harge-oupled devies bstrat: s in binary,

More information

A Novel Timestamp Ordering Approach for Co-existing Traditional and Cooperative Transaction Processing

A Novel Timestamp Ordering Approach for Co-existing Traditional and Cooperative Transaction Processing A Novel Timestamp Ordering Approah for Co-existing Traditional and Cooperative Transation Proessing Author Sun, Chengzheng, Zhang, Y., Kambayashi, Y., Yang, Y. Published 1998 Conferene Title Proeedings

More information

Total 100

Total 100 CS331 SOLUTION Problem # Points 1 10 2 15 3 25 4 20 5 15 6 15 Total 100 1. ssume you are dealing with a ompiler for a Java-like language. For eah of the following errors, irle whih phase would normally

More information

1. The collection of the vowels in the word probability. 2. The collection of real numbers that satisfy the equation x 9 = 0.

1. The collection of the vowels in the word probability. 2. The collection of real numbers that satisfy the equation x 9 = 0. C HPTER 1 SETS I. DEFINITION OF SET We begin our study of probability with the disussion of the basi onept of set. We assume that there is a ommon understanding of what is meant by the notion of a olletion

More information

Dynamic Algorithms Multiple Choice Test

Dynamic Algorithms Multiple Choice Test 3226 Dynami Algorithms Multiple Choie Test Sample test: only 8 questions 32 minutes (Real test has 30 questions 120 minutes) Årskort Name Eah of the following 8 questions has 4 possible answers of whih

More information

Naïve Bayesian Rough Sets Under Fuzziness

Naïve Bayesian Rough Sets Under Fuzziness IJMSA: Vol. 6, No. 1-2, January-June 2012, pp. 19 25 Serials Publiations ISSN: 0973-6786 Naïve ayesian Rough Sets Under Fuzziness G. GANSAN 1,. KRISHNAVNI 2 T. HYMAVATHI 3 1,2,3 Department of Mathematis,

More information

COMBINATION OF INTERSECTION- AND SWEPT-BASED METHODS FOR SINGLE-MATERIAL REMAP

COMBINATION OF INTERSECTION- AND SWEPT-BASED METHODS FOR SINGLE-MATERIAL REMAP Combination of intersetion- and swept-based methods for single-material remap 11th World Congress on Computational Mehanis WCCM XI) 5th European Conferene on Computational Mehanis ECCM V) 6th European

More information

Assignment allocation and simulated annealing algorithms for cell formation

Assignment allocation and simulated annealing algorithms for cell formation IIE Transations (1997) 29, 53±67 Assignment alloation and simulated annealing algorithms for ell formation GAJENDRA KUMAR ADIL, DIVAKAR RAJAMANI and DOUG STRONG Department of Mehanial and Industrial Engineering,

More information

35 th Design Automation Conference Copyright 1998 ACM

35 th Design Automation Conference Copyright 1998 ACM Using Reongurable Computing Tehniques to Aelerate Problems in the CAD Domain: A Case Study with Boolean Satisability Peixin Zhong, Pranav Ashar, Sharad Malik and Margaret Martonosi Prineton University

More information