Communications of the ACM
Communications of the ACM
A new method for compiler code generation
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A new strategy for code generation: the general purpose optimizing compiler
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
The Design of an Optimizing Compiler
The Design of an Optimizing Compiler
Proceedings of a symposium on Compiler optimization
Computer structures: Readings and examples (McGraw-Hill computer science series)
Computer structures: Readings and examples (McGraw-Hill computer science series)
Code selection through object code optimization
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Affix grammar driven code generation
ACM Transactions on Programming Languages and Systems (TOPLAS)
A retargetable instruction reorganizer
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Integrating code generation and optimization
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Discovering machine-specific code improvements
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
From semi-syntactic lexical analyzer to a new compiler model
ACM SIGPLAN Notices
Automatic generation of fast optimizing code generators
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
TS: an optimizing compiler for smalltalk
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Fast code generation using automatically-generated decision trees
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
The Marion system for retargetable instruction scheduling
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Using static single assignment form in a code optimizer
ACM Letters on Programming Languages and Systems (LOPLAS)
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Automatic code generation for microprocessor based systems
Proceedings of the 1985 ACM SIGSMALL symposium on Small systems
Retargetable Compiler Code Generation
ACM Computing Surveys (CSUR)
Surveyor's Forum: Retargetable Code Generators
ACM Computing Surveys (CSUR)
Using Peephole Optimization on Intermediate Code
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Formal Framework for the Derivation of Machine-Specific Optimizers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Control Flow Aspects of Semantics-Directed Compiling
ACM Transactions on Programming Languages and Systems (TOPLAS)
Peep: an architectural description driven peephole optimizer
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Automatic generation of peephole optimizations
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Generic control flow reconstruction from assembly code
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
Embedded software in real-time signal processing systems: design technologies
Readings in hardware/software co-design
Automatic generation of machine specific code optimizers
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Description-driven code generation using attribute grammars
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Eliminating redundant object code
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An optimizing compiler for LISP for the Z80
SIGSMALL '82 Proceedings of the 5th ACM SIGSMALL symposium on Small systems
Control flow aspects of semantics directed compiling (Summary)
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
Current status of a portable LISP compiler
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
ACM SIGPLAN Notices
Automatic generation of peephole optimizations
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Finding effective compilation sequences
Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
ACME: adaptive compilation made efficient
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Post-compilation optimization for multiple gains with pattern matching
ACM SIGPLAN Notices
Exploring the structure of the space of compilation sequences using randomized search algorithms
The Journal of Supercomputing
Generic software pipelining at the assembly level
SCOPES '05 Proceedings of the 2005 workshop on Software and compilers for embedded systems
Automatically generating instruction selectors using declarative machine descriptions
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Intermediate representations in imperative compilers: A survey
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
Peephole optimizers improve object code by replacing certain sequences of instructions with better sequences. This paper describes PO, a peephole optimizer that uses a symbolic machine description to simulate pairs of adjacent instructions, replacing them, where possible, with an equivalent single instruction. As a result of this organization, PO is machine independent and can be described formally and concisely: when PO is finished, no instruction, and no pair of adjacent instructions, can be replaced with a cheaper single instruction that has the same effect. This thoroughness allows PO to relieve code generators of much case analysis; for example, they might produce only load/add-register sequences and rely on PO to, where possible, discard them in favor or add-memory, add-immediate, or increment instructions. Experiments indicate that naive code generators can give good code if used with PO.