Results 1 -
5 of
5
Code selection through object code optimization
- ACM Transactions on Programming Languages and Systems
, 1984
"... This paper shows how thorough object code optimization has simplified a compiler and made it easy to retarget. The code generator forgoes case analysis and emits naive code that is improved by a retargetable object code optimizer. With this technique, cross-compilers have been built for seven machin ..."
Abstract
-
Cited by 66 (13 self)
- Add to MetaCart
This paper shows how thorough object code optimization has simplified a compiler and made it easy to retarget. The code generator forgoes case analysis and emits naive code that is improved by a retargetable object code optimizer. With this technique, cross-compilers have been built for seven machines, some in as few as three person days. These cross-compilers emit code comparable to host-specific compilers. Categories and Subject Descriptors: D.3.4 [Programming Languages]: Processors--code genera-tion; compilers; optimization
Automatic Generation Of Peephole Optimizations
, 1984
"... This paper describes a system that automatically generates peephole optimizations. A general peephole optimizer driven by a machine description produces optimizations at compile-compile time for a fast, pattern-directed, compile-time optimizer. They form part of a compiler that simplifies retargetin ..."
Abstract
-
Cited by 20 (1 self)
- Add to MetaCart
This paper describes a system that automatically generates peephole optimizations. A general peephole optimizer driven by a machine description produces optimizations at compile-compile time for a fast, pattern-directed, compile-time optimizer. They form part of a compiler that simplifies retargeting by substituting peephole optimization for case analysis.
Quick Compilers Using Peephole Optimization
, 1989
"... machine modeling is a popular technique for developing portable compilers. A compiler can be quickly realized by translating the abstract machine operations to target machine operations. The problem with these compilers is that they trade execution efficiency for portability. Typically the code emit ..."
Abstract
-
Cited by 15 (7 self)
- Add to MetaCart
machine modeling is a popular technique for developing portable compilers. A compiler can be quickly realized by translating the abstract machine operations to target machine operations. The problem with these compilers is that they trade execution efficiency for portability. Typically the code emitted by these compilers runs two to three times slower than the code generated by compilers that employ sophisticated code generators. This paper describes a C compiler that uses abstract machine modeling to achieve portability. The emitted target machine code is improved by a simple, classical rule-directed peephole optimizer. Our experiments with this compiler on four machines show that a small number of very general hand-written patterns (under 40) yields code that is comparable to the code from compilers that use more sophisticated code generators. As an added bonus, compilation time on some machines is reduced by 10 to 20 percent. KEY WORDS: Code generation Compilers Peephole optimizati...
Formal Verification of Transformations for Peephole Optimization
- In FME '97: Formal Methods: Their Industrial Application and Strengthened Foundations, Lecture Notes in Computer Science
, 1997
"... . In this paper we describe a formal verification of transformations for peephole optimization using the PVS system [12]. Our basic approach is to develop a generic scheme to mechanize these kinds of verifications for a large class of machine architectures. This generic scheme is instantiated wi ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
. In this paper we describe a formal verification of transformations for peephole optimization using the PVS system [12]. Our basic approach is to develop a generic scheme to mechanize these kinds of verifications for a large class of machine architectures. This generic scheme is instantiated with a formalization of a non-trivial stack machine [14] and a PDP-11 like two-address machine [2], and we prove the correctness of more than 100 published peephole optimization rules for these machines. In the course of verifying these transformations we found several errors in published peephole transformation steps [14]. From the information of failed proof attempts, however, we were able to discover strengthened preconditions for correcting the erroneous transformations. Keywords: formal verification, transformations, higher-order logic, reusability of specifications. 1 Introduction Peephole optimization is generally understood as the replacement of a sequence of instructions by ...
An Implementation of the Haskell Language
, 1990
"... This report describes the design and implementation of HASKELL system. The areas implemented are the lexical analysis, parsing, intepretation of the lambda tree, and machine code generation. Because of the size, complexity and novelty of the language many of these areas present particular difficulty ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
This report describes the design and implementation of HASKELL system. The areas implemented are the lexical analysis, parsing, intepretation of the lambda tree, and machine code generation. Because of the size, complexity and novelty of the language many of these areas present particular difficulty. A considarable amount of meta-programming was used in order to tackle the size of the project. Contents Introduction v 1 Lexical Analysis 1 1.1 Technical Overview 1 1.2 General Description 3 1.3 The Layout Rule 4 1.4 Alternative Design 5 1.5 Coding for Speed 6 1.5.1 Token Recognition 7 1.5.2 Character Copying 8 1.5.3 Memory Allocation 9 1.5.4 Symbol Table Updates 9 1.5.5 The Ultimate Combination 9 1.5.6 Performance 10 1.6 Testing 10 2 Parsing 11 2.1 Technical Overview 11 2.2 General Description 12 2.3 Handling the Grammar Ambiguities 13 2.3.1 Definable Operators and Function Applications 13 2.3.2 General 15 2.3.3 September Version 15 2.3.4 April Grammar changes 17 2.3.5 April Version 18 ...

