Get 20M+ Full-Text Papers For Less Than $1.50/day. Start a 14-Day Trial for You or Your Team.

Learn More →

The Design and Application of a Retargetable Peephole Optimizer

The Design and Application of a Retargetable Peephole Optimizer 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. http://www.deepdyve.com/assets/images/DeepDyve-Logo-lg.png ACM Transactions on Programming Languages and Systems (TOPLAS) Association for Computing Machinery

The Design and Application of a Retargetable Peephole Optimizer

Loading next page...
 
/lp/association-for-computing-machinery/the-design-and-application-of-a-retargetable-peephole-optimizer-K0oOSO6hSF

References

References for this paper are not available at this time. We will be adding them shortly, thank you for your patience.

Publisher
Association for Computing Machinery
Copyright
The ACM Portal is published by the Association for Computing Machinery. Copyright © 2010 ACM, Inc.
Subject
Optimization
ISSN
0164-0925
DOI
10.1145/357094.357098
Publisher site
See Article on Publisher Site

Abstract

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.

Journal

ACM Transactions on Programming Languages and Systems (TOPLAS)Association for Computing Machinery

Published: Apr 1, 1980

There are no references for this article.