63 citations found. Retrieving documents...
Christopher W. Fraser and David R. Hanson. A code generation interface for ANSI C. Software--Practice and Experience, 21(9), 1991.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Automatic Detection and Diagnosis of Faults in Generated.. - Bailey, Davidson (2001)   (Correct)

....errors were found in C compilers on the MIPS. In this section, we present these results. We selected several C compilers that generate code for the MIPS architecture (a DECStation Model 5000 125) These included the native compiler supplied by DEC, two versions of Fraser and Hanson s lcc compiler [15, 16], several versions of GNU s gcc [17] and a previous version of our own C compiler, vpcc vpo, that used a hand coded calling sequence generator [18] Although we feel that this technique is extremely valuable throughout the compiler development cycle, we believe that it would be fairest to ....

C. W. Fraser and D. R. Hanson, "A code generation interface for ANSI C," Software--Practice and Experience, vol. 21, no. 9, 1991.


`C: A Language for High-Level, Efficient, and.. - Engler, Hsieh, Kaashoek (1996)   (4 citations)  (Correct)

....dcg [5] an efficient, retargetable dynamic code generation system. C offers several improvements over dcg, but retains dcg s portability and flexibility. First, C provides a high level interface for code specification, whereas dcg s interface is based on the intermediate representation of lcc [6]. Second, it provides the opportunity for static analysis, which reduces the cost of dynamic compilation; because it has no compiler support, dcg must do runtime analysis. Finally, by making dynamic code generation a first class capability of a high level language, both profiling and debugging ....

C.W. Fraser and D.R. Hanson. A code generation interface for ANSI C. Technical Report CS-TR-270-90, Princeton University, Dept. of Computer Science, Princeton, New Jersey, July 1990.


The DCode Intermediate Representation: Reference Manual and Report - Gough   (Correct)

....with the representation has been with Modula 2. A similar representation has been used as the basis for a prototype C compiler, and DCode is also being used for Oberon 2. DCode has been used for direct interpretation, in the gpm pc implementation[7] A DCode backend for Fraser and Hanson s lcc[5] has also been produced. Values on the abstract stack are typed. Nevertheless, operations such as add exist in different forms for integers, hugeints, single and double precision floating point. The arithmetic operators are neither parameterized by type nor are they polymorphic, although either ....

C W Fraser and D R Hanson. A code-generation interface for ANSI-C, Software Practice and Experience, Vol 21, Sep. 1991.


Incorporating Application Semantics and Control Into Compilation - Engler (1997)   (23 citations)  (Correct)

....in Section 4 and Section 5. We expect MAGIK to evolve with further experience. To aid iterative design, the current implementation has emphasized simplicity at all levels. MAGIK is built on top of the lcc retargetable ANSI C compiler [3] and uses its IR language as its fundamental interface [4] (higher level interfaces are Type C name V void C signed char UC unsigned char S signed short US unsigned short I int U unsigned L long UL unsigned long F float D double P void Table 1: MAGIK types (superset of lcc s types) crafted on top of this) The regularity and small size ....

C.W. Fraser and D.R. Hanson. A code generation interface for ANSI C. Software---Practice and Experience, 21(9):963--988, September 1991.


Interface Compilation: Steps toward Compiling Program Interfaces.. - Engler (1999)   (7 citations)  (Correct)

....are discussed in Section 4. We expect Magik to evolve with further experience. To aid iterative design, the current implementation has emphasized simplicity at all levels. Magik is built on top of the lcc retargetable ANSI C compiler [6] and uses its IR language as its fundamental interface [7] (higher level interfaces are crafted on top of this) The regularity and small size of lcc s IR has been a major asset. Importantly, since mapping other IR s to the Magik IR and back should be straightforward, it can be realistically used as a basis for defining a standard Type C name V void C ....

C.W. Fraser and D.R. Hanson. A code generation interface for ANSI C. Software---Practice and Experience, 21(9):963--988, September 1991.


Target-Sensitive Construction of Diagnostic Programs for.. - Mark Bailey Jack   (Correct)

....Several errors were found in C compilers on the MIPS. In this section, we present these results. We selected several C compilers that generate code for the MIPS architecture (a DECStation Model 5000 125) These included the native compiler supplied by DEC, a version of Fraser and Hanson s lcc [FH91] compiler, several versions of GNU s gcc [Sta92] and a previous version of our own C compiler that used a hand coded calling sequence generator. Although we feel that this technique is extremely valuable throughout the compiler development cycle, we believe that it would be fairest to evaluate ....

ChristopherW. Fraser and DavidR. Hanson. A code generation interface for ANSI-C. Software---Practice and Experience, 21(9), 1991.


Construction of Systems Software Using Specifications of.. - Bailey, Davidson   (Correct)

....Several errors were found in C compilers on the MIPS. In this section, we present these results. We selected several C compilers that generate code for the MIPS architecture (a DECStation Model 5000 125) These included the native compiler supplied by DEC, two versions of Fraser and Hanson s lcc [Fraser and Hanson 1991; Fraser and Hanson 1995] compiler, several versions of GNU s gcc [Stallman 1992] and a previous version of our own C compiler that used a hand coded calling sequence generator. Although we feel that this technique is extremely valuable throughout the compiler development cycle, we believe that ....

Fraser, C. W. and Hanson, D. R. (1991). A code generation interface for ANSI C. Software--Practice and Experience, 21(9).


Target-Sensitive Construction of Diagnostic Programs for.. - Bailey, Davidson (1995)   (Correct)

....Several errors were found in C compilers on the MIPS. In this section, we present these results. We selected several C compilers that generate code for the MIPS architecture (a DECStation Model 5000 125) These included the native compiler supplied by DEC, a version of Fraser and Hanson s lcc [FH91] compiler, several versions of GNU s gcc [Sta92] and a previous version of our own C compiler that used a hand coded calling sequence generator. Although we feel that this technique is extremely valuable throughout the compiler development cycle, we believe that it would be fairest to evaluate ....

Christopher W. Fraser and David R. Hanson. A code generation interface for ansi-c. Software---Practice and Experience, 21(9), 1991.


fcc Fork95 Compiler Reference Manual - Keßler (1995)   (Correct)

....is the Fork95 compiler for the SB PRAM. The SB PRAM is a lock step synchronous, massively parallel computer with a (from the programmer s view) physically shared memory [1, 8, 13] Fork95 [9, 10, 11] is a redesign of the PRAM language FORK [7] The fcc implementation is based on the lcc compiler [4, 5, 6] for ANSI C [2] 1 Installing fcc Extract the distribution into its own directory. All paths below are relative to this directory. It includes the following top level directories; src source files of proper compiler and driver man man page doc documentation include include files examples ....

C. W. Fraser and D. R. Hanson. A code generation interface for ANSI C. Software---Practice & Experience, 21(9):963--988, Sept. 1991. 10


A General Approach for Run-Time Specialization and its.. - Consel, al. (1995)   (104 citations)  (Correct)

....of run time specialization and address issues related to compiling code at run time. Engler and Proebsting s approach consists of providing the programmer with operations to construct templates manually in the intermediate representation of the LCC compiler (a form of register transfer language) [10]. Then, at run time the operations to construct templates are executed, and a fast code generator is invoked to compile templates into binary code. Not only is this approach error prone because templates are written manually, but it also forces the code generation process to be overly simple ....

C. W. Fraser and D. R. Hanson. A code generation interface for ANSI C. Software - Practice and Experience, 21(9):963--988, 1991.


The DCode Intermediate Program Representation Reference Manual and .. - Gough (1995)   (1 citation)  (Correct)

....with the representation has been with Modula 2. A similar representation has been used as the basis for a prototype C compiler, and DCode is also being used for Oberon 2. DCode has been used for direct interpretation, in the gpm pc implementation[7] A DCode backend for Fraser and Hanson s lcc[5] has also been produced. Values on the abstract stack are typed. Nevertheless, operations such as add exist in different forms for integers, single and double precision floating point. The arithmetic operators are neither parameterized by type nor are they polymorphic, although either of these ....

C W Fraser and D R Hanson. A code-generation interface for ANSI-C, Software Practice and Experience, Vol 21, Sep. 1991.


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

....is to reconcile these two goals with C s imperative code generation model, which makes it difficult to optimize dynamic code at static compilation time. This chapter describes how tcc handles this tradeoff and evaluates tcc s performance. 4. 1 Architecture The tcc compiler is based on lcc [31, 30], a portable compiler for ANSI C. lcc performs common subexpression elimination within extended basic blocks, and uses lburg [32] to find the lowest cost implementation of a given IR level construct. Otherwise, it performs few optimizations. Figure 4 1 illustrates the interaction of static and ....

C. W. Fraser and D. R. Hanson. A code generation interface for ANSI C. Technical Report CS-TR-270-90, Department of Computer Science, Princeton University, 1990.


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

.... 2, 1, count lw 3, 0( 2) nop #load delay addu 3, 3, 3 sw 3, 0( 2) 4 cycles 5 cycles Figure 5: Code generated from the DAG in Fig. 4 for the MIPS R3000 with optimal and DAG splitting code selection. p resides in register 1. valid (e.g. it is valid for lcc s intermediate representation [FH91, FH95]) 2 Note that the problem of optimal parsing becomes easier, if this assumption is not valid, because there is no choice between replication and non replication. Common subexpression elimination also relies on this assumption 3 . One approach for handling DAGs is to split them into trees (by ....

....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 new rule can result in worse code) and that the resulting code selectors are slower. lcc s front end [FH91, FH95] can produce intermediate representation DAGs or trees. The code selectors in [FH95] are based on tree parsing; they deal with the problem by asking lcc s front end to split the DAGs into trees. In [BE91] an approach for dealing with DAGs in the context of tree parsing is discussed that has the ....

Christopher W. Fraser and David R. Hanson. A code generation interface for ANSI C. Software--- Practice and Experience, 21(9):963--988, September 1991.


Decoupled Pre-Fetching for Distributed Shared Memory - Watson, Rawsthorne (1995)   (4 citations)  (Correct)

....a real CPU. However, this decision implied the need to produce code for the idealized processor from a suitable high level language. It was felt that C was the obvious choice to give access to a range of existing benchmarks. We therefore have produced a modified version of the Princeton lcc system [19] which compiles directly to the simulator instruction set. Three programs were chosen for our initial investigation. Two of them are scientific codes with relatively regular accessing patterns and therefore could probably be handled by other pre fetching techniques. However, it is important to ....

C.W. Fraser, D.R.Hanson, "A Code Generation Interface for ANSI C", Research Report CS-TR-270-90, Princeton University, July 1990.


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

....time will be incurred by the executing program. Our dynamic code generation 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 ....

....invokes that code as an indirect call to a C procedure. To make client programs portable, they specify code using a machine independent intermediate representation (IR) that is passed to dcg. The logical infrastructure of dcg is taken directly from an existing retargetable ANSI C compiler, lcc [8]. lcc s IR is smaller, simpler, and more easily understood than the obvious alternative, gcc s. The simplicity and regularity of the IR is important because this IR must be easily generated by client programs. In essence, every client program is a small compiler front end. lcc s IR consists of ....

[Article contains additional citation context not shown here]

Christopher W. Fraser and David R. Hanson. A code generation interface for ANSI C. Software---Practice and Experience, 21(9):963--988, September 1991.


Graphical User Interface for Compiler Optimizations with.. - Harvey, Tyson (1996)   (2 citations)  (Correct)

....of the implementation. The target independent front end and the target dependent back end of lcc exist together in a single executable glued together by an efficient interface. This interface consists of only 18 functions and the C code being compiled is represented by a 36 operator dag language [8]. This language is the intermediate format of lcc and represents the source program as it goes from the front end to the back end in the compilation process. The dag language has gone through many changes during the development of lcc. In each change, the authors usually took a more complex ....

Christopher W. Fraser and David R. Hanson. A code generation interface for ANSI C. Technical Report TR-270-90, Department of Computer Science, Princeton University, June 1990.


Optimizing an ANSI C Interpreter with Superoperators - Proebsting (1995)   (5 citations)  (Correct)

....files. The interpreter is implemented in assembly language for efficiency. Both the translator, hti, and the interpreter are quickly retargeted with a small machine specification. 2 Translator Output hti uses lcc s front end to translate ANSI C programs into its intermediate representation (IR) [FH91b, FH91a]. lcc s IR consists of expression trees over a simple 109 operator language. For example, the tree for 2 3 would be ADDI(CNSTI,CNSTI) where ADDI represents integer addition (ADD I) and the CNSTI s represent integer constants. The actual values of the CNSTI s are IR node attributes. hti s ....

Christopher W. Fraser and David R. Hanson. A code generation interface for ANSI C. Software---Practice and Experience, 21(9):963--988, September 1991.


The Fork95 Parallel Programming Language: Design.. - Keßler, Seidl (1997)   (Correct)

....processors of the target group to arrive at that point and to re synchronize with them. 4.5 Implementation A first version of a compiler for Fork95 has been implemented. It is partially based on lcc 1. 9, a one pass ANSI C compiler developed by Chris Fraser and David Hanson at Princeton, NY [34, 35, 36]. Table ii shows the overheads introduced by the different constructs of the language. Division has to be implemented in software: therefore the huge (and varying) number in the last line. Also, in a synchronous region, extra synchronization has to occur afterwards. The cost of calls clearly can ....

C. W. Fraser and D. R. Hanson. A code generation interface for ANSI C. Software -- Practice and Experience, 21(9):963--988, Sept. 1991.


Fork95 Language and Compiler for the SB-PRAM - Christoph W. Keßler, Helmut Seidl (1995)   (Correct)

....pointers have to be restored as in the last item above, before jumping out of the branch. 4.5 Implementation A first version of a compiler for Fork95 has been implemented. It is partially based on lcc 1. 9, a one pass ANSI C compiler developed by Chris Fraser and David Hanson at Princeton, NY [FH91a, FH91b, FH95] Table 1 shows the overheads introduced by the different constructs of the language. The compiler generates assembler code which is processed by the SB PRAM assembler prass into object code in COFF format. The SB PRAM linker plink produces executable code that runs on the ....

C. W. Fraser and D. R. Hanson. A code generation interface for ANSI C. Software---Practice & Experience, 21(9):963--988, Sept. 1991.


Meander Language and System - Overview - Wirtz   (Correct)

....nodes and the analysis of graphs w.r.t. structural deadlocks. An incremental analysis component checks sequential C code annotations w.r.t. declaration of variables, proper typing and consistent usage of communication scripts in corresponding snd rcv annotations. The C analysis uses the lcc [1] public domain C frontend as its starting point which has been equipped with functions to generate an annotated syntax tree instead of symbolic assembler code. The transformation component automatically generates the C source code for a main program for each specified process by combining ....

Frase, C. W., and Hanson, D. R. A code generation interface for ANSI C. Software---Practice & Experience 21, 9 (September 1991), 963--988.


Engineering Efficient Code Generators using Tree.. - Fraser, Hanson.. (1992)   (1 citation)  Self-citation (Fraser Hanson)   (Correct)

....of specification (e.g. including YACC style semantic actions) and emits a burg specification [8] Only the rules on lines 4, 6, 7, and 9 have non zero costs. The rules on lines 5, 9, 12, and 13 are chain rules. The operators in Figure 2 are some of the operators in lcc s intermediate language [6]. The operator names are formed by concatenating a generic operator name with a one character type suffix like C, I, or P, which denote character, integer, and pointer operations, respectively. The operators used in Figure 2 denote integer addition (ADDI) forming the address of a local variable ....

....pattern matching [5] It generates hard code instead of tables. Its state numbers are pointers to state records, which hold vectors of the (M; C) values for successful matches. The state record for the specification in Figure 2 is struct state int op; struct state left, right; short cost[6]; short rule[6] iburg also generates integer codes for the non terminals, which index the cost and rule vectors: #define stmtNT 1 #define dispNT 2 #define rcNT 3 #define regNT 4 #define conNT 5 By convention, the start non terminal has value 1. State records are cleared when ....

[Article contains additional citation context not shown here]

C. W. Fraser and D. R. Hanson. A code generation interface for ANSI C. Software---Practice & Experience, 21(9):963--988, Sept. 1991.


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

No context found.

C. W. Fraser and D. R. Hanson, `A code generation interface for ANSI C', Research Report CS-TR-270-90, Princeton University, Department of Computer Science, Princeton, NJ, July 1990.


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

....other compilers, but it is smaller than typical intermediate languages. The functions, which can be implemented as true functions or as macros, are listed in Appendix A and are described in the sections below. The front and back ends are clients of each other. The front end calls a 1 References [4] and [6] were drawn from earlier versions of this report. This report is slightly more detailed and corresponds to the latest release of lcc. 2 The lcc front end and a sample code generator are available for anonymous ftp from princeton.edu. The file README in the directory pub lcc gives ....

....q x.offset, p scope = PARAM ap : fp ) which computes q x.offset and q x.name for locals and parameters, or sets q x.name to p x.name concatenated with n or n for other variables. 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 symbol table entries for a and b, respectively. a x.name is set to a by defsymbol, and b x.offset and b x.name are set to, respectively, 40 40(fp) by local. address(q1,a,4) is called with q1 representing the address of a.count, and ....

[Article contains additional citation context not shown here]

C. W. Fraser and D. R. Hanson. A code generation interface for ANSI C. Software---Practice & Experience, 21(9):963--988, Sept. 1991.


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

No context found.

Christopher W. Fraser and David R. Hanson. A code generation interface for ANSI C. Software--Practice and Experience, 21(9), 1991.


A Virtual Assembler for an Abstract Machine - Moonen (1994)   (Correct)

No context found.

C.W. Fraser and D.R. Hanson. A code generation interface for ANSI C. Software -- Practice & Experience, 21(9):963--988, September 1991.

First 50 documents  Next 50

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