Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
Modular cloning
RISE, Swedish ICT, SICS, Computer Systems Laboratory.
2008 (English)Report (Other academic)
Abstract [en]

In this paper we deal with the problem of making context dependent interprocedural optimizations (where the legality of optimizing a function depends on properties of the callers of the function) effective and compatible with (a form of) separate compilation. We improve effectiveness by cloning, generating several versions of a single function optimized for different call sites. We attack the separate compilation problem, that code can not be generated until all calls of a function are known, by splitting the compilation process into two phases. The first phase analyses the modules one at a time in bottom-up dependency order ('main' is processed last) and produces code in an intermediate language where the constructs targeted by the optimization are annotated to control the application of the optimization. In cases where the legality of an optimization depends on properties of the callers of the function, these annotations can take the form of annotation variables which become extra formal parameters. The second phase traverses the modules in top-down dependency order, removing all of these extra parameters by specialization. We illustrate our approach with an integrated programming analysis and transformation system featuring a context sensitive type based analysis, cloning with sharing of identical clones and a modular implementation allowing for the compilation of large programs. The system implements cheap eagerness and redundant eval elimination for a lazy functional language.

Place, publisher, year, edition, pages
Swedish Institute of Computer Science , 2008, 1. , p. 13
Series
SICS Technical Report, ISSN 1100-3154 ; 2008:07
Keywords [en]
Modular compilation, cheap eagerness, cloning, static analysis, type inference, functional programming, optimization, program transformation
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:ri:diva-22491OAI: oai:DiVA.org:ri-22491DiVA, id: diva2:1042056
Available from: 2016-10-31 Created: 2016-10-31 Last updated: 2020-12-02Bibliographically approved

Open Access in DiVA

fulltext(262 kB)65 downloads
File information
File name FULLTEXT01.pdfFile size 262 kBChecksum SHA-512
0e304fe2d1cc9606f956df63067942b1eb13b19e2ae974906206dcb34011bb1495f8fc3cd1453fb16c665f9496dafee1dd1178810de949c8619a910a5b53733b
Type fulltextMimetype application/pdf
fulltext(386 kB)29 downloads
File information
File name FULLTEXT02.psFile size 386 kBChecksum SHA-512
5942acf04ae4540371650d946a5893ee3c21834cc61c98da39055cd4648670409b898f9152977cdeb4f9ee16663d8ae5c3e8ec7c87c1b50f452e48f17a646d90
Type fulltextMimetype application/postscript

By organisation
Computer Systems Laboratory
Computer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 94 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 62 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf