Introducing symbolic problem solving techniques in the dependence testing phases of a vectorizer

  • Authors:
  • A. Lichnewsky;F. Thomasset

  • Affiliations:
  • INRIA, France;INRIA, France

  • Venue:
  • ICS '88 Proceedings of the 2nd international conference on Supercomputing
  • Year:
  • 1988

Quantified Score

Hi-index 0.02

Visualization

Abstract

The purpose of a vectorizer is to perform program restructuring in order to exhibit the most efficiently exploitable forms of vector loops. This is guided by a suitable form of semantic analysis, Dependence Testing, which must be precise in order to fully exploit the architecture. Most studies reduce this phase to the application of a series of explicitly computable arithmetic criteria. In many cases, this will fail if the criteria cannot be computed numerically, and contain symbols which cannot be evaluated. This also makes the use of other information pertaining to these symbols difficult. It is shown here that it is possible to extract symbolic equations from some of the classical criteria, merge them with other symbolic knowledge about the program, and use the global system to decide the non-existence of a dependence. In the context of the VATIL vectorizer [17, 16], it is also shown possible to control the computation cost, and obtain a good overall efficiency.