Array-access analysis: Difference between revisions

Content deleted Content added
{{PL-stub}}
tag as one source
 
(23 intermediate revisions by 15 users not shown)
Line 1:
{{unreferencedone source |date=JulyApril 20092024}}
In [[computer science]], '''array-access analysis''' is a [[compiler analysis]] approach used to decide the read and write access patterns to elements or portions of arrays.<ref name="Paek2002">{{cite journal |last1=Paek |first1=Yunheung |last2=Hoeflinger |first2=Jay |last3=Padua |first3=David |title=Efficient and precise array access analysis |journal=ACM Transactions on Programming Languages and Systems |date=January 2002 |volume=24 |issue=1 |pages=65–109 |doi=10.1145/509705.509708|doi-access=free }}</ref>
{{Expert-subject|Computer science|date=February 2009}}
 
The major data type manipulated in scientific programs is the array. The define/use analysis on a whole array is insufficient for aggressive [[compiler optimization]]s such as [[Automatic parallelization|auto parallelization]] and array [[arrayPrivatization (computer programming)|privatization]]. Array access analysis aims to obtain the knowledge of which portions or even which elements of the array are accessed by a given code segment ([[basic block]], [[Control flow#Loops|loop]], or even at the [[Subroutine|procedure]] level).
In [[computer science]], '''array access analysis''' is a [[compiler analysis]] used to decide the read and write access patterns to elements or portions of arrays.
 
Array -access analysis can be largely categorized into exact (or reference-list-based) and summary methods for different tradeoffs of accuracy and complexity. Exact methods are precise but very costly in terms of computation and space storage, while summary methods are approximate but can be computed quickly and economically.
The major data type manipulated in scientific programs is the array. The define/use analysis on a whole array is insufficient for aggressive [[compiler optimization]]s such as [[auto parallelization]] and [[array privatization]]. Array access analysis aims to obtain the knowledge of which portions or even which elements of the array are accessed by a given code segment ([[basic block]], [[Control flow#Loops|loop]], or even at the [[procedure]] level).
 
Typical exact array -access analysis include linearization and [[atom images]]. Summary methods can be further divided into [[array sections]], bounded regular sections using [[triplet notation]], linear-constraint methods such as data -access descriptors and [[array -region analysis]].
Array access analysis can be largely categorized into exact (or reference-list-based) and summary methods for different tradeoffs of accuracy and complexity. Exact methods are precise but very costly in terms of computation and space storage, while summary methods are approximate but can be computed quickly and economically.
 
Typical exact array access analysis include linearization and [[atom images]]. Summary methods can be further divided into [[array sections]], bounded regular sections using [[triplet notation]], linear-constraint methods such as data access descriptors and [[array region analysis]].
 
==References==
{{reflist}}
 
{{Compiler optimizations}}
{{PL-stub}}
 
[[Category:Compiler theoryconstruction]]
[[Category:Static program analysis]]
 
 
{{PLprog-lang-stub}}
[[Category:Compiler theory]]