dc.contributor.author | Bernecky, R. | |
dc.contributor.author | Herhut, S. | |
dc.contributor.author | Scholz, S. | |
dc.date.accessioned | 2011-04-26T08:17:11Z | |
dc.date.available | 2011-04-26T08:17:11Z | |
dc.date.issued | 2011 | |
dc.identifier.citation | Bernecky , R , Herhut , S & Scholz , S 2011 , ' Symbiotic expressions ' , Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) , vol. 6041 , pp. 107-124 . https://doi.org/10.1007/978-3-642-16478-1_7 | |
dc.identifier.issn | 0302-9743 | |
dc.identifier.other | PURE: 84315 | |
dc.identifier.other | PURE UUID: 3dc5d3cc-41e6-4369-b473-548ce2ff48a5 | |
dc.identifier.other | dspace: 2299/5735 | |
dc.identifier.other | Scopus: 78649934232 | |
dc.identifier.uri | http://hdl.handle.net/2299/5735 | |
dc.description | "The original publication is available at www.springerlink.com" Copyright Springer [Full text of this article is not available in the UHRA] | |
dc.description.abstract | We introduce symbiotic expressions, a method for algebraic simplification within a compiler, in lieu of an SMT solver, such as Yices or the Omega Calculator. Symbiotic expressions are compiler-generated expressions, temporarily injected into a program’s abstract syntax tree (AST). The compiler’s normal optimizations interpret and simplify those expressions, making their results available for the compiler to use as a basis for decisions about further optimization of the source program. The expressions are symbiotic, in the sense that both parties benefit: an optimization benefits, by using the compiler itself to simplify expressions that have been attached, lamprey-like, to the AST by the optimization; the program being compiled benefits, from improved run-time in both serial and parallel environments. We show the utility of symbiotic expressions by using them to extend the SAC compiler’s With-Loop-Folding optimization, currently limited to Arrays of Known Shape (AKS), to Arrays of Known Dimensionality (AKD). We show that, in conjunction with array-based constant-folding, injection and propagation of array extrema, and compiler-based expression simplification, symbiotic expressions are an effective tool for implementing advanced array optimizations. Symbiotic expressions are also simpler and more likely to be correct than hard-coded analysis, and are flexible and relatively easy to use. Finally, symbiotic expressions are synergistic: they take immediate advantage of new or improved optimizations in the compiler. Symbiotic expressions are a useful addition to a compiler writer’s toolkit, giving the compiler a restricted subset of the analysis power of an SMT solver. | en |
dc.language.iso | eng | |
dc.relation.ispartof | Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) | |
dc.title | Symbiotic expressions | en |
dc.contributor.institution | School of Computer Science | |
dc.contributor.institution | Science & Technology Research Institute | |
dc.description.status | Peer reviewed | |
rioxxterms.versionofrecord | https://doi.org/10.1007/978-3-642-16478-1_7 | |
rioxxterms.type | Journal Article/Review | |
herts.preservation.rarelyaccessed | true | |