[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/258948.258971acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article
Free access

Implementing bit-addressing with specialization

Published: 01 August 1997 Publication History

Abstract

General media-processing programs are easily expressed with bit-addressing and variable-sized bit-fields. But the natural implementation of bit-addressing relies on dynamic shift offsets and repeated loads, resulting in slow execution. If the code is specialized to the alignment of the data against word boundaries, the offsets become static and many repeated loads can be removed. We show how introducing modular arithmetic into an automatic compiler generator enables the transformation of a program that uses bit-addressing into a synthesizes of fast specialized programs.In partiai-evaluation jargon we say: modular arithmetic is supported by extending the binding time lattice used by the static analysis in a polyvariant compiler generator. The new binding time Cyclic functions like a partially static integer.A software cache combined with a fast, optimistic sharing analysis built into the compilers eliminates repeated loads and stores. The utility of the transformation is demonstrated with a collection of examples and benchmark data. The examples include vector arithmetic, audio synthesis, image processing, and a base-64 codec.

References

[1]
A V Aho, R Sethi, J D Ullman. Compilers.' Principles, Techniques, and Tools. Addison-Wesley 1986.
[2]
Anders Bondorf, Dirk Dussart. Handwriting Cogen for a CPS-Based Partial Evaluator. Partial Evaluation and Semantics-Based Program Manipulation, 1994.
[3]
Craig Chambers, David Ungar. Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs. Conference on Programming Language Design and Implementation, 1990.
[4]
Charles Consel, Luke Homof, Francois No~l, Jacque Noy6, Nicolae Volanschi. A Uniform Approach for Compile-Time and Run-Time Specialization. Dagstuhl Work. shop on Partial Evaluation (LNCSIl IO), 1996.
[5]
Charles Consel. Polyvariant Binding-Time Analysis For Applicative Languages. Partial Evaluation and Semantics.Based Program Manipulation, 1993.
[6]
Olivier Danvy, Andrzej Filinksi. Representing Control, a Study of the CPS Transformation. Mathematical Structures in Computer Science, 2(4):361-391.
[7]
Olivier Danvy. Type-Directed Partial Evaluation. Prin. ciples of Programming Languages, 1996.
[8]
Alain Deutsch. lnterprocedural May-Alias analysis for pointers: Beyond k-limiting. Conference on Programming Language Design and Implementation, 1994.
[9]
Scott Draves. Compiler Generation for Interactive Graphics using Intermediate Code. Dagstuhl Workshop on Partial Evaluation (LNCSI110), 1996.
[10]
Dawson Engler, Wilson Hsieh, M Frans Kaashoek. 'C: A Language for High-Level, Efficient, and Machineindependent Dynamic Code Generation. Conference on Pro. gramming Language Design and Implementation, 1995.
[11]
Y Futamura. Partial evalutaion of computation process - an approach to a compiler-compiler. Systems, Computers, Controls, 2:45-50.
[12]
Carsten K Gomar0, Neil Jones. A partial evaluator for the untyped lambda-calculus. Journal of Functional Programming, 1:21-69.
[13]
James Gosling, Bill Joy, Guy Steele. The Java Language Specification. Addison-Wesley 1996.
[14]
Philippe Granger. Static Analysis of Arithmetic Congruences. International Journal of Computer Math, ?:165- 199.
[15]
P Le Guemic, M Le Borgne, T Gauthier, C Le Maire. Programing real time applications with SIGNAL. Proceedings of the IEEE, 79(9):1305-1320.
[16]
Fritz Henglein. Efficient Type Inference for Higher- Order Binding-Time Analysis. International Conference on Functional Programming Languages and Computer Architecture, 1991.
[17]
John L Hennessy, David A Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann 1990.
[18]
IEEE. IEEE Standard 1076: VHDL Language Reference Manual. IEEE 199 I.
[19]
Neil Jones, Carsten K Gomard, Peter Sestoft. Partial Evaluation and Automatic Program Generation. Prentice- Hall 1993.
[20]
Ulric J~rring, William Schefiis. Compilers and Staging Transformations. Principles of Programming Languages, 1986.
[21]
Nell D Jones, P Sestoft, H S0ndergaard. An experiment in partial evaluation: The generation of a compiler generator. Rewriting Techniques and Applications, Dijon, France, 1985.
[22]
Peter Lee, Mark Leone. Optimizing ML with Run-Time Code Generation. Conjerence on Programming Language Design and Implementation, 1996.
[23]
Henry Massalin. Efficient Implementation of Fundamental Operating System Services. Columbia 1992.
[24]
Rob Pike, Bart Locanthi, John Reiser. Hardware/Software Trade-oil's for Bitmap Graphics on the Blit. Software-Practice and Experience, 15:131-15 I.
[25]
Tim Sheard. A Type-directed, On-line, Partial Evaluatot for a Polymorphic Language. OGI-TR-96-004.
[26]
Guy Steele. Common Lisp the Language. Digital Press 1990.
[27]
Philip Wadler. The Essence of Functional Programming. Principles of Programming Languages, 1992.
[28]
Daniel Weise, Roland Conybeare, Erik Ruf, Scott Seligman. Automatic online program specialization. International Conference on Functional Programming Languages and Computer Architecture, 1991.

Cited By

View all
  • (2005)An Operational Foundation for Delimited Continuations in the CPS HierarchyLogical Methods in Computer Science10.2168/LMCS-1(2:5)20051:2Online publication date: 8-Nov-2005
  • (1998)Partial evaluation for media processingACM Computing Surveys (CSUR)10.1145/289121.28914230:3es(21-es)Online publication date: 1-Sep-1998

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICFP '97: Proceedings of the second ACM SIGPLAN international conference on Functional programming
August 1997
326 pages
ISBN:0897919181
DOI:10.1145/258948
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 August 1997

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ICFP97
Sponsor:
ICFP97: International Conference on Functional Programming 1997
June 9 - 11, 1997
Amsterdam, The Netherlands

Acceptance Rates

ICFP '97 Paper Acceptance Rate 25 of 78 submissions, 32%;
Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)57
  • Downloads (Last 6 weeks)8
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2005)An Operational Foundation for Delimited Continuations in the CPS HierarchyLogical Methods in Computer Science10.2168/LMCS-1(2:5)20051:2Online publication date: 8-Nov-2005
  • (1998)Partial evaluation for media processingACM Computing Surveys (CSUR)10.1145/289121.28914230:3es(21-es)Online publication date: 1-Sep-1998

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media