The C programming language
Automatic Derivation of Code Generators from Machine Descriptions
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Design and Application of a Retargetable Peephole Optimizer
ACM Transactions on Programming Languages and Systems (TOPLAS)
Register allocation via usage counts
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
The Design of an Optimizing Compiler
The Design of an Optimizing Compiler
Compiler Construction for Digital Computers
Compiler Construction for Digital Computers
Machine-independent register allocation
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
ACM SIGPLAN Notices
Principles of Compiler Design (Addison-Wesley series in computer science and information processing)
Principles of Compiler Design (Addison-Wesley series in computer science and information processing)
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
An Instruction Issuing Approach to Enhancing Performance in Multiple Functional Unit Processors
IEEE Transactions on Computers
Retargetable Compiler Code Generation
ACM Computing Surveys (CSUR)
A Formal Framework for the Derivation of Machine-Specific Optimizers
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
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Hi-index | 0.00 |
Compilers usually eliminate common subexpressions in intermediate code, not object code. This reduces machine-dependence but misses the machine-dependent common subexpressions introduced by the last phases of code expansion. This paper describes a machine-independent procedure for eliminating machine-specific common subexpressions. It also identifies dead variables, defines windows for a companion peephole optimizer, and forms the basis of a retargetable register allocator. Its techniques for handling machine-specific data should generalize to other optimizations as well.