42 citations found. Retrieving documents...
Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505--526, October 1984.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Embedded Software in Real-Time Signal Processing.. - Goossens, Van.. (1997)   (11 citations)  (Correct)

....the intermediate representation. Whether or not such a pattern (also called a bundle) is legal, can be derived from the processor model, which in this case is given in the form of a graph model (see Section IV B) An early example of a bundling approach to code selection is the combiner algorithm [62], a variation of the peephole optimization technique presented in [63] and used in the GCC compiler. More recently, bundling algorithms have been developed for compilers for embedded processors, such as MSSQ [47] MSSV [64] and Chess [22] An advantage of these bundling algorithms is that they ....

J. W. Davidson and C. W. Fraser, "Code selection through object code optimization," ACM Trans. Prog. Lang. and Syst., Oct. 1984.


Combining Analyses, Combining Optimizations - Click, Jr. (1995)   (1 citation)  (Correct)

....Optimizations One obvious method for improving the translated code is to look for code fragments with common patterns and replace them with more efficient code fragments. These are called peephole optimizations because the compiler looks through a peephole , a very small window, into the code [16, 42, 17, 23, 24]. However, peephole optimizations are limited by their local view of the code. A stronger method involves global analysis, in which the compiler first inspects the entire program before making changes. A common global analysis is called data flow analysis, in which the compiler studies the flow ....

J. W. Davidson and C. W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505--526, Oct. 1984.


Automatic Generation Of Data-Flow Analyzers: A Tool For Building.. - Tjiang (1993)   (5 citations)  (Correct)

....3 have culminated in models and structures embodied in specialized tools with which to construct these other parts. For example, Lexical analysis generators: LEX. Parser generators: YACC[48] Front end analyses: Attributed grammars [72] Instruction selection: Abstract Interpretation[27], twig[1] Graham Glanville codegenerator generators[38, 45, 44] attributed parsing[32, 33] These tools provide a layer of abstractions to hide implementation details from the compiler writer, and to provide powerful algorithms that can be tailored to the needs of compiler writers. With the ....

J. W. Davidson and C. W. Fraser. "Code selection through object code optimization". ACM Trans. on Programming Lang. and Systems 6, 4 (October 1984), 505-526.


Optimal Code-Selection using MBURG - John Gough Jeff   (Correct)

....code selector for one of their compilers in the late 1980s. However, they later abandoned this technology, in favour of the UCodebased code selectors of their other compilers. Another method which found some favour, and which is at least semi automatic, was devised by Davidson and Fraser[2]. In this method, trees are initially macro expanded into naive and inefficient code, which pays no regard to the context of various expression components. Following this the code is repeatedly improved by a kind of peephole optimiser, which performs pattern matching based on a set of ....

Jack W Davidson and Christopher W Fraser. Code selection through object code optimization. Transactions on Programming Languages and Systems, Volume 6, Number 4, pages 506-- 526, 1984.


Technological Steps toward a Software Component Industry - Franz (1994)   (2 citations)  (Correct)

....a shrouded source program, i.e. one that contains no meaningful internal identifiers [Mac93] However, with current technology, reverse engineering to a similar degree is possible also from binary 19 code. Many of the algorithms that have been developed for object code level optimization [DF84] are useful for these purposes. Moreover, the statement [DRA93c] is probably correct that portable formats are such attractive targets to reverse engineer that suitable tools will become available anyway, regardless of how difficult it is to produce such tools. It would, therefore, not make much ....

J. W. Davidson and C. W. Fraser; Code Selection through Object Code Optimization; ACM Trans. Programming Languages and Systems, 6:4, 505-526; 1984.


Adaptive Compression of Syntax Trees and Iterative Dynamic Code.. - Franz (1997)   (21 citations)  (Correct)

....program, i.e. one that contains no meaningful internal identifiers [Mac93] However, with current technology, reverse engineering to a similar degree is possible also from binary code and from linear byte codes. Many of the algorithms that have been developed for object level code optimization [DF84, Dav86] are useful for these purposes. Moreover, the statement [DRA93] is probably correct that portable formats are such attractive targets to reverseengineer that suitable tools will become available eventually, regardless of how difficult it is to produce such tools. It would, therefore, not make much ....

J. W. Davidson and C. W. Fraser; Code Selection through Object Code Optimization; ACM Transactions on Programming Languages and Systems, 6:4, 505-526; 1984.


Systems for Late Code Modification - Wall (1992)   (26 citations)  (Correct)

....instrumentation. Some forms of optimization have to be performed on assembly level or machine level code. The oldest is peephole optimization [16] which acts to tidy up code that a compiler has generated; it has since been generalized to include transformations on more machineindependent code [4,5]. Reordering of code to avoid pipeline stalls [6,9,25] is most often done after the code is generated because the pipeline stalls are easier to see then. Other forms of optimization depend on having the entire program at hand all at once. In an environment with separately compiled modules, this ....

Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems 6 (4), pp. 505-526, October 1984.


Towards Optimizing Code Generation by Domain-Sensitive Macro.. - Lassila (1997)   (Correct)

....applications. Some later, less ambitious approaches have proved to be much more successful: ffl Using an IR that is tailored to the source language but fully independent of the target language [77, 84] ffl Using an IR that is an intersection language with only a relatively small set operations [23]. This small set should be chosen so that it is nevertheless, first, likely to be supported by a relatively broad class of contemporary target architectures, and, second, likely to support a relatively broad class of contemporary source languages. ffl Using an optimization oriented ....

J. W. Davidson and C. W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, vol. 6, no. 4, pp. 505--526. October 1984.


Graphical Visualization Of Compiler Optimizations - Boyd (1993)   (3 citations)  (Correct)

....the programmer need not be concerned about executing the compiler one step too far, and being forced to reexecute the current test. Chapter 2 Overview of the Compiler 2. 1 General Overview The tool described in this paper supports the compiler technology known as vpo (Very Portable Optimizer) [BeD88, Dav86, DaF84]. The optimizer, vpo, replaces the traditional code generator used in many compilers and has been used to build C, Pascal, and Ada compilers. The back end is retargeted by supplying a description of the target machine. Using the diagrammatic notation of Wulf [WJW75] Figure 2.1 shows the overall ....

J. W. Davidson and C. W. Fraser, "Code Selection through Object Code Optimization," Transactions on Programming Languages and Systems 6(4) pp.7-32 (October 1984).


Towards an Algebraic Specification of the Java Virtual Machine - Stephenson (1998)   (2 citations)  (Correct)

....intermediate language UNCOL #Strong et al. #1958## was envisaged as a general intermediate language for abstract machines. This goal has been realised for particular compiler front ends, with, for example, P Code for Pascal #described in Nori et al. #1981## and the Register Transfer Language #Davidson and Fraser #1984## which has been used for a number of languages. Other application areas revolve around that of operating systems. The IBM VM operating system series #for example, the VM#370 #Seawright and MacKinnen #1979### and Microsoft Windows 95 #King #1994## both implement virtual machines to facilitate ....

Davidson and Fraser #1984# J W Davidson and W Fraser. Code Selection through Object Code Optimization. ACM Transactions on Programming Languages and Systems, 6#4#:505#526, 1984.


Register Allocation and Phase Interactions in Retargetable.. - Benitez (1994)   (3 citations)  (Correct)

....encode the semantics of a wide range of machine instructions. One of the most commonly used notations used to represent low level code is the register transfer [BELL71] Register transfers have been successfully used in a number retargetable optimizing compilers including PO [DAVI81] 6 YC [DAVI84b], vpo [BENI89] and gcc [STAL89] Regardless of the underlying notation, low level representations allow the code improvement algorithms to operate at the machine level where all of the target machine nuances are exposed and all transformations, including those that exploit specific architectural ....

.... a technique to performs peephole optimization via instruction selection in a retargetable mechanism [DAVI80] This a peephole optimizer based on this technique, along with a common subexpression eliminator and a local scope register allocator, comprise the retargetable PO optimizing compiler [DAVI84b]. The structure of the PO compiler is shown in Figure 5. Figure 5: The structure of PO Y Front End Code Expander Cacher Combiner Register Assigner 19 PO was one of the first optimizing compilers to apply code improvement transformations exclusively on a low level representation of the ....

[Article contains additional citation context not shown here]

J. W. Davidson and C. W. Fraser, Code Selection through Object Code Optimization, ACM Transactions on Programming Languages and Systems, 6(4), October 1984, 505-526.


Language and Compiler Support for Dynamic Code Generation - Poletto (1999)   (Correct)

....optimization to improve intermediate code of a portable compiler. Davidson and Fraser described PO, a peephole optimizer for a compiler intermediate representation (register transfer language) that generated good code and allowed the rest of the compiler to be made simpler and easier to retarget [17, 18]. They also extended the system to automatically infer new peephole optimization rules by tracking the behavior of an optimizer on a code testbed [19] Similarly, Fraser and Wendt tightly integrated a peephole optimizer with a code generator to speed up code generation and improve code quality ....

J. W. Davidson and C. W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505--526, October 1984.


Optimal Code Selection in DAGs - Ertl (1999)   (5 citations)  (Correct)

....(thus uncovering a bug) Apart from that, Dburg generates slightly more states than it did before we added the computation of partial cost itemsets. The memory use is also bearable (12MB for the 386 grammar) 7 Related Work The Davidson Fraser approach to code selection (used in, e.g. GCC) [DF84, Wen90] can deal with DAGs, but does not guarantee optimality (not even for trees) However, it is more flexible in the kind of code selection patterns allowed (not only tree patterns) and can therefore produce better code than tree parsing. Its disadvantages are that it is harder to use (e.g. adding a ....

Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505--526, October 1984.


DCG: An Efficient, Retargetable Dynamic Code Generation System - Engler, Proebsting (1994)   (6 citations)  (Correct)

....generated. Our system is two orders of magnitude faster than this. Outside the context of dynamic code generation, retargetable code generation is well studied. Two competing code generation strategies dominate retargetable compilers: Register Transfer Language (RTL) based rewriting rule systems [4], and tree pattern matching systems [1, 9, 6] RTL rewriting is more general than tree pattern matching, but it is more complex and slower. 3 dcg Code Generator Design The primary design goals of our dynamic code generation system, dcg, were simplicity and efficiency. dcg consists of a small, ....

Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):7--32, October 1984.


An Efficient Implementation of Tree Matching - Dijkstra (1999)   (Correct)

....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 ....

J.W. Davidson and C.W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505--526, 1984.


A Simple Graph-Based Intermediate Representation - Click, Paleczny (1995)   (3 citations)  (Correct)

....algorithm [9] work well on the IR. These topics are beyond the scope of this paper but are covered in Click s thesis. The intermediate representation is a graph based, object oriented structure, similar in spirit to an operator level Program Dependence Graph or Gated Single Assignment form [3, 11, 17, 18]. The final form contains all the information required to execute the program. The graph edges represent use def chains. Analyses and transformations directly use and modify the use def information. The graph form is a singletiered structure instead of a two tiered Control Flow Graph (CFG) ....

....this distinction has been useful for separation of concerns. CFGs deal with control flow and basic blocks deal with data flow. We handle both kinds of dependences with the same mechanism, removing this distinction to simplify our representation. We replace basic blocks with a special REGION node [11]. A REGION node takes a control value from each predecessor block as inputs and produces a merged control as an output. Figure 2 shows the change from basic blocks to REGION nodes. Edges carrying control information are shown with thick arrows. Each primitive node takes in a control input to ....

[Article contains additional citation context not shown here]

J. Davidson and C. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505--526, Oct. 1984.


Systems for Late Code Modification - Wall (1991)   (26 citations)  (Correct)

....and instrumentation. Some forms of optimization must be performed on assembly level or machinelevel code. The oldest is peephole optimization [11] which acts to tidy up code that a compiler has generated; it has since been generalized to include transformations on more machine independent code [2,3]. Reordering of code to avoid pipeline stalls [4,7,18] is most often done after the code is generated because the pipeline stalls are easier to see. Other forms of optimization depend on having the entire program at hand all at once. In an environment with separately compiled modules, this may ....

Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. Transactions on Programming Languages and Systems 6 (4), pp. 505-526, October 1984.


Target-specific Global Code Improvement: Principles and.. - Benitez, Davidson (1994)   (3 citations)  (Correct)

.... application requires knowledge of the addressing modes available on the target machine [BENE94b] Similarly, common subexpression elimination and evaluation order determination are machine dependent because their effective application requires knowledge of the target machine s instruction set [DAVI84a, DAVI86]. Effective constant propagation requires knowledge of the calling convention, the machine s data paths, and the instruction set support for dealing with constants [BENE94b] Figure 1. Structure of two compiler organizations. AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA AAAA ....

....actually or potentially touched by each variable reference or pointer dereference. Perhaps the most closely related work is the GNU C compiler [STAL92] This is not surprising as both the GNU C compiler (gcc) and vpo are descendents of a compiler that used RTLs and performed local transformations [DAVI81, DAVI84a]. While gcc provides support for multiple front ends such as C, C , and Objective C, these front ends are tightly integrated with the compiler. No independently developed front end has been used with gcc s code improver. This is because the implementation does not provide a convenient interface ....

Davidson, J. W. and Fraser, C. W., `Code Selection through Object Code Optimization,' ACM Transactions on Programming Languages and Systems 6(4), October 1984, pp. 7---32.


A Code Generation Interface for ANSI C - Fraser, Hanson (1991)   (56 citations)  Self-citation (Fraser)   (Correct)

....name = stringf ( s s d , p x.name, n 0 : n) which sets q x.name to p x. name concatenated with n or n. stringf returns a pointer to a string formatted as specified by its print style arguments. For example, in struct node struct node link; int count; a; f( int b[10]; b[4] a.count; suppose a and b point to the symbols for a and b, respectively. a x. name is set to a by defsymbol, and b x.name is set to 40 by local. address (q1, a, 4) is called with q1 representing the address of a. count, and q1 x. name is set to a 4 . Likewise, ....

J. W. Davidson and C. W. Fraser, `Code selection through object code optimization', ACM Trans. on Programming Languages and Systems, 6, 505--526 (1988).


Data-Specific Optimizations - Jinturkar (1996)   (1 citation)  Self-citation (Davidson)   (Correct)

....these optimizations, and . analyses previous research that influenced the design and implementation of these optimizations. 2.1 Software tools 2.1. 1 vpcc vpo compiler system The data specific optimizations introduced in the previous chapter have been implemented in the vpcc vpo compiler system [Davi80, Davi84]. A high level view of this compiler system is shown in Figure 2. It has three major components; a C front end [John78] code expander, and the optimizer. The C front end, after doing semantic analysis emits naive but correct code for an abstract intersection machine. This intersection machine ....

Davidson, J. W. and Fraser, C. W., "Code Selection through Object Code Optimization", Transactions on Programming Languages and Systems, 6(4), pp. 7-32.


Reusable Application-Dependent Machine Descriptions - Bailey, Davidson (1996)   Self-citation (Davidson)   (Correct)

....information in the core instruction module for generating assembly language instructions for the MIPS R2000. The compiler needs to generate an instruction to move a value from one register to another. However, the MIPS does not explicitly provide a register to register move instruction. The RTL [DF84] instruction description is pure 1 , that is, it contains no synthetic instructions. Thus, no move instruction is listed. On the MIPS, a logical or instruction is used with register R[0] as the second operand to synthesize the move instruction. If the compiler cannot glean this information from ....

Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505--- 526, October 1984.


Finite-State Code Generation - Fraser, Proebsting (1999)   (1 citation)  Self-citation (Fraser)   (Correct)

....modes. The Free Software Foundation s GCC compiler uses a very general tuple rewriting system for instruction selection. Based on the PO system for rewriting Register Transfer Language developed by Davidson and Fraser, the system is extremely flexible and powerful, but not known for speed [DF80, DF84]. Tree pattern matching technologies combined with dynamic programming yield e#cient, optimal local code generation for tree based IRs. Previous treepattern matching schemes have used dynamic programming combined with sophisticated matching algorithms [HO82, PLG88, Pro95] to produce least cost ....

Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):7--32, October 1984.


A Retargetable Integrated Code Improver - Benitez (1993)   (2 citations)  Self-citation (Davidson)   (Correct)

....of the code in Figure 2(a) Each register and dereference node whose aliases are completely known is connected to the node containing previous set or use of the item and to the node containing the next set or use of the item. Web links replace combiner links in the instruction selection process [DF84] and are used to substitute the expression assigned to a register item in place of its first use. If the combination represents an actual instruction on the target machine, it replaces the instructions that formed it. Web links are also used to determine where an item is last referenced, a ....

J. W. Davidson and C. W. Fraser, Code Selection through Object Code Optimization, ACM Transactions on Programming Languages and Systems, 6, 4, October 1984, 505-526.


Computing System Descriptions for Systems Software - Mark Bailey (1995)   Self-citation (Davidson)   (Correct)

....architecture, while CHDL s describe the organization of computer designs. Although machine descriptions and CHDL s may appear to be similar, they differ in two important ways: their purpose and level of abstraction. Traditionally, machine descriptions have been used with systems software [Fra77, GG78, GH84, Cat78, DF84, Ben89, BHE91, RF95], while CHDL s have been used, primarily, for simulation or synthesis of hardware designs [Coe89, Das89] This difference in purpose is reflected in the kind of information the description language provides and the way that it is presented. 1.1 Motivation Machines can be described at many levels ....

Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505---526, October 1984.


CSDL: Reusable Computing System Descriptions for Retargetable.. - Bailey   (Correct)

No context found.

Jack W. Davidson and Christopher W. Fraser. Code selection through object code optimization. ACM Transactions on Programming Languages and Systems, 6(4):505--526, October 1984.

First 50 documents

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