A technique for recursive invariance detection and selective program specialization
Data(s) |
01/08/1991
|
---|---|
Resumo |
This paper presents a technique for achieving a class of optimizations related to the reduction of checks within cycles. The technique uses both Program Transformation and Abstract Interpretation. After a ñrst pass of an abstract interpreter which detects simple invariants, program transformation is used to build a hypothetical situation that simpliñes some predicates that should be executed within the cycle. This transformation implements the heuristic hypothesis that once conditional tests hold they may continué doing so recursively. Specialized versions of predicates are generated to detect and exploit those cases in which the invariance may hold. Abstract interpretation is then used again to verify the truth of such hypotheses and conñrm the proposed simpliñcation. This allows optimizations that go beyond those possible with only one pass of the abstract interpreter over the original program, as is normally the case. It also allows selective program specialization using a standard abstract interpreter not speciñcally designed for this purpose, thus simplifying the design of this already complex module of the compiler. In the paper, a class of programs amenable to such optimization is presented, along with some examples and an evaluation of the proposed techniques in some application áreas such as floundering detection and reducing run-time tests in automatic logic program parallelization. The analysis of the examples presented has been performed automatically by an implementation of the technique using existing abstract interpretation and program transformation tools. |
Formato |
application/pdf |
Identificador | |
Idioma(s) |
eng |
Publicador |
Facultad de Informática (UPM) |
Relação |
http://oa.upm.es/14485/1/HERME_ARC_1991-3.pdf http://link.springer.com/chapter/10.1007%2F3-540-54444-5_109 |
Direitos |
http://creativecommons.org/licenses/by-nc-nd/3.0/es/ info:eu-repo/semantics/openAccess |
Fonte |
Programming Language Implementation and Logic Programming | 3rd International Symposium, PLILP '91 | August 26-28, 1991 | Passau, Germany |
Palavras-Chave | #Informática |
Tipo |
info:eu-repo/semantics/conferenceObject Ponencia en Congreso o Jornada PeerReviewed |