2009 International Symposium on Code Generation and Optimization 2009
DOI: 10.1109/cgo.2009.17
|View full text |Cite
|
Sign up to set email alerts
|

A Fast and Precise Static Loop Analysis Based on Abstract Interpretation, Program Slicing and Polytope Models

Abstract: A static loop analysis is a program analysis computing loop iteration counts. This information is crucial for different fields of applications. In the domain of compilers, the knowledge about loop iterations can be exploited for aggressive loop optimizations like Loop Unrolling. A loop analyzer also provides static information about code execution frequencies which can assist feedback-directed optimizations. Another prominent application is the static worst-case execution time (WCET) analysis which relies on a… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
8
0

Year Published

2012
2012
2023
2023

Publication Types

Select...
4
4
2

Relationship

0
10

Authors

Journals

citations
Cited by 39 publications
(8 citation statements)
references
References 26 publications
(26 reference statements)
0
8
0
Order By: Relevance
“…Pointer-based array traversals are analyzed and transformed to closed form array expressions in [15]. Static analysis is employed in [9] to determine loop iteration counts using polytope-based loop evaluation and program slicing. A constraint based approach to recognition of reductions is presented in [18], where a wide class of reductions including their loop iterators is recognized in the LLVM framework.…”
Section: Discussionmentioning
confidence: 99%
“…Pointer-based array traversals are analyzed and transformed to closed form array expressions in [15]. Static analysis is employed in [9] to determine loop iteration counts using polytope-based loop evaluation and program slicing. A constraint based approach to recognition of reductions is presented in [18], where a wide class of reductions including their loop iterators is recognized in the LLVM framework.…”
Section: Discussionmentioning
confidence: 99%
“…Automated Parallel Conversion arrived later with static analysis as the basis for generating information about the program, such as Flow and Dependence analyses, which provided the impetus for transformations. Analysis techniques were algebraic such as Linear or Polyhedral, and algorithmic such as Trees and Graphs [11][12][13][14][15][16][17][18][19]. While translating high-level languages to an intermediate representation (IR) and transforming and optimizing the IR is the norm, several researchers have tried the source-to-source conversions as a basis for optimizations and parallel conversions [20][21][22][23][24][25][26][27][28][29][30][31].…”
Section: Previous Workmentioning
confidence: 99%
“…The framework provides an interface through the extension of JBCMM to allow its user to insert loop limits. The loop limits to be inserted can be obtained using manual annotations [3] or automated analysis techniques [12]. Currently, we use a default value as the loop limit for all the loops.…”
Section: Loop Augmentationmentioning
confidence: 99%