This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
A manifest expression is a programming language construct that a compiler can analyse to deduce which values it can take without having to execute the program. This information can enable compiler optimizations, in particular loop nest optimization, and parallelization through data dependency analysis. An expression is called manifest if it is computed only from outer loop counters and constants (a more formal definition is given below).
A manifest expression is a compile time computable function which depends only on
- compile-time constants,
- manifest variable references, and
- loop counters of loops surrounding the expression.
A manifest variable reference is itself defined as a variable reference with
- a single, unambiguous definition of its value,
- which is itself a manifest expression.
The single, unambiguous definition is particularly relevant in procedural languages, where pointer analysis and/or data flow analysis is required to find the expression that defines the variable value. If several defining expressions are possible (e.g. because the variable is assigned in a condition), the variable reference is not manifest.
Feautrier, Paul (February 1991). "Dataflow analysis of array and scalar references". International Journal of Parallel Programming. 20 (1): 23–53. CiteSeerX 10.1.1.31.1342. doi:10.1007/BF01407931. eISSN 1573-7640. ISSN 0885-7458.
|This programming-language-related article is a stub. You can help Wikipedia by expanding it.|