Back to Search
Start Over
Generalized profile-guided iterator recognition
- Source :
- CC, Manilov, S, Vasiladiotis, C & Franke, B 2018, Generalized Profile-Guided Iterator Recognition . in Proceedings of the 27th International Conference on Compiler Construction (CC2018) . Vienna, Austria, pp. 185-195, 27th International Conference on Compiler Construction, Vienna, Austria, 24/02/18 . https://doi.org/10.1145/3178372.3179511
- Publication Year :
- 2018
- Publisher :
- ACM, 2018.
-
Abstract
- Iterators prescribe the traversal of data structures and determine loop termination, and many loop analyses and transformations require their exact identification. While recognition of iterators is a straight-forward task for affine loops, the situation is different for loops iterating over dynamic data structures or involving control flow dependent computations to determine the next data element. In this paper we propose a compiler analysis for recognizing loop iterators code for a wide class of loops. We initially develop a static analysis, which is then enhanced with profiling information to support speculative code optimizations. We have prototyped our analysis in the LLVM framework and demonstrate its capabilities using the SPEC CPU2006 benchmarks. Our approach is applicable to all loops and we show that we can recognize iterators in, on average, 88.1% of over 75,000 loops using static analysis alone, and up to 94.9% using additional profiling information. Existing techniques perform substantially worse, especially for C and C++ applications, and cover only 35–44% of the loops. Our analysis enables advanced loop optimizations such as decoupled software pipelining, commutativity analysis and source code rejuvenation for real-world applications, which escape analysis and transformation if loop iterators are not recognized accurately.
- Subjects :
- Iterator
Source code
Computer science
media_common.quotation_subject
020207 software engineering
02 engineering and technology
Parallel computing
Static analysis
Data structure
computer.software_genre
020202 computer hardware & architecture
Software pipelining
Control flow
Escape analysis
0202 electrical engineering, electronic engineering, information engineering
Compiler
computer
media_common
Subjects
Details
- Database :
- OpenAIRE
- Journal :
- Proceedings of the 27th International Conference on Compiler Construction
- Accession number :
- edsair.doi.dedup.....be6aa2db5c83e717628b60f30af2bbf6
- Full Text :
- https://doi.org/10.1145/3178372.3179511