Address Register Assignment for Reducing Code Size

Size: px
Start display at page:

Download "Address Register Assignment for Reducing Code Size"

Transcription

1 Address Register Assignment for Reducing Code Size M. Kndemir 1, M.J. Irwin 1, G. Chen 1, nd J. Rmnujm 2 1 CSE Deprtment Pennsylvni Stte University University Prk, PA {kndemir,mji,guilchen}@cse.psu.edu 2 ECE Deprtment Louisin Stte University Bton Rouge, LA jxr@ee.lsu.edu Abstrct. In DSP processors, minimizing the mount of ddress clcultions is criticl for reducing code size nd improving performnce since studies of progrms hve shown tht instructions tht mnipulte ddress registers constitute significnt portion of the overll instruction count (up to 55%). This work presents compiler-bsed optimiztion strtegy to reduce the code size in embedded systems. Our strtegy mximizes the use of indirect ddressing modes with post-increment nd post-decrement cpbilities vilble in DSP processors. These modes cn be exploited by ensuring tht successive references to vribles ccess consecutive memory loctions. To chieve this sptil loclity, our pproch uses both ccess pttern modifiction (progrm code restructuring) nd memory storge reordering (dt lyout restructuring). 1 Introduction Address clcultions ply key role in determining code qulity in DSP processors since instructions tht mnipulte ddress registers constitute significnt portion of overll instruction count. For exmple, it ws found tht for set of codes from MediBench suite ( populr benchmrk suite for embedded systems) running on Motorol s DSP56000 processor, nerly 55% of the instructions re used to mnipulte ddress registers through explicit lods nd stores [15]. Consequently, optimizing ddress code genertion by eliminting s mny explicit ddress register lods s possible cn result in significnt improvements in code size nd performnce. Note tht code size improvements re very importnt not only becuse code size directly determines the cpcity of the customized instruction memory (hence, its cost) in n embedded system, but lso becuse smller instruction memory mens lower power consumption. Address clcultions in modern DSPs such s NEC 7701, Motorol DSP56000, Anlog Devices ADSP21xx, nd Texs Instruments TMS320C5x re done in ddress genertion units (AGUs). An AGU contins number of G. Hedin (Ed.): CC 2003, LNCS 2622, pp , c Springer-Verlg Berlin Heidelberg 2003

2 274 M. Kndemir et l. ddress registers, the contents of which cn be incremented or decremented in prllel with the ongoing ctivity in the min dtpth. The instruction formt for such processors llows one to encode CPU ctivity nd postincrement/decrement of n ddress register in single instruction. Thus, using post-increment/decrement opertions insted of explicit ddress register lods enhnces on-chip prllelism (performnce) nd reduces code size (s no seprte instruction is necessry to updte the ddress register). Cintr nd Arujo [3] report tht lthough some of the register increment/decrement opertions cn be ccommodted in VLIW instruction slots, modern VLIW DSP rchitectures lso hve uto-increment nd uto-decrement modes; this is becuse exploiting these modes effectively sves one instruction slot which might be used for some other opertion. An optimizing compiler cn exploit these post-increment/decrement opertions by performing computtion nd dt trnsformtions s well s by ssigning vribles to ddress registers optimlly. Consider the following scenrio where three sclr vribles c,, nd b re to be ccessed in the order c,,b in given DSP code. Also ssume tht the AGU in question hs single ddress register tht cn be post-incremented/decremented by 1 nd tht these three vribles re stored in memory in the order, b, c. The code for implementing this sequence of ccesses uses three steps. The first step lods the ddress register with the ddress of c (the first vrible in the ccess sequence). To ccess the vrible next, the second step lods the ddress of into the ddress register. In ccessing the vrible, post-increment opertion cn be used to modify the content of the ddress register so tht it points to b which will be ccessed next. In the finl step, the vrible b is ccessed. Overll, we need to perform two explicit ddress register lods. In ddition to being wste of mchine cycles, this increses code size nd thereby the instruction memory size, which is t premium in mny embedded designs. We cn reduce this overhed of explicitly updting the ddress register by using better choice of the order in which the vribles re stored in dt memory. Insted of the storge order, b, c in the previous scenrio, we cn eliminte one of the two ddress register lods if we use the storge order c,, b. In this cse, first, we lod the ddress register with the ddress of c nd post-increment the ddress register to mke sure tht, fter the execution of the sttement tht ccesses c, it will point to the next loction (which contins ). Next, we ccess the vrible, nd use gin post-increment to mke the ddress register point to the vrible b. Finlly, we ccess the vrible b. This problem of determining the most suitble storge order of vribles is clled the offset ssignment problem nd hs been prtilly ddressed by Brtley [1], Lio et l. [10,11], nd others (e.g., [9,15]). Bsiclly, these solutions first determine suitble storge order for vribles nd then ssign ddress registers to these vribles to minimize the number of ddress register lods. In essence, since we re determining the contents of the ddress register(s) before ech vrible ccess, this problem cn lso be defined s the ddress register ssignment problem.

3 Address Register Assignment for Reducing Code Size 275 A mjor limittion of the techniques proposed so fr for the ddress register ssignment problem is tht they either focus only on modifying the storge order of vribles (e.g., [10,11]) or only on modifying the intr-sttement ccess pttern using commuttivity nd ssocitivity trnsformtions (e.g., [13]). In this work, we present frmework tht considers both computtion-bsed (intrsttement nd inter-sttement) trnsformtions nd storge-bsed optimiztions in unified setting for reducing the code size of given ppliction; tht is, our min objective is to sve the code spce. More specificlly, this work mkes the following contributions. (1) It presents n lgorithm bsed on ccess pttern modifiction tht mkes efficient use of post-increment/decrement ddressing modes in DSPs. This lgorithm ssumes fixed storge order for vribles nd restructures the code to exploit these ddressing modes. This lgorithm is more generl thn the one proposed in [13] s it considers both intr-sttement nd inter-sttement trnsformtions. (2) It gives n lgorithm tht modifies n ccess pttern (ccess sequences), given prtilly-fixed storge order. A prtilly-fixed storge order is storge order in which the memory loctions of only subset of the vribles re fixed. (3) It combines these two lgorithms with the storge order-bsed optimiztion strtegy (i.e., offset ssignment) developed by Lio et l. [11], nd presents unified pproch (which is demonstrted to be superior) to hndle the offset ssignment problem for given control flow grph. 2 Review of Offset Assignment The offset ssignment problem [10] is one of ssigning frme-reltive offset (i.e., storge loction) to ech vrible in the code in order to minimize the number of ddress rithmetic instructions (tht is, the instructions tht lod new vlue to the ddress register) required to execute the code. The cost of n offset ssignment is defined s the number of such instructions. Given code sequence, we cn define unique ccess sequence for it. In n opertion = b op c, where op is some binry opertor, the ccess sequence is given by b, c,. The ccess sequence for n ordered set of opertions is simply the conctented ccess sequences for ech opertion tken in order. For exmple, for the code frgment = c + d d = d + c + b + c + the ccess sequence is c, d,, d, c, b, c,, d, ssuming tht ddition is left-ssocitive. Let us ssume tht the vribles in this code frgment re stored in memory in the following order:, b, c, d. The cost of given storge sequence (offset ssignment) is the number of consecutive ccesses (in the ccess sequence) for which the ccessed vribles re not ssigned to djcent loctions in memory. Therefore, the cost of the offset ssignment given bove is four s there re four trnsitions in the ccess sequence between non-djcent vribles.

4 276 M. Kndemir et l. The objective of the offset ssignment problem is to determine storge order for vribles such tht the cost will be minimum. Lio [10] showed tht the offset ssignment problem is equivlent to the Mximum Weighted Pth Cover (MWPC) problem nd proved tht it is NP-complete. His heuristic solution ws lter improved by Leupers nd Mrwedel [9] who presented tie-breking strtegy for chieving better storge ssignments. 3 Computtion Restructuring for Fully Fixed Storge Sequence Code size reduction using ddress register ssignment is chieved by mking the ccess sequence (i.e., the order in which the vribles re ccessed) nd the storge sequence (i.e., the storge order of the vribles in memory) comptible. In prctice, it is possible to do either of the following: modify the ccess sequence for fixed storge sequence, or modify the storge sequence for given fixed ccess sequence. In this section, we discuss strtegy tht dopts the former pproch s opposed to Lio s scheme [10] which tkes the ltter pproch. In this work, we pply code trnsformtions to high-level intermedite representtion (IR) of the code where optimiztions such s conventionl (e.g., grph coloring-bsed) register lloction nd common subexpression elimintion hve lredy been performed. This IR hs sttements very similr to high-level source sttements. In the reminder of this presenttion, when we mention sttement, we ctully refer to this IR-level sttement. However, to mke the presenttion cler, we use source-level (C-like) sttements. Consider, sttement of the following form = b + c Let us ssume tht the mchine hs single ddress register nd tht the storge sequence is c, b,. The ccess sequence in this exmple is b, c,, which is different from the storge sequence. As result of this, going from vrible c to vrible incurs n explicit ddress register lod (since c nd re not consecutive in the storge sequence, so we cnnot use post-increment/decrement mode). Lio s pproch [10] fixes this problem by modifying the storge sequence from c, b, to b, c,. Chnging the storge sequence is vible option provided tht the vribles hve not yet been ssigned to storge loctions, or (if they hve lredy been ssigned to loctions) the cost of trnsforming the storge sequence from one form to nother (which my require copying resulting in dditionl memory requirements) does not outweigh its benefits. An ccess pttern-oriented pproch, on the other hnd, cn optimize this code by trnsforming this sttement into = c + b The new ccess sequence is c, b, which is the sme s the storge sequence. Note tht, for this exmple, just pplying commuttivity trnsformtion (n intr-sttement trnsformtion) ws sufficient to obtin the desired result. Let us consider the following code frgment with two sttements.

5 Address Register Assignment for Reducing Code Size 277 = c + e b = c + f We ssume single ddress register nd storge sequence of, b, c, d, e, f. It should be noted tht ech vrible ccess in this code frgment (under the ssumed storge sequence) will require lod to the ddress register. A storge lyout-oriented scheme would chnge the storge sequence of the vribles, but this my be too costly if the vribles hve lredy been ssigned to storge loctions (for exmple, during the optimiztion of different set of sttements tht mnipulte the sme vribles.) On the other hnd, commuttivity trnsformtion would led to = c + e b = f + c Note tht this code frgment (which is obtined from the previous one by pplying commuttivity trnsformtion to the right-hnd side of the second ssignment sttement) elimintes one of the explicit lods to the ddress register. Tht is, in going from c to b in the second ssignment sttement, we cn mke use of the post-decrement mode (s these two vribles re consecutive in memory). An inter-sttement trnsformtion, on the other hnd, cn generte the following progrm frgment b = f + c = c + e Note tht this code frgment is obtined from the originl one by interchnging the order of two sttements nd by pplying commuttivity trnsformtion to one of the sttements. In this cse, two vrible ccesses (i.e., going from c to b in the first sttement, nd going from b in the first sttement to c in the second sttement) cn be stisfied using post-increment/decrement modes. This is simple exmple tht illustrtes the benefit of inter-sttement optimiztion. However, there re some cses where it is not possible to interchnge the order of sttements due to dt dependency constrints. For exmple, in the code frgment = + c c = c + 1 interchnging two sttements would give wrong result s the vlue used for c in = + c would be different thn the one in the originl cse. Here, storge-oriented pproch (e.g., [10]), on the other hnd, could store nd c in consecutive loctions in memory, thereby leding to the effective use of postincrement nd decrement ddressing modes. The preceding exmples show tht neither storge bsed techniques nor ccess sequence (computtion) bsed techniques (intr nd inter sttement trnsformtions) dominte the other, nd unified frmework tht uses both the techniques my be needed for better results. In the rest of this section, we formulte the computtion oriented trnsformtions using grph-bsed representtion.

6 278 M. Kndemir et l. 3.1 Terminology We represent progrm using control flow grph (CFG) which is directed grph in which ech node denotes bsic block nd n edge between two bsic blocks indictes tht there is possibility tht the flow of control (during execution) my be trnsfered from one of these bsic blocks to the other. A bsic block cn be defined informlly s stright-line sequence of sttements tht cn be entered only t the beginning nd exited only t the end [16]. Consider grph G =(V,E) where V is the set of nodes (vertices) nd E is the set of edges. A pth cover (or cover) C of given grph G(V,E) is set of pths such tht every node in V is incident t some edge belonging to the chosen set of pths. In other words, we cn think of cover C(V,E ) s subgrph of G(V,E) where V = V nd E E. The length of pth is the number of edges in the pth, nd the length of cover is the sum of the number of edges of ech constituent pth. A pth tht hs the mximum length (mong ll pths in the cover) is referred to s the longest pth. 3.2 Lyout Trnsition Grph Given bsic block, we use lyout trnsition grph (LTG) to show the connections between elements tht re stored consecutively in memory. The lyout trnsition grph of bsic block is directed grph LT G(V,E), where ech node v i represents vrible tht occurs in the bsic block; nd directed edge e =(v i,v j )fromnodev i tonodev j indictes tht the vrible represented by v i is stored (in memory) next to the vrible represented by v j. Whether v i comes before v j in the storge order or fter v j is not importnt for the purposes of this work (s long s they re consecutive in memory). An LTG lso contins n edge from v i to v j if these two nodes represent the occurrences of the sme vrible. Note tht the vrible ccess pttern of progrm touches ll the nodes of the corresponding LTG. For ese of exposition, we divide given LTG into lyers, ech lyer corresponding to sttement in the bsic block. If the bsic block contins K sttements, ech vrible v i in the jth sttement from top (denoted s j where 1 j K) is ssumed to belong to the vrible set of s j ; we express this s v i s j. We will use s j to denote both the sttement nd its vrible set, where there is no confusion. A given vrible set s i cn lso be divided into two logicl subsets: one tht contins the vrible on the left hnd side (LHS), nd one tht contins the vribles on the right hnd side (RHS). For vrible set s i, the first subset is denoted by s il nd the second subset is denoted by s ir. To illustrte these concepts, consider the LTG shown in Figure 1(i) for the sttement = b + c, ssuming tht the storge sequence is c, b,. There is bi-directionl edge between c nd b (i.e., we hve directed edge from c to b nd one from b to c), nd nother bi-directionl edge between b nd. Lbeling this sttement by s 1,wehves 1L = {} nd s 1R = {b, c}. Note tht the ccess sequence for this sttement is b, c, s shown in Figure 1(iii)

7 Address Register Assignment for Reducing Code Size 279 using dshed rrows. It should lso be noted tht new ccess sequence cn be obtined by trversing the edges in the LTG in different mnner. If we strt from the vrible c, we cn first trverse the edge (c,b) nd then the edge (b,), s depicted in Figure 1(iv). Note tht this new trversl corresponds to trnsforming the sttement from = b + cto = c + b(i.e., commuttivity trnsformtion). We need to emphsize tht it my not lwys be possible to trnsform sttement bsed on its LTG. Further, not every trversl of the edges in the LTG is legl. For exmple, going from to b using the edge (,b) is not cceptble (see Figure 1(v)) s ll the right-hnd side references should be ccessed before the left hnd side reference. We cn prevent some of the trnsitions such s this by eliminting edges from the LTG tht would led to uncceptble or infesible trnsformtions. For exmple, in order to prevent trnsformtion from to b, we eliminte the directed edge from to b s shown in Figure 1(ii). Obviously, given the two legl trversls in Figures 1(iii) nd (iv), we prefer the one in Figure 1(iv) s ll trnsitions between vribles in this figure re between consecutive memory loctions, mening tht we cn use post-increment/decrement mode for these trnsitions. Another wy of expressing this is tht both the edges visited during the trversl in Figure 1(iv) belong to the LTG given in Figure 1(ii). On the other hnd, one of the trnsitions tken during the trversl in Figure 1(iii) (the trnsition from c to ) does not hve ny corresponding edge in the LTG. Therefore, the objective of trversl must be minimizing the number of trnsitions tht do not correspond to n edge in the LTG. We will formlize this concept lter. Now, let us consider the LTG given in Figure 1(vi) for the following progrm frgment. = c + e b = c + f It is ssumed here tht the storge sequence is, b, c, d, e, f. As before, trversl of the nodes of this LTG corresponds to specific ccess sequence. The defult ccess sequence is c, e,, c, f, b s shown in Figure 1(viii). Note tht different trversl of the nodes corresponds to trnsformtion of the code sequence. Here, n importnt point should be noted. In trversing the nodes (or edges), we hve restriction in the sense tht once we re in sttement we need to finish ll the nodes in the sttement before moving to node in nother sttement. Tht is, we re not llowed to go from node in s kr tonodeins k R if k k, ssuming tht ech sttement hs left hnd side vrible. The preceding discussion indictes tht we need some restrictions on the trversl order of the nodes in the LTG. For this purpose, we use modified form of the LTG clled constrined lyout trnsition grph (CLTG), nd perform our trversl on this grph. Simply, in those cses where the compiler cn detect tht vrible v i in sttement s k cnnot be ccessed immeditely fter the vrible v j in sttement s k (s k nd s k re not necessrily distinct here), the corresponding edge (if ny) from v j to v i in the LTG should be removed when constructing

8 280 M. Kndemir et l. the CLTG (Insted of deleting edges from the LTG to construct the CLTG, it is possible to directly construct the CLTG using the necessry edges, lbeit using somewht more complicted rules. The correctness of the lgorithms is not ffected by the choice of either method to construct the CLTG). A constrined lyout trnsition grph, written CLTG(V,E ), is subgrph of the LT G(V,E) such tht V = V nd E contins ll the edges in E except those tht cn led to n incorrect or infesible code trnsformtion. The construction of the CLTG subsumes both the intr-sttement constrints (i.e., evlution rules tht need to be obeyed when processing n RHS expression) nd the inter-sttement constrints (i.e., dependence nd other constrints between sttements). For exmple, CLTG cnnot contin n edge between the vrible occurrences of the right hnd sides of two different ssignment sttements. In mthemticl terms, n edge e =(v i,v j ) E does not belong to E if v i s kr nd v i s k R, where k k. Figure 1(vii) depicts the CLTG for the LTG in Figure 1(vi). Note tht the defult trversl (ccess sequence) given in Figure 1(viii) does not use ny of the edges in the underlying CLTG. Consequently, n explicit ddress register lod is necessry prior to ech vrible ccess. Now consider the trversl given in Figure 1(ix). In this cse, the new ccess sequence corresponds to trnsformtion in which the right hnd side of the second sttement is trnsformed using commuttivity. Note tht one of the trnsitions in this trversl (i.e., the one from c to b) hs corresponding edge in the CLTG given in Figure 1(vii). Finlly, let us focus on the trversl given in Figure 1(x). The trnsformtion corresponding to this trversl is one of interchnging the order of the two sttements nd pplying the commuttivity trnsformtion to one of the sttements. In this trversl, two trnsitions, one going from c to b nd the other going from b to c hve corresponding edges in the CLTG. These two exmples in Figure 1 show tht the preferred trversl must mximize the number of trnsitions tht hve corresponding edges in the underlying CLTG. In other words, it should minimize the number of trnsitions tht do not hve corresponding edges in the CLTG. It should be noted, however, tht lthough given CLTG shows possible legl trnsitions between nodes, it is still possible to generte n illegl trversl (ccess sequence) on the CLTG. For exmple, by itself, ccessing two nodes v i nd v j consecutively my not brek ny dependence; however, fter this modified ccess sequence, it my not be possible to generte legl code due to new restriction (in the ccess order) resulting from the sid trnsition between v i nd v j. 3.3 Trversing the CLTG We formulte the problem of modifying given bsic block code for effective use of the ddress register(s) s one of determining pth cover nd trversl order in the CLTG. We ssume for now tht the AGU hs only single ddress register.

9 Address Register Assignment for Reducing Code Size 281 (i) b c b c (ii) (iii) b c (iv) b c (v) b c (vi) c e b c f (vii) c e b c f (viii) c e b c f (ix) b c c e f (x) c e b c f Fig. 1. (i-v) LTG, CLTG, nd different trversls for n ssignment sttement under the storge sequence c, b,. (vi-x) LTG, CLTG, nd different trversls for progrm frgment under the storge sequence, b, c, d, e, f. Leglity. In order to generte correct code (tht is, to preserve the originl semntics of the bsic block), we impose the following conditions on the trversl order: (1) Ech node in the LTG (i.e., vrible occurrence in the bsic block) should be visited. (2) For given lyer in the LTG corresponding to the sttement s k, ll nodes in s kr should be visited before ny node in s kl. (3) Once the trversl reches the lyer corresponding to the sttement s k,it should finish ll the vribles in tht lyer (i.e., the set s kl s kr ) before moving to nother lyer. (4) All the dt dependences nd other restrictions such s ltency constrints or expression evlution constrints should be observed. Condition (1) indictes tht ech vrible should be touched (by ny legl execution of the code). We enforce Condition (4) by ensuring tht we do not mke trnsition from v i s k to v j s k (even if v i nd v j re consecutive in memory) when there is dt dependence from s k to s k. To enforce Condition (2), we do not llow trnsition from the node v i s kl tonodev j s kr.to enforce Condition (3), we disllow trnsitions between node v i s kr nd ny node v j s k R for k k. A trnsition from node v i s kl tonodev j s k L (where k k ) is llowed only if s k hs no vribles on the right hnd side (i.e., s k R = ). Also, there cnnot be trnsition from node v i s kr tonode

10 282 M. Kndemir et l. v j s k L (where k k ) unless s k hs no vrible on the right hnd side (i.e., s k R = ) nd s k hs no LHS vrible, which cnnot occur in our frmework. (i) (ii) c b c b f d e f d e d d c f c f d d f d d f (iii) c b f d e * * d * * c f * d d * f * * (iv) c b f d e * c * f 4th pth (v) 1st pth c b f d e d d 5th pth c f 3rd pth d d * f * d d f 2nd pth Fig. 2. (i) LTG nd (ii) CLTG for given bsic block. (iii) Defult ccess sequence. (iv) Optimized ccess sequence. (v) Exmple pths in the CLTG. Profitbility. The objective of the trversl of the nodes in the CLTG is to minimize the cost of the trversl, which is defined s the number of trnsitions from node v i tonodev j such tht v i nd v j re not consecutive in the storge sequence (i.e., there is no edge (v i,v j ) in the CLTG) for ll i nd j. It should be noted tht storge sequence imposes constrints on the CLTG. If trnsition from v i to v j does not use n edge in the CLTG, this mens tht post-increment or post-decrement cnnot be used for this trnsition; thus, new vlue should be loded in the ddress register (using n explicit lod instruction), thereby incresing the code size. As result, the cost of trversl cn be viewed s

11 Address Register Assignment for Reducing Code Size 283 the number of trnsitions in the ccess sequence tht do not use n edge in the CLTG. Thus, the ddress register ssignment problem cn be re-expressed s determining trversl of the nodes in the CLTG subject to the four leglity conditions listed bove tht minimizes the number of trnsitions tht do not correspond to n edge in the CLTG. It cn be shown tht this problem is NP-complete; but, we omit the proof due to lck of spce. Let us now concentrte on the lrger bsic block given below ssuming storge sequence of, b, c, d, e, f. c = + b f = d - e - 2 = + 3d c = 2f + 4 d = d + f + Figures 2(i) nd (ii) show the LTG nd CLTG, respectively, for this code frgment under the ssumed storge sequence. Note tht, in going from the LTG to the CLTG, mny edges re dropped s they re not possible for ny legl trversl. Figure 2(iii) shows the defult ccess sequence (i.e., without ny optimiztion). This ccess sequence hs cost of eight, nd the trnsitions tht contribute to this cost re mrked using the symbol *. Our pproch, on the other hnd, results in the ccess sequence (trversl) given in Figure 2(iv). We see tht the cost of this ccess sequence is four (gin, the trnsitions tht contribute to the cost re mrked using the symbol * ). In other words, we re ble to eliminte four ddress register lods in the code. This trversl corresponds to the following trnsformed progrm: c = + b f = d - e - 2 c = 2f + 4 = 3d + d = + f + d Note tht this optimized code is obtined from the originl one through one sttement reordering (inter-sttement trnsformtion) nd number of intrsttement trnsformtions. The Algorithm nd Trnsformtions. We now present n lgorithm tht tkes s input CLTG nd genertes s output trversl (n ccess sequence) nd ll the necessry (inter-sttement nd intr-sttement) trnsformtions to obtin this ccess sequence. Given CLTG, the lgorithm first detects the longest directed pth (i.e., the pth tht contins the mximum number of edges in the sme direction). 1 It then trnsforms the portion of the CLTG (which contins subset of the sttements in the originl bsic block) in ccordnce with 1 Note tht the longest pth detection problem is hrd problem in generl. Here, we re employing heuristic.

12 284 M. Kndemir et l. this longest pth. Finding the longest pth in given directed grph is strightforwrd, nd tkes O(N 3 ) time, where N is the number of nodes in the grph [5]. Trnsforming the progrm code in ccordnce with the longest pth is more chllenging. Consider the bstrct CLTG in Figure 3 nd the longest pth shown. Note tht ech lyer in the CLTG is lbeled with different sttement id. The desired ccess sequence here is, c, h, d, f, g, b, e. To chieve this ccess sequence, the following trnsformtions need to be performed: (1) The vrible should be mde the lst vrible ccessed on the RHS of the sttement s 1 ; (2) In sttement s 2 : (i) the vrible h should be mde the first vrible ccessed on the RHS; (ii) the vrible h should be mde to immeditely precede the vrible d; (3) Sttement s 4 should be mde to immeditely follow the sttement s 2 ; nd (4) In Sttement s 4 : (i) the ccess of vrible b should be mde to immeditely follow the vrible g; (ii) the vrible e should be mde to immeditely follow the vrible b. In ddition to these trnsformtions, the trnsformed progrm should not modify the following properties of the input code (CLTG): (1 ) Sttement s 2 immeditely follows sttement s 1. (2 ) d is the lst vrible ccessed on the RHS of Sttement s 2. (3 ) g is the first vrible ccessed on the RHS in Sttement s 4. If the compiler cn find series of trnsformtions to stisfy ll these constrints, we chieve the best possible ccess sequence (for this pth). In mny cses, however, this my not be possible due to inconsistencies between the requirements given bove, or due to sitution tht does not involve the vribles on the longest pth. An exmple of the former is the inconsistency between conditions (2.i), (2 ), nd (2.ii) bove. Tht is, if we mke the vrible h the first vrible on the RHS of the sttement s 2 nd insist on keeping the vrible d s the lst vrible on the RHS, it is not possible to ccess h nd d successively s there re two more vribles on the RHS. We ssume tht these other vribles re different from those lbeled in the figure. An exmple of the second type of difficulty is the possibility tht it my not be legl to ccess the sttement s 4 immeditely fter the sttement s 2 (s required by the condition(3)). This my occur for exmple if the sttement s 3 writes vrible x (ssumed to be different vrible from the ones shown in the figure) tht is subsequently red by the sttement s 4. Although it my not lwys be possible to chieve ll of the desired trnsformtions, our pproch ttempts to chieve s mny of the desired trnsformtions s possible. Note tht this strtegy helps to use s mny edges in the CLTG s possible. After the longest pth hs been determined nd the portion of the CLTG tht contins the longest pth (tht is, subset of the sttements in the originl bsic block) hs been trnsformed, our pproch continues by selecting the second longest pth nd trnsforming the relevnt prts of the CLTG. A specil ttention is pid to ensure tht we do not modify ny prts of the bsic block

13 Address Register Assignment for Reducing Code Size 285 s 1 c s 2 f h d s 3 s 4 g e b Fig. 3. An bstrct CLTG nd the longest pth. tht hve lredy been trnsformed in ccordnce with longer pth considered erlier. In this wy, our pproch selects the next longest pth in ech step nd trnsforms the relevnt portions of the bsic block. The process stops when it is not possible to trnsform the bsic block ny further (without distorting the previous trnsformtions). In cse we hve two pths of the sme length, the current implementtion fvors the one tht leds to miniml modifiction to the originl code. In the exmple in Figure 2, following the construction of the CLTG shown in Figure 2(ii), our pproch determines the longest pth mrked s the 1 st pth in Figure 2(v). Bsed on this pth, it builds n ccess sub-sequence, b, c, d, e, f, f. This sub-sequence completely specifies the trnsformtions required for three of the five sttements in the code (i.e., the first, second, nd fourth sttements in the originl code). Note lso tht the trnsformtions performed long this pth include n inter-sttement trnsformtion. Next, it finds the pth,, (mrked s the 2 nd pth). Note tht this pth fixes the ccess sequence for the third sttement in the originl code completely s d,,. It lso specifies tht the vrible should be the first vrible ccessed in fifth sttement. After tht, the pproch selects the pth c, d, d. The (c,d) prt of this pth sys tht the fifth sttement should follow the fourth sttement in the trnsformed progrm, but this is not possible s the fourth sttement hs lredy been trnsformed, nd it now (in the trnsformed code) comes before the third sttement (in the originl progrm). The (d,d) prt of the pth, on the other hnd, is fesible, nd indictes tht d should be the lst vrible ccessed in the fifth sttement. The next pth is c, d; but, the trnsformtion implied by this is not possible. The lst pth is the one between c nd d (mrked s the 5 th pth in the figure). It implies tht d should be the first vrible ccessed in the third sttement, nd the third nd fourth sttement should be interchnged. At this point, the lgorithm hs trversed ll the pths. It next visits ech sttement, nd fixes the ccess order for the vrible whose order hs not been fixed yet. It visits the fifth sttement (in the originl code) nd mkes f the second vrible ccessed on the RHS. The finl ccess sequence is shown in Figure 2(iv).

14 286 M. Kndemir et l. 4 Computtion Restructuring: Prtilly Fixed Storge Sequence Cse So fr, we hve ssumed tht the storge sequence (storge pttern) of vribles is fixed completely. Tht is, storge loction is ssigned to ech progrm vrible. In this section, we describe how to optimize n ccess sequence when only subset of the vribles hve fixed memory loctions. This is clled the prtilly fixed storge. Specificlly, given prtilly fixed storge pttern of bsic block, we ddress two subproblems: (1) Determining the best ccess sequence for ll vribles in the bsic block, nd (2) Determining the storge sequence for the vribles in the bsic block whose memory loctions re yet to be determined. This problem is importnt becuse the compiler employs it during procedurewide optimiztion (s will be discussed in the next section). Our pproch to the problem involves the following three steps: (1) Determine the best ccess (possibly prtil) pttern for the prtil storge order given, (2) Determine the storge sequence for the vribles whose memory loctions re yet to be determined, nd (3) If there is further flexibility, then determine the best ccess pttern for the portions of the bsic block tht involves the vribles whose storge sequence ws determined in Step (2). Consider the following progrm frgment ssuming single ddress register nd prtilly fixed storge sequence of e, b, d. e = e + d = d + c f = 3c + b = ( * c) + ( * g) Figure 4(i) shows the CLTG for this bsic block, under the given prtil storge sequence. Clerly, there is just one pth in this cse. Trnsforming the code in ccordnce with this pth gives us: e = d + e f = b + 3c = d + c = ( * c) + ( * g) Note tht this trnsformtion (which corresponds to Step (1) bove) involves one sttement interchnge nd one commuttivity trnsformtion. In the next step (which is Step (2) bove), the compiler ttempts to determine storge sequence for the vribles whose storge loctions re yet to be determined. We chieve this using modified version of Lio s heuristic [10]. Lio summrizes the ccess sequence using grph clled the ccess grph. In this grph, ech vrible is represented by node nd weighted edge between two vribles corresponds to the number of trnsitions between them. Lio then runs n lgorithm on this

15 Address Register Assignment for Reducing Code Size 287 grph to select pth cover, with no node hving more thn two selected edges incident on it. The vribles represented by the nodes connected by selected edge re ssigned to consecutive memory loctions. The objective is to mximize the totl weight of the edges selected (which corresponds to cpturing the most frequent trnsitions). We modify this heuristic s follows. Let L = {v i } be the set of ll vribles v i tht hve lredy been ssigned to consecutive storge loctions. Let us ssume for now tht there is only single such set. We use b L to denote the first (strt) node of L, nd t L to denote the lst (terminl) node. Ech node in the modified ccess grph corresponds to either single node v j such tht v j / Lor block node v L tht represents L. There exists n edge between v j (/ L) nd v L if nd only if there is n edge between v j nd b L or n edge between v j nd t L. We lso keep trck of whether the edge between v j nd v L is due to (incident on) b L or t L. Figure 4(ii) shows this modified ccess grph for our exmple. Note tht this ccess grph is constructed by tking into ccount the trnsformtions (both inter-sttement nd intr-sttement) done in the previous step. Next, we run Lio s heuristic [10] on this ccess grph. Figure 4(iii) show the mximum weight cover detected by the heuristic. Afterwrds, we determine the complete storge order (sequence) for the vribles. In our exmple, this sequence is e, b, d, f, c,, g. Although it does not occur in this exmple, in some cses, the compiler my hve dditionl scope, nd my pply Step (3) bove to further modify the ccess pttern to ccommodte the needs of the vribles whose storge loctions hve been determined in Step (2). Note tht lthough we explin this strtegy ssuming tht there is single block node (L), it is strightforwrd to extend the pproch to multiple block nodes. Note lso tht since our pproch is essentilly bsic block oriented, we cn expect its effectiveness to increse when it is used in conjunction with techniques tht increse bsic block sizes (e.g., superblocks/hyperblocks). (i) e e d (ii) (iii) d c f c b c ebd c 1 f 2 g ebd c f g Fig. 4. (i) An exmple CLTG. (ii) An ccess grph for prtilly fixed storge sequence. (iii) Selected mximum weight cover. 5 Intr-procedurl Optimiztion Strtegy We now present unified strtegy tht employs both ccess sequence nd storge sequence trnsformtions to mke effective use of ddress registers. The pproch

16 288 M. Kndemir et l. works on representtion clled weighted control flow grph (WCFG), which is CFG with weighted nodes (bsic blocks). A node weight specifies the number of times the corresponding bsic block is entered (dynmic execution frequency). This is typiclly clculted by considering the execution frequencies of edges nd brnch probbilities. Our pproch to this globl (procedure-wide) optimiztion problem is s follows. After determining the execution frequencies of bsic blocks nd lbeling them, we visit bsic blocks one-by-one, nd optimize bsic block completely before moving to the next one. The optimiztion order is determined by the weights (i.e., bsic block lbels). The first (most frequently executed) bsic block is optimized using Lio s heuristic (explined in Section 2). After optimizing this bsic block, we determine storge sequence for ll the vribles ccessed by this bsic block. Note tht this step determines only prtil storge sequence (clled the storge subsequence) s the vribles ccessed by this block form, in generl, subset of ll the vribles declred in the progrm. Then, we move to the next most frequently executed bsic block, nd optimize it using the pproch explined in Section 3 or Section 4 depending on whether ll the vribles mnipulted by this bsic block hs lredy fixed memory (storge) loctions or not. After optimizing this bsic block, new storge subsequences (for the vribles ccessed by this second most frequently executed bsic block, but not ccessed by the most frequently executed bsic block) re determined. Afterwrds, we move to the third most frequently executed bsic block nd, in optimizing it (using the techniques given in Section 3 nd Section 4), we tke into ccount ll the storge sequences determined so fr. In this wy, our pproch hndles the bsic blocks one-byone, nd in optimizing ech of them, it considers the storge sequences found so fr. If t given point, the storge loction for ech vrible in the code is fixed (i.e., complete storge sequence is determined), the remining bsic blocks re optimized using the technique discussed in Section 3. At the end of the process, if the storge sequences found do not form single connected component, they re mde so using post-processing pss. 6 Summry In this work, we hve presented compiltion frmework tht employs both progrm restructuring nd storge order optimiztions to reduce the size of the generted code for embedded processors by eliminting s mny explicit ddress register lods s possible. Reducing code size is extremely importnt s in mny embedded systems reduction in code size mens reduction in memory size. Work in progress includes the investigtion of different wys of combining storge lyout nd code restructuring trnsformtions, incorporting prtitioning of vribles mong different ddress registers, nd studying the impct of SSA trnsformtion on code size. We lso pln to mke experiments with different rchitectures s different instruction set rchitectures (ISA) cn led to different code sizes [6].

17 Address Register Assignment for Reducing Code Size 289 References 1. D. Brtley. Optimizing stck frme ccesses for processors with restricted ddressing modes. Softwre Prctice nd Experience, 22(2): , Februry P. Briggs. Register Alloction vi Grph Coloring, Ph.D. Thesis, Computer Science Deprtment, Rice University, Houston, TX, April M. Cintr nd G. Arujo. Arry reference lloction using SSA-form nd live rnge growth. In Proc. ACM SIGPLAN 2000 Workshop on Lnguges, Compilers, nd Tools for Embedded Systems (LCTES), June 2000, Vncouver B. C., Cnd. 4. K. Cooper nd P. Schielke. Non-locl instruction scheduling with limited code growth. In Proc. Workshop on Lnguges, Compilers, nd Tools for Embedded Systems (LCPC), pp , June T. Cormen, C. Leiserson, nd R. Rivest. Introduction to Algorithms, MIT Press, Cmbridge, Msschusetts, J. W. Dvidson nd R. A. Vughn. The effect of instruction set complexity on progrm size nd memory performnce. In Proc. Interntionl Conference on Architecturl Support for Progrmming Lnguges nd Operting Systems (ASPLOS), 1987, pp M. Kndemir. A compiler technique for improving whole progrm loclity. In Proc. 28 th Annul ACM Symposium on Principles of Progrmming Lnguges (POPL), London, UK, Jnury, C. Lee, M. Potkonjk, nd W. Mngione-Smith. MediBench: A tool for evluting nd synthesizing multimedi nd communictions systems. In Proc. the 30th Interntionl Symposium on Microrchitecture (MICRO), pp , R. Leupers nd P. Mrwedel. Algorithms for ddress ssignment in DSP code genertion. In Proc. the Interntionl Conference on Computer Aided Design (ICCAD), pp , November S. Lio. Code Genertion nd Optimiztion for Embedded Digitl Signl Processors, Ph.D. Thesis. MIT, June S. Lio, S. Devds, K. Keutzer, S. Tjing, nd A. Wng. Storge ssignment to decrese code size. ACM Trnsctions on Progrmming Lnguges nd Systems (TOPLAS), 18(3): , S. S. Muchnick. Advnced Compiler Design nd Implementtion. Morgn Kufmnn Publishers, 1st edition, July A. Ro nd S. Pnde. Storge ssignment optimiztions to generte compct nd efficient code on embedded DSPs. In Proc. ACM SIGPLAN Conference on Progrmming Lnguge Design nd Implementtion (PLDI), My R. Wilson et l. SUIF: An infrstructure for reserch on prllelizing nd optimizing compilers. SIGPLAN Notices, 29(12):31 37, December S. Udynrynn nd C. Chkrbrti. Address code genertion for DSPs. In Proc. the 38th Design Automtion Conference (DAC), June M. Wolfe. High Performnce Compilers for Prllel Computing, Addison Wesley Publishing Compny, 1996.

Data Space Oriented Tiling

Data Space Oriented Tiling Dt Spce Oriented Tiling Mhmut Kndemir Deprtment of Computer Science nd Engineering The Pennsylvni Stte University University Prk, PA 16802, USA kndemir@cse.psu.edu Abstrct. An optimizing compiler cn ply

More information

In the last lecture, we discussed how valid tokens may be specified by regular expressions.

In the last lecture, we discussed how valid tokens may be specified by regular expressions. LECTURE 5 Scnning SYNTAX ANALYSIS We know from our previous lectures tht the process of verifying the syntx of the progrm is performed in two stges: Scnning: Identifying nd verifying tokens in progrm.

More information

Midterm 2 Sample solution

Midterm 2 Sample solution Nme: Instructions Midterm 2 Smple solution CMSC 430 Introduction to Compilers Fll 2012 November 28, 2012 This exm contins 9 pges, including this one. Mke sure you hve ll the pges. Write your nme on the

More information

Reducing Code Size Through Address Register Assignment

Reducing Code Size Through Address Register Assignment Reducing Code Size Through Address Register Assignment G. CHEN, M. KANDEMIR, and M. J. IRWIN Pennsylvania State University and J. RAMANUJAM Louisiana State University In DSP processors, minimizing the

More information

An Efficient Divide and Conquer Algorithm for Exact Hazard Free Logic Minimization

An Efficient Divide and Conquer Algorithm for Exact Hazard Free Logic Minimization An Efficient Divide nd Conquer Algorithm for Exct Hzrd Free Logic Minimiztion J.W.J.M. Rutten, M.R.C.M. Berkelr, C.A.J. vn Eijk, M.A.J. Kolsteren Eindhoven University of Technology Informtion nd Communiction

More information

Engineer To Engineer Note

Engineer To Engineer Note Engineer To Engineer Note EE-186 Technicl Notes on using Anlog Devices' DSP components nd development tools Contct our technicl support by phone: (800) ANALOG-D or e-mil: dsp.support@nlog.com Or visit

More information

Accelerating 3D convolution using streaming architectures on FPGAs

Accelerating 3D convolution using streaming architectures on FPGAs Accelerting 3D convolution using streming rchitectures on FPGAs Hohun Fu, Robert G. Clpp, Oskr Mencer, nd Oliver Pell ABSTRACT We investigte FPGA rchitectures for ccelerting pplictions whose dominnt cost

More information

Unit #9 : Definite Integral Properties, Fundamental Theorem of Calculus

Unit #9 : Definite Integral Properties, Fundamental Theorem of Calculus Unit #9 : Definite Integrl Properties, Fundmentl Theorem of Clculus Gols: Identify properties of definite integrls Define odd nd even functions, nd reltionship to integrl vlues Introduce the Fundmentl

More information

2014 Haskell January Test Regular Expressions and Finite Automata

2014 Haskell January Test Regular Expressions and Finite Automata 0 Hskell Jnury Test Regulr Expressions nd Finite Automt This test comprises four prts nd the mximum mrk is 5. Prts I, II nd III re worth 3 of the 5 mrks vilble. The 0 Hskell Progrmming Prize will be wrded

More information

Fig.25: the Role of LEX

Fig.25: the Role of LEX The Lnguge for Specifying Lexicl Anlyzer We shll now study how to uild lexicl nlyzer from specifiction of tokens in the form of list of regulr expressions The discussion centers round the design of n existing

More information

EECS150 - Digital Design Lecture 23 - High-level Design and Optimization 3, Parallelism and Pipelining

EECS150 - Digital Design Lecture 23 - High-level Design and Optimization 3, Parallelism and Pipelining EECS150 - Digitl Design Lecture 23 - High-level Design nd Optimiztion 3, Prllelism nd Pipelining Nov 12, 2002 John Wwrzynek Fll 2002 EECS150 - Lec23-HL3 Pge 1 Prllelism Prllelism is the ct of doing more

More information

Data Flow on a Queue Machine. Bruno R. Preiss. Copyright (c) 1987 by Bruno R. Preiss, P.Eng. All rights reserved.

Data Flow on a Queue Machine. Bruno R. Preiss. Copyright (c) 1987 by Bruno R. Preiss, P.Eng. All rights reserved. Dt Flow on Queue Mchine Bruno R. Preiss 2 Outline Genesis of dt-flow rchitectures Sttic vs. dynmic dt-flow rchitectures Pseudo-sttic dt-flow execution model Some dt-flow mchines Simple queue mchine Prioritized

More information

A New Learning Algorithm for the MAXQ Hierarchical Reinforcement Learning Method

A New Learning Algorithm for the MAXQ Hierarchical Reinforcement Learning Method A New Lerning Algorithm for the MAXQ Hierrchicl Reinforcement Lerning Method Frzneh Mirzzdeh 1, Bbk Behsz 2, nd Hmid Beigy 1 1 Deprtment of Computer Engineering, Shrif University of Technology, Tehrn,

More information

Complete Coverage Path Planning of Mobile Robot Based on Dynamic Programming Algorithm Peng Zhou, Zhong-min Wang, Zhen-nan Li, Yang Li

Complete Coverage Path Planning of Mobile Robot Based on Dynamic Programming Algorithm Peng Zhou, Zhong-min Wang, Zhen-nan Li, Yang Li 2nd Interntionl Conference on Electronic & Mechnicl Engineering nd Informtion Technology (EMEIT-212) Complete Coverge Pth Plnning of Mobile Robot Bsed on Dynmic Progrmming Algorithm Peng Zhou, Zhong-min

More information

ECE 468/573 Midterm 1 September 28, 2012

ECE 468/573 Midterm 1 September 28, 2012 ECE 468/573 Midterm 1 September 28, 2012 Nme:! Purdue emil:! Plese sign the following: I ffirm tht the nswers given on this test re mine nd mine lone. I did not receive help from ny person or mteril (other

More information

Control-Flow Analysis and Loop Detection

Control-Flow Analysis and Loop Detection ! Control-Flow Anlysis nd Loop Detection!Lst time! PRE!Tody! Control-flow nlysis! Loops! Identifying loops using domintors! Reducibility! Using loop identifiction to identify induction vribles CS553 Lecture

More information

UNIT 11. Query Optimization

UNIT 11. Query Optimization UNIT Query Optimiztion Contents Introduction to Query Optimiztion 2 The Optimiztion Process: An Overview 3 Optimiztion in System R 4 Optimiztion in INGRES 5 Implementing the Join Opertors Wei-Png Yng,

More information

CMSC 331 First Midterm Exam

CMSC 331 First Midterm Exam 0 00/ 1 20/ 2 05/ 3 15/ 4 15/ 5 15/ 6 20/ 7 30/ 8 30/ 150/ 331 First Midterm Exm 7 October 2003 CMC 331 First Midterm Exm Nme: mple Answers tudent ID#: You will hve seventy-five (75) minutes to complete

More information

If you are at the university, either physically or via the VPN, you can download the chapters of this book as PDFs.

If you are at the university, either physically or via the VPN, you can download the chapters of this book as PDFs. Lecture 5 Wlks, Trils, Pths nd Connectedness Reding: Some of the mteril in this lecture comes from Section 1.2 of Dieter Jungnickel (2008), Grphs, Networks nd Algorithms, 3rd edition, which is ville online

More information

9 4. CISC - Curriculum & Instruction Steering Committee. California County Superintendents Educational Services Association

9 4. CISC - Curriculum & Instruction Steering Committee. California County Superintendents Educational Services Association 9. CISC - Curriculum & Instruction Steering Committee The Winning EQUATION A HIGH QUALITY MATHEMATICS PROFESSIONAL DEVELOPMENT PROGRAM FOR TEACHERS IN GRADES THROUGH ALGEBRA II STRAND: NUMBER SENSE: Rtionl

More information

A Formalism for Functionality Preserving System Level Transformations

A Formalism for Functionality Preserving System Level Transformations A Formlism for Functionlity Preserving System Level Trnsformtions Smr Abdi Dniel Gjski Center for Embedded Computer Systems UC Irvine Center for Embedded Computer Systems UC Irvine Irvine, CA 92697 Irvine,

More information

File Manager Quick Reference Guide. June Prepared for the Mayo Clinic Enterprise Kahua Deployment

File Manager Quick Reference Guide. June Prepared for the Mayo Clinic Enterprise Kahua Deployment File Mnger Quick Reference Guide June 2018 Prepred for the Myo Clinic Enterprise Khu Deployment NVIGTION IN FILE MNGER To nvigte in File Mnger, users will mke use of the left pne to nvigte nd further pnes

More information

Dr. D.M. Akbar Hussain

Dr. D.M. Akbar Hussain Dr. D.M. Akr Hussin Lexicl Anlysis. Bsic Ide: Red the source code nd generte tokens, it is similr wht humns will do to red in; just tking on the input nd reking it down in pieces. Ech token is sequence

More information

Slides for Data Mining by I. H. Witten and E. Frank

Slides for Data Mining by I. H. Witten and E. Frank Slides for Dt Mining y I. H. Witten nd E. Frnk Simplicity first Simple lgorithms often work very well! There re mny kinds of simple structure, eg: One ttriute does ll the work All ttriutes contriute eqully

More information

Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming

Lecture 10 Evolutionary Computation: Evolution strategies and genetic programming Lecture 10 Evolutionry Computtion: Evolution strtegies nd genetic progrmming Evolution strtegies Genetic progrmming Summry Negnevitsky, Person Eduction, 2011 1 Evolution Strtegies Another pproch to simulting

More information

A Progressive Register Allocator for Irregular Architectures

A Progressive Register Allocator for Irregular Architectures A Progressive Register Alloctor for Irulr Architectures Dvid Koes nd Seth Copen Goldstein Computer Science Deprtment Crnegie Mellon University {dkoes,seth}@cs.cmu.edu Abstrct Register lloction is one of

More information

CS201 Discussion 10 DRAWTREE + TRIES

CS201 Discussion 10 DRAWTREE + TRIES CS201 Discussion 10 DRAWTREE + TRIES DrwTree First instinct: recursion As very generic structure, we could tckle this problem s follows: drw(): Find the root drw(root) drw(root): Write the line for the

More information

MA1008. Calculus and Linear Algebra for Engineers. Course Notes for Section B. Stephen Wills. Department of Mathematics. University College Cork

MA1008. Calculus and Linear Algebra for Engineers. Course Notes for Section B. Stephen Wills. Department of Mathematics. University College Cork MA1008 Clculus nd Liner Algebr for Engineers Course Notes for Section B Stephen Wills Deprtment of Mthemtics University College Cork s.wills@ucc.ie http://euclid.ucc.ie/pges/stff/wills/teching/m1008/ma1008.html

More information

Stack Manipulation. Other Issues. How about larger constants? Frame Pointer. PowerPC. Alternative Architectures

Stack Manipulation. Other Issues. How about larger constants? Frame Pointer. PowerPC. Alternative Architectures Other Issues Stck Mnipultion support for procedures (Refer to section 3.6), stcks, frmes, recursion mnipulting strings nd pointers linkers, loders, memory lyout Interrupts, exceptions, system clls nd conventions

More information

Transparent neutral-element elimination in MPI reduction operations

Transparent neutral-element elimination in MPI reduction operations Trnsprent neutrl-element elimintion in MPI reduction opertions Jesper Lrsson Träff Deprtment of Scientific Computing University of Vienn Disclimer Exploiting repetition nd sprsity in input for reducing

More information

Misrepresentation of Preferences

Misrepresentation of Preferences Misrepresenttion of Preferences Gicomo Bonnno Deprtment of Economics, University of Cliforni, Dvis, USA gfbonnno@ucdvis.edu Socil choice functions Arrow s theorem sys tht it is not possible to extrct from

More information

Midterm I Solutions CS164, Spring 2006

Midterm I Solutions CS164, Spring 2006 Midterm I Solutions CS164, Spring 2006 Februry 23, 2006 Plese red ll instructions (including these) crefully. Write your nme, login, SID, nd circle the section time. There re 8 pges in this exm nd 4 questions,

More information

Preserving Constraints for Aggregation Relationship Type Update in XML Document

Preserving Constraints for Aggregation Relationship Type Update in XML Document Preserving Constrints for Aggregtion Reltionship Type Updte in XML Document Eric Prdede 1, J. Wenny Rhyu 1, nd Dvid Tnir 2 1 Deprtment of Computer Science nd Computer Engineering, L Trobe University, Bundoor

More information

Elena Baralis, Silvia Chiusano Politecnico di Torino. Pag. 1. Query optimization. DBMS Architecture. Query optimizer. Query optimizer.

Elena Baralis, Silvia Chiusano Politecnico di Torino. Pag. 1. Query optimization. DBMS Architecture. Query optimizer. Query optimizer. DBMS Architecture SQL INSTRUCTION OPTIMIZER Dtbse Mngement Systems MANAGEMENT OF ACCESS METHODS BUFFER MANAGER CONCURRENCY CONTROL RELIABILITY MANAGEMENT Index Files Dt Files System Ctlog DATABASE 2 Query

More information

Before We Begin. Introduction to Spatial Domain Filtering. Introduction to Digital Image Processing. Overview (1): Administrative Details (1):

Before We Begin. Introduction to Spatial Domain Filtering. Introduction to Digital Image Processing. Overview (1): Administrative Details (1): Overview (): Before We Begin Administrtive detils Review some questions to consider Winter 2006 Imge Enhncement in the Sptil Domin: Bsics of Sptil Filtering, Smoothing Sptil Filters, Order Sttistics Filters

More information

CSCI 3130: Formal Languages and Automata Theory Lecture 12 The Chinese University of Hong Kong, Fall 2011

CSCI 3130: Formal Languages and Automata Theory Lecture 12 The Chinese University of Hong Kong, Fall 2011 CSCI 3130: Forml Lnguges nd utomt Theory Lecture 12 The Chinese University of Hong Kong, Fll 2011 ndrej Bogdnov In progrmming lnguges, uilding prse trees is significnt tsk ecuse prse trees tell us the

More information

EasyMP Network Projection Operation Guide

EasyMP Network Projection Operation Guide EsyMP Network Projection Opertion Guide Contents 2 Introduction to EsyMP Network Projection EsyMP Network Projection Fetures... 5 Disply Options... 6 Multi-Screen Disply Function... 6 Movie Sending Mode...

More information

CS321 Languages and Compiler Design I. Winter 2012 Lecture 5

CS321 Languages and Compiler Design I. Winter 2012 Lecture 5 CS321 Lnguges nd Compiler Design I Winter 2012 Lecture 5 1 FINITE AUTOMATA A non-deterministic finite utomton (NFA) consists of: An input lphet Σ, e.g. Σ =,. A set of sttes S, e.g. S = {1, 3, 5, 7, 11,

More information

Data sharing in OpenMP

Data sharing in OpenMP Dt shring in OpenMP Polo Burgio polo.burgio@unimore.it Outline Expressing prllelism Understnding prllel threds Memory Dt mngement Dt cluses Synchroniztion Brriers, locks, criticl sections Work prtitioning

More information

12-B FRACTIONS AND DECIMALS

12-B FRACTIONS AND DECIMALS -B Frctions nd Decimls. () If ll four integers were negtive, their product would be positive, nd so could not equl one of them. If ll four integers were positive, their product would be much greter thn

More information

9 Graph Cutting Procedures

9 Graph Cutting Procedures 9 Grph Cutting Procedures Lst clss we begn looking t how to embed rbitrry metrics into distributions of trees, nd proved the following theorem due to Brtl (1996): Theorem 9.1 (Brtl (1996)) Given metric

More information

On the Detection of Step Edges in Algorithms Based on Gradient Vector Analysis

On the Detection of Step Edges in Algorithms Based on Gradient Vector Analysis On the Detection of Step Edges in Algorithms Bsed on Grdient Vector Anlysis A. Lrr6, E. Montseny Computer Engineering Dept. Universitt Rovir i Virgili Crreter de Slou sin 43006 Trrgon, Spin Emil: lrre@etse.urv.es

More information

2 Computing all Intersections of a Set of Segments Line Segment Intersection

2 Computing all Intersections of a Set of Segments Line Segment Intersection 15-451/651: Design & Anlysis of Algorithms Novemer 14, 2016 Lecture #21 Sweep-Line nd Segment Intersection lst chnged: Novemer 8, 2017 1 Preliminries The sweep-line prdigm is very powerful lgorithmic design

More information

II. THE ALGORITHM. A. Depth Map Processing

II. THE ALGORITHM. A. Depth Map Processing Lerning Plnr Geometric Scene Context Using Stereo Vision Pul G. Bumstrck, Bryn D. Brudevold, nd Pul D. Reynolds {pbumstrck,brynb,pulr2}@stnford.edu CS229 Finl Project Report December 15, 2006 Abstrct A

More information

Scanner Termination. Multi Character Lookahead. to its physical end. Most parsers require an end of file token. Lex and Jlex automatically create an

Scanner Termination. Multi Character Lookahead. to its physical end. Most parsers require an end of file token. Lex and Jlex automatically create an Scnner Termintion A scnner reds input chrcters nd prtitions them into tokens. Wht hppens when the end of the input file is reched? It my be useful to crete n Eof pseudo-chrcter when this occurs. In Jv,

More information

CPSC 213. Polymorphism. Introduction to Computer Systems. Readings for Next Two Lectures. Back to Procedure Calls

CPSC 213. Polymorphism. Introduction to Computer Systems. Readings for Next Two Lectures. Back to Procedure Calls Redings for Next Two Lectures Text CPSC 213 Switch Sttements, Understnding Pointers - 2nd ed: 3.6.7, 3.10-1st ed: 3.6.6, 3.11 Introduction to Computer Systems Unit 1f Dynmic Control Flow Polymorphism nd

More information

From Dependencies to Evaluation Strategies

From Dependencies to Evaluation Strategies From Dependencies to Evlution Strtegies Possile strtegies: 1 let the user define the evlution order 2 utomtic strtegy sed on the dependencies: use locl dependencies to determine which ttriutes to compute

More information

A Tautology Checker loosely related to Stålmarck s Algorithm by Martin Richards

A Tautology Checker loosely related to Stålmarck s Algorithm by Martin Richards A Tutology Checker loosely relted to Stålmrck s Algorithm y Mrtin Richrds mr@cl.cm.c.uk http://www.cl.cm.c.uk/users/mr/ University Computer Lortory New Museum Site Pemroke Street Cmridge, CB2 3QG Mrtin

More information

A Heuristic Approach for Discovering Reference Models by Mining Process Model Variants

A Heuristic Approach for Discovering Reference Models by Mining Process Model Variants A Heuristic Approch for Discovering Reference Models by Mining Process Model Vrints Chen Li 1, Mnfred Reichert 2, nd Andres Wombcher 3 1 Informtion System Group, University of Twente, The Netherlnds lic@cs.utwente.nl

More information

Engineer-to-Engineer Note

Engineer-to-Engineer Note Engineer-to-Engineer Note EE-204 Technicl notes on using Anlog Devices DSPs, processors nd development tools Visit our Web resources http://www.nlog.com/ee-notes nd http://www.nlog.com/processors or e-mil

More information

MATH 25 CLASS 5 NOTES, SEP

MATH 25 CLASS 5 NOTES, SEP MATH 25 CLASS 5 NOTES, SEP 30 2011 Contents 1. A brief diversion: reltively prime numbers 1 2. Lest common multiples 3 3. Finding ll solutions to x + by = c 4 Quick links to definitions/theorems Euclid

More information

Engineer To Engineer Note

Engineer To Engineer Note Engineer To Engineer Note EE-169 Technicl Notes on using Anlog Devices' DSP components nd development tools Contct our technicl support by phone: (800) ANALOG-D or e-mil: dsp.support@nlog.com Or visit

More information

Digital Design. Chapter 6: Optimizations and Tradeoffs

Digital Design. Chapter 6: Optimizations and Tradeoffs Digitl Design Chpter 6: Optimiztions nd Trdeoffs Slides to ccompny the tetbook Digitl Design, with RTL Design, VHDL, nd Verilog, 2nd Edition, by Frnk Vhid, John Wiley nd Sons Publishers, 2. http://www.ddvhid.com

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

MIPS I/O and Interrupt

MIPS I/O and Interrupt MIPS I/O nd Interrupt Review Floting point instructions re crried out on seprte chip clled coprocessor 1 You hve to move dt to/from coprocessor 1 to do most common opertions such s printing, clling functions,

More information

ECEN 468 Advanced Logic Design Lecture 36: RTL Optimization

ECEN 468 Advanced Logic Design Lecture 36: RTL Optimization ECEN 468 Advnced Logic Design Lecture 36: RTL Optimiztion ECEN 468 Lecture 36 RTL Design Optimiztions nd Trdeoffs 6.5 While creting dtpth during RTL design, there re severl optimiztions nd trdeoffs, involving

More information

Homework. Context Free Languages III. Languages. Plan for today. Context Free Languages. CFLs and Regular Languages. Homework #5 (due 10/22)

Homework. Context Free Languages III. Languages. Plan for today. Context Free Languages. CFLs and Regular Languages. Homework #5 (due 10/22) Homework Context Free Lnguges III Prse Trees nd Homework #5 (due 10/22) From textbook 6.4,b 6.5b 6.9b,c 6.13 6.22 Pln for tody Context Free Lnguges Next clss of lnguges in our quest! Lnguges Recll. Wht

More information

Epson Projector Content Manager Operation Guide

Epson Projector Content Manager Operation Guide Epson Projector Content Mnger Opertion Guide Contents 2 Introduction to the Epson Projector Content Mnger Softwre 3 Epson Projector Content Mnger Fetures... 4 Setting Up the Softwre for the First Time

More information

A Priority-based Distributed Call Admission Protocol for Multi-hop Wireless Ad hoc Networks

A Priority-based Distributed Call Admission Protocol for Multi-hop Wireless Ad hoc Networks A Priority-bsed Distributed Cll Admission Protocol for Multi-hop Wireless Ad hoc Networks un Sun Elizbeth M. Belding-Royer Deprtment of Computer Science University of Cliforni, Snt Brbr suny, ebelding

More information

A REINFORCEMENT LEARNING APPROACH TO SCHEDULING DUAL-ARMED CLUSTER TOOLS WITH TIME VARIATIONS

A REINFORCEMENT LEARNING APPROACH TO SCHEDULING DUAL-ARMED CLUSTER TOOLS WITH TIME VARIATIONS A REINFORCEMENT LEARNING APPROACH TO SCHEDULING DUAL-ARMED CLUSTER TOOLS WITH TIME VARIATIONS Ji-Eun Roh (), Te-Eog Lee (b) (),(b) Deprtment of Industril nd Systems Engineering, Kore Advnced Institute

More information

Qubit allocation for quantum circuit compilers

Qubit allocation for quantum circuit compilers Quit lloction for quntum circuit compilers Nov. 10, 2017 JIQ 2017 Mrcos Yukio Sirichi Sylvin Collnge Vinícius Fernndes dos Sntos Fernndo Mgno Quintão Pereir Compilers for quntum computing The first genertion

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

Revisiting the notion of Origin-Destination Traffic Matrix of the Hosts that are attached to a Switched Local Area Network

Revisiting the notion of Origin-Destination Traffic Matrix of the Hosts that are attached to a Switched Local Area Network Interntionl Journl of Distributed nd Prllel Systems (IJDPS) Vol., No.6, November 0 Revisiting the notion of Origin-Destintion Trffic Mtrix of the Hosts tht re ttched to Switched Locl Are Network Mondy

More information

Overview. Network characteristics. Network architecture. Data dissemination. Network characteristics (cont d) Mobile computing and databases

Overview. Network characteristics. Network architecture. Data dissemination. Network characteristics (cont d) Mobile computing and databases Overview Mobile computing nd dtbses Generl issues in mobile dt mngement Dt dissemintion Dt consistency Loction dependent queries Interfces Detils of brodcst disks thlis klfigopoulos Network rchitecture

More information

INTRODUCTION TO SIMPLICIAL COMPLEXES

INTRODUCTION TO SIMPLICIAL COMPLEXES INTRODUCTION TO SIMPLICIAL COMPLEXES CASEY KELLEHER AND ALESSANDRA PANTANO 0.1. Introduction. In this ctivity set we re going to introduce notion from Algebric Topology clled simplicil homology. The min

More information

Computer Arithmetic Logical, Integer Addition & Subtraction Chapter

Computer Arithmetic Logical, Integer Addition & Subtraction Chapter Computer Arithmetic Logicl, Integer Addition & Sutrction Chpter 3.-3.3 3.3 EEC7 FQ 25 MIPS Integer Representtion -it signed integers,, e.g., for numeric opertions 2 s s complement: one representtion for

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

USING HOUGH TRANSFORM IN LINE EXTRACTION

USING HOUGH TRANSFORM IN LINE EXTRACTION Stylinidis, Efstrtios USING HOUGH TRANSFORM IN LINE EXTRACTION Efstrtios STYLIANIDIS, Petros PATIAS The Aristotle University of Thessloniki, Deprtment of Cdstre Photogrmmetry nd Crtogrphy Univ. Box 473,

More information

Allocator Basics. Dynamic Memory Allocation in the Heap (malloc and free) Allocator Goals: malloc/free. Internal Fragmentation

Allocator Basics. Dynamic Memory Allocation in the Heap (malloc and free) Allocator Goals: malloc/free. Internal Fragmentation Alloctor Bsics Dynmic Memory Alloction in the Hep (mlloc nd free) Pges too corse-grined for llocting individul objects. Insted: flexible-sized, word-ligned blocks. Allocted block (4 words) Free block (3

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

Enginner To Engineer Note

Enginner To Engineer Note Technicl Notes on using Anlog Devices DSP components nd development tools from the DSP Division Phone: (800) ANALOG-D, FAX: (781) 461-3010, EMAIL: dsp_pplictions@nlog.com, FTP: ftp.nlog.com Using n ADSP-2181

More information

Definition of Regular Expression

Definition of Regular Expression Definition of Regulr Expression After the definition of the string nd lnguges, we re redy to descrie regulr expressions, the nottion we shll use to define the clss of lnguges known s regulr sets. Recll

More information

EasyMP Multi PC Projection Operation Guide

EasyMP Multi PC Projection Operation Guide EsyMP Multi PC Projection Opertion Guide Contents 2 Introduction to EsyMP Multi PC Projection 5 EsyMP Multi PC Projection Fetures... 6 Connection to Vrious Devices... 6 Four-Pnel Disply... 6 Chnge Presenters

More information

a Technical Notes on using Analog Devices' DSP components and development tools

a Technical Notes on using Analog Devices' DSP components and development tools Engineer To Engineer Note EE-146 Technicl Notes on using Anlog Devices' DSP components nd development tools Contct our technicl support by phone: (800) ANALOG-D or e-mil: dsp.support@nlog.com Or visit

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd business. Introducing technology

More information

Small Business Networking

Small Business Networking Why network is n essentil productivity tool for ny smll business Effective technology is essentil for smll businesses looking to increse the productivity of their people nd processes. Introducing technology

More information

On Computation and Resource Management in Networked Embedded Systems

On Computation and Resource Management in Networked Embedded Systems On Computtion nd Resource Mngement in Networed Embedded Systems Soheil Ghisi Krlene Nguyen Elheh Bozorgzdeh Mjid Srrfzdeh Computer Science Deprtment University of Cliforni, Los Angeles, CA 90095 soheil,

More information

COMP 423 lecture 11 Jan. 28, 2008

COMP 423 lecture 11 Jan. 28, 2008 COMP 423 lecture 11 Jn. 28, 2008 Up to now, we hve looked t how some symols in n lphet occur more frequently thn others nd how we cn sve its y using code such tht the codewords for more frequently occuring

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distriuted Systems Principles nd Prdigms Chpter 11 (version April 7, 2008) Mrten vn Steen Vrije Universiteit Amsterdm, Fculty of Science Dept. Mthemtics nd Computer Science Room R4.20. Tel: (020) 598 7784

More information

Memory-Optimized Software Synthesis from Dataflow Program Graphs withlargesizedatasamples

Memory-Optimized Software Synthesis from Dataflow Program Graphs withlargesizedatasamples EURSIP Journl on pplied Signl Processing 2003:6, 54 529 c 2003 Hindwi Publishing orportion Memory-Optimized Softwre Synthesis from tflow Progrm Grphs withlrgesizetsmples Hyunok Oh The School of Electricl

More information

Integration. September 28, 2017

Integration. September 28, 2017 Integrtion September 8, 7 Introduction We hve lerned in previous chpter on how to do the differentition. It is conventionl in mthemtics tht we re supposed to lern bout the integrtion s well. As you my

More information

Tree Structured Symmetrical Systems of Linear Equations and their Graphical Solution

Tree Structured Symmetrical Systems of Linear Equations and their Graphical Solution Proceedings of the World Congress on Engineering nd Computer Science 4 Vol I WCECS 4, -4 October, 4, Sn Frncisco, USA Tree Structured Symmetricl Systems of Liner Equtions nd their Grphicl Solution Jime

More information

Example: 2:1 Multiplexer

Example: 2:1 Multiplexer Exmple: 2:1 Multiplexer Exmple #1 reg ; lwys @( or or s) egin if (s == 1') egin = ; else egin = ; 1 s B. Bs 114 Exmple: 2:1 Multiplexer Exmple #2 Normlly lwys include egin nd sttements even though they

More information

Parallel Square and Cube Computations

Parallel Square and Cube Computations Prllel Squre nd Cube Computtions Albert A. Liddicot nd Michel J. Flynn Computer Systems Lbortory, Deprtment of Electricl Engineering Stnford University Gtes Building 5 Serr Mll, Stnford, CA 945, USA liddicot@stnford.edu

More information

Functor (1A) Young Won Lim 10/5/17

Functor (1A) Young Won Lim 10/5/17 Copyright (c) 2016-2017 Young W. Lim. Permission is grnted to copy, distribute nd/or modify this document under the terms of the GNU Free Documenttion License, Version 1.2 or ny lter version published

More information

Functor (1A) Young Won Lim 8/2/17

Functor (1A) Young Won Lim 8/2/17 Copyright (c) 2016-2017 Young W. Lim. Permission is grnted to copy, distribute nd/or modify this document under the terms of the GNU Free Documenttion License, Version 1.2 or ny lter version published

More information

Lecture Overview. Knowledge-based systems in Bioinformatics, 1MB602. Procedural abstraction. The sum procedure. Integration as a procedure

Lecture Overview. Knowledge-based systems in Bioinformatics, 1MB602. Procedural abstraction. The sum procedure. Integration as a procedure Lecture Overview Knowledge-bsed systems in Bioinformtics, MB6 Scheme lecture Procedurl bstrction Higher order procedures Procedures s rguments Procedures s returned vlues Locl vribles Dt bstrction Compound

More information

Stack. A list whose end points are pointed by top and bottom

Stack. A list whose end points are pointed by top and bottom 4. Stck Stck A list whose end points re pointed by top nd bottom Insertion nd deletion tke plce t the top (cf: Wht is the difference between Stck nd Arry?) Bottom is constnt, but top grows nd shrinks!

More information

SOME EXAMPLES OF SUBDIVISION OF SMALL CATEGORIES

SOME EXAMPLES OF SUBDIVISION OF SMALL CATEGORIES SOME EXAMPLES OF SUBDIVISION OF SMALL CATEGORIES MARCELLO DELGADO Abstrct. The purpose of this pper is to build up the bsic conceptul frmework nd underlying motivtions tht will llow us to understnd ctegoricl

More information

L. Yaroslavsky. Fundamentals of Digital Image Processing. Course

L. Yaroslavsky. Fundamentals of Digital Image Processing. Course L. Yroslvsky. Fundmentls of Digitl Imge Processing. Course 0555.330 Lecture. Imge enhncement.. Imge enhncement s n imge processing tsk. Clssifiction of imge enhncement methods Imge enhncement is processing

More information

Lexical Analysis. Amitabha Sanyal. (www.cse.iitb.ac.in/ as) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay

Lexical Analysis. Amitabha Sanyal. (www.cse.iitb.ac.in/ as) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay Lexicl Anlysis Amith Snyl (www.cse.iit.c.in/ s) Deprtment of Computer Science nd Engineering, Indin Institute of Technology, Bomy Septemer 27 College of Engineering, Pune Lexicl Anlysis: 2/6 Recp The input

More information

ΕΠΛ323 - Θεωρία και Πρακτική Μεταγλωττιστών

ΕΠΛ323 - Θεωρία και Πρακτική Μεταγλωττιστών ΕΠΛ323 - Θωρία και Πρακτική Μταγλωττιστών Lecture 3 Lexicl Anlysis Elis Athnsopoulos elisthn@cs.ucy.c.cy Recognition of Tokens if expressions nd reltionl opertors if è if then è then else è else relop

More information

A Transportation Problem Analysed by a New Ranking Method

A Transportation Problem Analysed by a New Ranking Method (IJIRSE) Interntionl Journl of Innovtive Reserch in Science & Engineering ISSN (Online) 7-07 A Trnsporttion Problem Anlysed by New Rnking Method Dr. A. Shy Sudh P. Chinthiy Associte Professor PG Scholr

More information

Topic 2: Lexing and Flexing

Topic 2: Lexing and Flexing Topic 2: Lexing nd Flexing COS 320 Compiling Techniques Princeton University Spring 2016 Lennrt Beringer 1 2 The Compiler Lexicl Anlysis Gol: rek strem of ASCII chrcters (source/input) into sequence of

More information

Dynamic Programming. Andreas Klappenecker. [partially based on slides by Prof. Welch] Monday, September 24, 2012

Dynamic Programming. Andreas Klappenecker. [partially based on slides by Prof. Welch] Monday, September 24, 2012 Dynmic Progrmming Andres Klppenecker [prtilly bsed on slides by Prof. Welch] 1 Dynmic Progrmming Optiml substructure An optiml solution to the problem contins within it optiml solutions to subproblems.

More information

Engineer-to-Engineer Note

Engineer-to-Engineer Note Engineer-to-Engineer Note EE-232 Technicl notes on using Anlog Devices DSPs, processors nd development tools Contct our technicl support t dsp.support@nlog.com nd t dsptools.support@nlog.com Or visit our

More information

MATLAB Session for CS4514

MATLAB Session for CS4514 MATLAB Session for CS4514 Adrin Her her @wpi.edu Computing & Communictions Center - November 28, 2006- Prt of the notes re from Mtlb documenttion 1 MATLAB Session for CS4514 1. Mtlb Bsics Strting Mtlb

More information

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Winter 2016

Solving Problems by Searching. CS 486/686: Introduction to Artificial Intelligence Winter 2016 Solving Prolems y Serching CS 486/686: Introduction to Artificil Intelligence Winter 2016 1 Introduction Serch ws one of the first topics studied in AI - Newell nd Simon (1961) Generl Prolem Solver Centrl

More information