| Todd A. Proebsting. Simple and efficient BURS table generation. Technical report, Department of Computer Sciences, University of Wisconsin, 1991. 9 |
....costs during the actual code selection, BURS theory allows to shift these calculations to the generation phase of the code selector. This results in much faster code selection. However, a drawback of BURS theory is that the cost function is restricted to a constant additive model. Burg [39] [55] is a code selector generator based on BURS theory. A formal treatment of tree automaton based code selection can be found in [56] Several recent compilers for embedded processors are using adaptations of one of the dynamic programming methods described above. The following adaptations can be ....
T. A. Proebsting, "Simple and efficient BURS table generation," in Proc. SIGPLAN Conf. Prog. Lang. Design and Implem., 1992.
....Keywords:Compilers,codegeneratorgenerator,treerewritesystem,dynamicprogramming Manycodegeneratorsacceptanintermediaterepresentationinatreestructureandconvertittoanequivalenttargetprogram. Thetreestructureisproperforrepresentingthesemanticsofasourceprogram efficiently,anditsmanipulationiseasy(ProebstingandFischer1992).SinceitsdevelopmentbyHoffman et al. 1982) treepatternmatchingwithdynamicprogramming(DP)hasbeenacceptedasapractical techniqueforcodegeneratorsandcodegeneratorgenerators(CGGs) Pelegri Liopart1988,Ahoetal. 1989,Balachandranetal.1990,Fraseretal.1991,Proebsting1992,ProebstingandFischer1992, ....
.... tal. 1982) treepatternmatchingwithdynamicprogramming(DP)hasbeenacceptedasapractical techniqueforcodegeneratorsandcodegeneratorgenerators(CGGs) Pelegri Liopart1988,Ahoetal. 1989,Balachandranetal.1990,Fraseretal.1991,Proebsting1992,ProebstingandFischer1992, Fraseretal.1992,FraserandHanson1995,Gough1996) CodegeneratorswhichusestreepatternmatchingcanbeautomaticallygeneratedfrommachinespecificationbyaCGG. Theneedforautomaticgenerationofcodegeneratorshasbeencausedbytheincreasing varietyofprocessors ....
[Article contains additional citation context not shown here]
Proebsting, T.A. (1992) Simple and efficient BURS table generation, SIGPLAN Notices, 6, 331--40.
....compiler. The method described above combines the fast instruction selection technique based on tree matching, with very limited resource usage for the intermediate data structeres. On the fly instruction selection is described in more detail in chapter XXXX. All references: 14] 9] 5] 2] [12], 13] 3] 4] 15] 11] 1] 8] 7] 6] 20 ....
Todd A. Proebsting. Simple and efficient burs table generation. volume 26, pages 256--267, 1992. Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation.
.... of source program efficiently and its manipulation is considered easy [14] Since the development of tree pattern matching by Hoffman and O Donnell [5] the tree pattern matching with dynamic programming (DP) has been accepted as a practical technique for CG and a code generator generator (CGG) [1, 2, 4, 6, 7, 10, 13, 14]. The input to the CGG which is actually the machine specification contains the tree rewrite system which consists of rewrite rules. Each rewrite rule has a cost associated with its semantic action. The bottom up tree pattern matching scheme is theoretically much faster than any other tree pattern ....
T. A. Proebsting, Simple and efficient BURS table generation, SIGPLAN Notices, 6:331340, 1992.
....p r;arity ) n r Rule t : op( p r;1 ; p r;d ; p r;arity ) n t j Figure 2.7: Trimming Relationship 2. 3 Related works Recently, there is a considerable amount of work in tree pattern matching algorithms and in the generation of tables for the tree pattern matching [AGT89, BDB90, Cha87, FHP91, FHP93, Hen84, HOD82, PeS88, Pel88, PrF92, Pro92]. This section briefly covers several code generation systems that are based on tree pattern matching and dynamic programming. They differ primarily in what technology they use to do tree pattern matching, and in the fact that they do dynamic programming at compile time rather than compile compile ....
....section briefly covers several code generation systems that are based on tree pattern matching and dynamic programming. They differ primarily in what technology they use to do tree pattern matching, and in the fact that they do dynamic programming at compile time rather than compile compile time [Pro92]. Using Parsing Techniques Graham and Glanville(GG) tried to use the LR parsing techniques to generate codes [Hen84] A code generator can be constructed as a syntax directed translator. It maps trees into strings through their preorder traversal and has a left to right bias and a greedy ....
[Article contains additional citation context not shown here]
Todd. A. Proebsting, "Simple and efficient BURS table generation.", Proceedings of the SIGPLAN'92 Conference on Programming Language Design and Implementation, SIGPLAN Notices, Vol.27, No.6, pp.331-340, 1992.
....from BURS traverses the subject tree in a bottom up way with a simple table lookup at each node. The disadvantage of BURS is that the costs of the tree rewrite system must be constants. If the matching scheme does DP at compile time, the costs can be permitted to involve arbitrary computations ([12]) However, the DP of the compile time makes the matching scheme inefficient in exeution time. The issues of the bottom up tree pattern matching scheme have been the efficiency of the scheme and the code size of the scheme, maintaining costs as the arbitrary computations. We observe here that one ....
....as follows. cost(t p ; A) minfc( j fl ) Ag This technique not only improves the speed but also reduces the code size of the CG. 4.3 Experiment Based on the algorithms of section 3 and 4, a CG is modified for experiment and comparison with the related work. The CG is a output of iburg ([12]) iburg is a typical CGG which produces a CG with bottom up tree pattern matching with DP. We got some results which are more or less improved in the investigation on MC68000, x86, mips and sparc CGs. The relevant statistics for the CGs are tabulated in Table I. The columns of name j patternsj ....
T. A. Proebsting, Simple and efficient BURS table generation, SIGPLAN Notices, 6:331340, 1992.
....on actual registers necessary to parameterize a register allocator. The rewriting rules are used mainly to generate code selectors, essentially suitable for producing locally optimal code for expression trees. Some optimizations can also be specified with additional rewriting rules [He 91] Pr 92] Usually, the integration of a new subtask in a generated code generator requires the knowledge of the internal representation of the IR [Fr 89] Furthermore, the user must have some knowledge of the code generation process to specify the rewriting rules. At the opposite of the previous systems, ....
Proebsting T. A. : Simple and Efficient BURS Table Generation. Proceedings of the SIGPLAN'92, pp 331-340.
....costs during the actual code selection, BURS theory allows to shift these calculations to the generation phase of the code selector. This results in much faster code selection. However, a drawback of BURS theory is that the cost function is restricted to a constant additive model. Burg [39, 55] is a code selector generator based on BURS theory. A formal treatment of tree automaton based code selection can be found in [56] Several recent compilers for embedded processors are using adaptations of one of the dynamic programming methods described above. The following adaptations can be ....
T.A. Proebsting, "Simple and efficient BURS table generation," Proc. SIGPLAN Conf. Prog. Lang. Design and Implem., 1992.
....we have developed to improve the performance of both dynamic code and the dynamic code generation process. 4.1 Overview The tcc compiler is based on lcc [23, 22] a terse and portable compiler for ANSI C. lcc performs common subexpression elimination within extended basic blocks and uses lburg [38] to find the lowestcost implementation of a certain IR level construct, but it performs few other optimizations. All parsing and semantic checking of dynamic expressions occurs at static compile time. Semantic checks are performed at the level of dynamically generated expressions. For each cspec, ....
T. A. Proebsting. Simple and efficient BURS table generation. SIGPLAN Notices, 27(7):331--340, June 1992.
....that these techniques outperformed the best statically compiled, hand tuned code in several applications. In a similar vein, Engler and Proebsting developed DCG [EP94] a library for constructing and manipulating expression trees that exploits the IBURG portable code generator library [Pro92] The code generator infrastructure performed no optimizations other than instruction selection. Engler, Hsieh, and Kaashoek developed C [EHK96] an extension of the C language that makes constructing and manipulating expression trees look syntactically like fragments of C code, greatly easing ....
T.A. Proebsting. Simple and efficient BURS table generation. In Conference on Programming Language Design and Implementation, July 1992.
....at run time. Figure 4 illustrates the interaction of static and dynamic compilation in tcc. 3.1 Architecture The tcc compiler is based on lcc [Fraser and Hanson 1995; 1990] a portable compiler for ANSI C. lcc performs common subexpression elimination within extended basic blocks, and uses lburg [Proebsting 1992] to find the lowest cost implementation of a given IR level construct. Otherwise, it performs few optimizations. All parsing and semantic checking of dynamic expressions occurs at static compile time. Semantic checks are performed at the level of dynamically generated expressions. For each cspec, ....
Proebsting, T. A. 1992. Simple and efficient BURS table generation. SIGPLAN Notices 27, 7 (June), 331--340.
....by the EPVM, which avoids the double indirection for local pointer variables. Previous research in pattern directed code generation can be broadly classified into two categories: parsing and treepattern matching. With the former one, code generators based on bottom up rewrite system (BURS) 17] [18] theory move the dynamic programming to the time of compiler generation. At compile time, it is only necessary to make two traversals of the expression tree: one bottom up traversal to label each node with a state that encodes all optimal matches, and a second top down traversal that uses these ....
Proebsting, T. A. Simple and efficient BURS table generation. In Proc. of the SIGPLAN'92 Conf. on Prog. Lang. Design and Implementation. (Jan. 1988), 294-308.
....improved computation density and is more suitable for stream based multimedia applications. One of the most difficult tasks of the compiler will be to identify the regions of code well suited to configurable implementation. We are exploring the possibility of using tree pattern matching techniques [1, 10] to assist in identifying these regions. Once these regions are identified, hardware compilation algorithms can be employed to compile the critical program patterns into the configurable hardware [4] 4.5 Code generation Because the Raw compiler is hardware omniscient, its code generation phase ....
T. A. Proebsting. Simple and efficient BURS table generation. Proceedings of the ACM SIGPLAN '92 Conference on Programming Language Design and Implementation, San Fransico, California., June 1992.
No context found.
Todd A. Proebsting. Simple and efficient BURS table generation. Technical report, Department of Computer Sciences, University of Wisconsin, 1991. 9
....if (c 0 p cost[stmtNT] stmt: reg p cost[stmtNT] c 0; p rule.stmt = 2; The final improvement saves times for leaves, which abound in subject trees from code generators. Computing and encoding all of the state record data about matches at compile compile time is complicated [11]. Leaves, however, always match and the contents of the state record is easily computed by simulating the effect of the assignments and closure function calls shown above. The state records for leaves can thus be allocated and initialized at compile compile time, e.g. the ADDRLP case in Figure 4 ....
T. A. Proebsting. Simple and efficient BURS table generation. Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, SIGPLAN Notices, 27(6):331--340, June 1992.
....system, dcg, portably and efficiently generates executable code at runtime. dcg client programs specify dynamically generated code using the compact, machineindependent intermediate representation (IR) of the lcc compiler [8] Binary code is selected using BURS tree pattern matching technology [17, 9]. The code generator is very efficient the creation and translation of IR to binary instructions takes approximately 350 instructions per generated instruction. There are two contributions of this paper: 1) a demonstration of efficient dynamic machine code generation from a ....
Todd A. Proebsting. Simple and efficient BURS table generation. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, June 1992.
....a costaugmented tree grammar with associated semantic actions. The resulting code generator requires two passes over the IR tree to determine a least cost parse and to execute the associated semantic actions. Code generator generators based on this model include BEG [ESL89] twig [AGT89] burg [FHP92b, Pro92], iburg [FHP92a] and lburg [FH95] This paper describes the theory behind and implementation of wburg, a codegenerator generator that accepts tree grammars as input and produces a code generator that emits an optimal parse of an IR tree in just a single bottom up pass. Furthermore, wburg ....
....when they perform dynamic programming. Pattern matching techniques vary widely in theoretical efficiency [HO82] Previous code generators have employed many of these pattern matching technologies, ranging from the slowest, naive [ESL89, FHP92a, FH95] to top down [AGT89] to the fastest, bottom up [FHP92b, Pro92, BDB90, PLG88]. Most systems perform dynamic programming at compile time [ESL89, AGT89, FHP92a, FH95] those based on bottom up rewrite system (BURS) technology do all dynamic programming at compile compile time [FHP92b, Pro92, BDB90, PLG88] Previous tree pattern matching systems required two passes over the ....
[Article contains additional citation context not shown here]
Todd A. Proebsting. Simple and efficient BURS table generation. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, pages 331--340, New York, June 1992. ACM.
....all possible matches at the same time. This algorithm is asymptotically better than trying each possible match one at a time, but overhead is higher. Like BEG matchers, Twig matchers use DP at compile time to identify a minimum cost cover. burg uses BURS (bottom up rewrite system) theory [5, 6, 17, 18] to move the DP to compile compile time. BURS table generation is more complicated, but BURS matchers generate optimal code in constant time per node. The main disadvantage of BURS is that costs must be constants; systems that delay DP until compile time permit costs to involve arbitrary ....
....if (c 0 p cost[stmtNT] stmt: reg p cost[stmtNT] c 0; p rule.stmt = 2; The final improvement saves times for leaves, which abound in subject trees from code generators. Computing and encoding all of the state record data about matches at compile compile time is complicated [18]. Leaves, however, always match and the contents of the state record is easily computed by simulating the effect of the assignments and closure function calls shown above. The state records for leaves can thus be allocated and initialized at compilecompile time, e.g. the ADDRLP case in Figure 4 ....
[Article contains additional citation context not shown here]
Proebsting, T. A. Simple and efficient BURS table generation. Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, SIGPLAN Notices 27, 6 (June 1992), 331--340. 14 1
....a cost augmented tree grammar with associated semantic actions. The resulting code generator requires two passes over the IR tree to determine a least cost parse and to execute the associated semantic actions. Code generator generators based on this model include BEG [ESL89] twig [AGT89] burg [FHP92b, Pro92], iburg [FHP92a] and lburg [FH95] This paper describes the theory behind and implementation of wburg, a code generator generator that accepts tree grammars as input and produces a code generator that emits an optimal parse of an IR tree in just a single bottom up pass. Furthermore, wburg ....
....when they perform dynamic programming. Pattern matching techniques vary widely in theoretical efficiency [HO82] Previous code generators have employed many of these pattern matching technologies, ranging from the slowest, naive [ESL89, FHP92a, FH95] to topdown [AGT89] to the fastest, bottom up [FHP92b, Pro92, BDB90, PLG88]. Most systems perform dynamic programming at compile time [ESL89, AGT89, FHP92a, FH95] those based on BURS technology do all dynamic programming at compile compile time [FHP92b, Pro92, BDB90, PLG88] Previous tree pattern matching systems required two passes over the IR tree: one for labeling ....
[Article contains additional citation context not shown here]
Todd A. Proebsting. Simple and efficient BURS table generation. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, pages 331--340, New York, June 1992. ACM.
....(0) addr: Plus(con,Mul(Four,reg) 5 (0) reg: Fetch(addr) 6 (1) reg: Assign(addr,reg) 7 (1) Figure A.1: A Sample Tree Grammar use Burg. Readers interested in more detail might start with [BDB90] Other relevant documents include [Kro75, HO82, HC86, Cha87, PLG88, PL88, BMW87, Hen89, FH91c, Pro92] A.2 Input Burg accepts a tree grammar and emits a BURS tree parser. Figure A.1 shows a sample grammar that implements a very simple instruction selector. Burg grammars are structurally similar to Yacc s. Comments follow C conventions. Text between f and g is called the configuration ....
....conflicts. The command: burg [ arguments ] file ] invokes Burg. If a file is named, Burg expects its grammar there; otherwise it reads the standard input. The options include: c N Abort if any relative cost exceeds N , which keeps Burg from looping on diverging grammars. PLG88, Hen89, BDB90, Pro92] explain relative costs. d Report a few statistics and flag unused rules and terminals. o file Write parser into file. Otherwise it writes to the standard output. p prefix Start exported names with prefix. The default is burm. t Generates smaller tables faster, but all goal non terminals ....
Todd A. Proebsting. Simple and efficient burs table generation. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, June 1992.
....The machineindependent intermediate representation specifies a small, but rich, set of operators that are sufficient to express all C language constructs at nearly a machine level, without sacrificing portability. Binary code is selected and emitted using the BURS tree pattern matching technology [39, 23]. The code generation interface is small and easy to use clients specify expression trees for a desired chunk of code and DCG returns a function pointer callable from the client program. A prototype implementation of DCG is also very efficient the creation of IR and subsequent translation to ....
T. A. Proebsting. Simple and efficient BURS table generation. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, pages 331--340, June 1992.
No context found.
Proebsting T. A. : Simple and Efficient BURS Table Generation. Proceedings of the SIGPLAN'92, pp 331-340.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC