2001
DOI: 10.1007/3-540-45306-7_7
|View full text |Cite
|
Sign up to set email alerts
|

User-Extensible Simplification—Type-Based Optimizer Generators

Abstract: Abstract. For abstract data types (ADTs) there are many potential optimizations of code that current compilers are unable to perform. These optimizations either depend on the functional specification of the computational task performed through an ADT or on the semantics of the objects defined. In either case the abstract properties on which optimizations would have to be based cannot be automatically inferred by the compiler. In this paper our aim is to address this level-of-abstraction barrier by showing how … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
13
0

Year Published

2002
2002
2011
2011

Publication Types

Select...
4
2
1

Relationship

1
6

Authors

Journals

citations
Cited by 11 publications
(13 citation statements)
references
References 20 publications
0
13
0
Order By: Relevance
“…The syntactic forms provided by the Pavilion language allow relatively sophisticated analyses and transformations to be written while further hiding the details of the internal program representation. In particular, generalized matching of expression trees provides much more power than is possible using literal tree pattern matching (such as that used in Simplicissimus [125]) or simple finite-state analysis of data flow (such as that used in Broadway [64,65]). Therefore, adding extra functionality to the Pavilion language beyond those previous systems will enhance the ability of users to easily write sophisticated optimizations for their abstractions.…”
Section: Compiler Use Of Abstractionsmentioning
confidence: 99%
See 2 more Smart Citations
“…The syntactic forms provided by the Pavilion language allow relatively sophisticated analyses and transformations to be written while further hiding the details of the internal program representation. In particular, generalized matching of expression trees provides much more power than is possible using literal tree pattern matching (such as that used in Simplicissimus [125]) or simple finite-state analysis of data flow (such as that used in Broadway [64,65]). Therefore, adding extra functionality to the Pavilion language beyond those previous systems will enhance the ability of users to easily write sophisticated optimizations for their abstractions.…”
Section: Compiler Use Of Abstractionsmentioning
confidence: 99%
“…A similar approach that can be implemented using the current C++ language is to provide traits classes that indicate which types model each concept [75,105,125]. Such an implementation simulates concepts using C++, and provides methods to use template metaprogramming [149] to determine whether a type models a particular concept.…”
Section: Placement Of Analysis and Optimization Specificationsmentioning
confidence: 99%
See 1 more Smart Citation
“…Simplicissimus [21,22] shares many of the same goals as CodeBoost. It is implemented as a plug-in to a compiler (currently GCC, but other compliers may be supported as well), and supports user-specified rewriting of expressions.…”
Section: Related Workmentioning
confidence: 99%
“…The author of LiDIA would therefore introduce the rewrite rule 1.0 / f → f.Inverse() whenever f is a LiDIA data type. Specializing rewrite rules such as these can improve performance particularly when multiple generic libraries are used in conjunction [31].…”
Section: Rewritementioning
confidence: 99%