Abstract multiple specialization and its application to program parallelization
โ Scribed by German Puebla; Manuel Hermenegildo
- Publisher
- Elsevier Science
- Year
- 1999
- Tongue
- English
- Weight
- 510 KB
- Volume
- 41
- Category
- Article
- ISSN
- 0743-1066
No coin nor oath required. For personal study only.
โฆ Synopsis
Program specialization optimizes programs for known values of the input. It is often the case that the set of possible input values is unknown, or this set is inยฎnite. However, a form of specialization can still be performed in such cases by means of abstract interpretation, specialization then being with respect to abstract values (substitutions), rather than concrete ones. We study the multiple specialization of logic programs based on abstract interpretation. This involves in principle, and based on information from global analysis, generating several versions of a program predicate for dierent uses of such predicate, optimizing these versions, and, ยฎnally, producing a new, multiply specialized'' program. While multiple specialization has received theoretical attention, little previous evidence exists on its practicality. In this paper, we report on the incorporation of multiple specialization in a parallelizing compiler and quantify its eects. A novel approach to the design and implementation of the specialization system is proposed. The resulting implementation techniques result in identical specializations to those of the best previously proposed techniques but require little or no modiยฎcation of some existing abstract interpreters. Our results show that, using the proposed techniques, the resulting abstract multiple specialization'' is indeed a relevant technique in practice. In particular, in the parallelizing compiler application, a good number of run-time tests are eliminated and invariants extracted automatically from loops, resulting generally in lower overheads and in several cases in increased speedups.
๐ SIMILAR VOLUMES
Representing and reasoning with priorities are important in commonsense reasoning. This paper introduces a framework of prioritized logic programming (PLP), which has a mechanism of explicit representation of priority information in a program. When a program contains incomplete or indefinite informa