The DOI matches its Crossref record; 1 of the 1 references it cites were found in a registry or an index.
Compiler transformations for high-performance computing
Open accessAbstract
In the last three decades a large number of compiler transformations for optimizing programs have been implemented. Most optimizations for uniprocessors reduce the number of instructions executed by the program using transformations based on the analysis of scalar quantities and data-flow techniques. In contrast, optimizations for high-performance superscalar, vector, and parallel processors maximize parallelism and memory locality with transformations that rely on tracking the properties of arrays using loop dependence analysis. This survey is a comprehensive overview of the important high-level program restructuring techniques for imperative languages, such as C and Fortran. Transformations for both sequential and various types of parallel architectures are covered in depth. We describe the purpose of each transformation, explain how to determine if it is legal, and give an example of its application. Programmers wishing to enhance the performance of their code can use this survey to improve their understanding of the optimizations that compilers can perform, or as a reference for techniques to be applied manually. Students can obtain an overview of optimizing compiler technology. Compiler writers can use this survey as a reference for most of the important optimizations developed to date, and as bibliographic reference for the details of each optimization. Readers are expected to be familiar with modern computer architecture and basic program compilation techniques.
Overview
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cites
Superoptimizer: a look at the smallest program
Massalin, H. (1987) · Proceedings of the second international conference on Architectual support for programming languages and operating systems · doi:10.1145/36206.36194 · Cited by 154
Cited by
Collaboration Processes: Inside the Black Box
Thomson, A. M., & Perry, J. L. (2006) · Public Administration Review · doi:10.1111/j.1540-6210.2006.00663.x · Cited by 1,386
A survey of symbolic execution techniques
Baldoni, R., Coppa, E., D’elia, D. C., Demetrescu, C., & Finocchi, I. (2019) · ACM Computing Surveys · doi:10.1145/3182657 · Cited by 708
Blocking and array contraction across arbitrarily nested loops using affine partitioning
Lim, A. W., Liao, S.-W., & Lam, M. S. (2001) · Proceedings of the eighth ACM SIGPLAN symposium on Principles and practices of parallel programming · doi:10.1145/379539.379586 · Cited by 142
Synthesis of divide and conquer parallelism for loops
Farzan, A., & Nicolet, V. (2017) · Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation · doi:10.1145/3062341.3062355 · Cited by 25
Learning Performance-Improving Code Edits
Shypula, A., Madaan, A., Zeng, Y., Alon, U., Gardner, J., Hashemi, M., Neubig, G., Ranganathan, P., Bastani, O., & Yazdanbakhsh, A. (2023) · arXiv · doi:10.48550/arxiv.2302.07867 · Cited by 146
“…has been applied to improve performance by refactoring code (Mens & Tourwé, 2004; Ag-nihotri & Chug, 2020), identify compiler transformations (Bacon et al., 1994; Talaashrafi, 2022; Mammadli et al., 2021), perform parameter search (Hamadi, 2013; Huang et al., 2019; Kaufman et al., 2021;…”
MethodModular divide-and-conquer parallelization of nested loops
Farzan, A., & Nicolet, V. (2019) · Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation · doi:10.1145/3314221.3314612 · Cited by 16
Metadata
- Authors
- Bacon, D. F., Graham, S. L., & Sharp, O. J.
- Venue
- ACM Computing Surveys
- Published
- 1994-12
- Volume
- 26
- Issue
- 4
- Pages
- 345-420
- ISSN
- 0360-0300 (ISSN-L)
- 1557-7341
- OpenAlex
- W2049890071
- Cited by
- 818
- References
- 1
- FWCI
- 32.93
- Type
- journal article
- Language
- en
- Open access
- bronze
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.