Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Open access

Efficiently computing static single assignment form and the control dependence graph

Published: 01 October 1991 Publication History
First page of PDF

References

[1]
AHo, A. V., SETm, R., AND ULLMAN, J. D. Compzlers: Princ~ples, Techniques, and Tools. Addison-Wesley, Reading, Mass, 1986.
[2]
ALLEN, F. E., BURKE, M., CHARLES, P., CYTRON, R., AND FERRANrE, J An overview of the PTRAN analysis system for multiprocessing. J. Parallel Distrib. Comput. 5, (Oct. 1988), 617-640.
[3]
ALLEN, J. R Dependence analysis for subscripted variables and ifs application fo program transformations. Ph.D. thesis, Department of Computer Science, Rice Unir., Houstom Tex., Apr. 1983.
[4]
ALLEN, J R, AND JOHNSON, S Compiling C for vectorizatiom parallelization and inline expansion. In Proceedings of the SIGPLAN '88 Symposium on Compiler Construction. SIGPLAN Not. (ACM)23, 7 (June 1988), 241-249
[5]
ALPERN, B, WE6MAN, M. N., AND ZADECK, F.K. Detectmg equality of values m programs In Coaference Record of the 15th ACM Symposium on Principles of Programming Languages (Jan. 1988), ACM, New York, pp. 1-11.
[6]
BALLANCE, R. A, MACCABE, A. B., AND OTTENSTEIN, K.J. The program dependence web: A representation supporting control-, data-, and demand driven interpretation of languages. In Proceedings of the SIGPLAN 90 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 25, 6 (June 1990), 257 271.
[7]
BANNING, J.B. An efficient way to find the side effects of procedure calls and the aliases of variables. In Conference Record of the 6th A CM Syrr~po6~urr~ orl Pr~nciples of Frogramrntrlg Languages (Jan. 1979) ACM, New York, pp. 29-41
[8]
BARTH, J.M. An interprocedural data fiow analysis algorithm. In Conference Record of the 4th ACM Symposium on Princ~ples of Programmmg Languages (Jan. 1977) ACM, New York: pp. 119-131.
[9]
BURKE, M. An interval-based approach fo exhaustive and incremental interprocedural data fiow analysis. ACM Traas. Program Lang. Syst. 12, 3 (July 1990), 341-395.
[10]
BURKE, M., AND CYTRON, R. Interprocedural dependence analysis and parallelization. In Proceedings of the SIGPLAN 86 Symposium on Compiler Construction SIGPLAN Not (ACM) 2J, 7 (June 1986), 162 {75.
[11]
CARTWRIGHT, R., AND FELLEISEN, M. The semantics of program dependence. In Proceedings of the SIGPLAN 89 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 24, 7 (July 1989), 13-27.
[12]
CHAITIN, G. J. Register allocation and spilling via graph coloring. In Proceedings of the SIGPLAN 82 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 17, 43 (June 1982), 98-105.
[13]
CHAITIN, G. J., AUSLANDER, M. A., CHANDRA, A. K., COCKE, J., HOPKINS, M. E., AND MARKSTEIN, P.W. Register allocation via eoloring. Comput. Lang. 6 (1981), 47-57.
[14]
CHASE, D.R. Safety considerations for storage allocation optimizations. In Proceed~ngs of the SIGPLAN 88 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 23, 7 (June 1988), 1-10.
[15]
CHASE, D. R., WEGMAN, M. AN~ ZADECK, F. K. Analysis of pointers and structures. In Proceedings of the SIGPLAN 90 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 25, (June 1990), 296-310.
[16]
CHOI, J., CYTRON, R., AND FERRANTE, J. Automatic construction of sparse data fiow evaluation graphs. In Conference Record of the 18th ACM Symposium on Principles of Programming Languages (Jan. 1991). ACM, New York, pp. 55-66.
[17]
Csow, F. C. A portable machine-independent global optimizer--Design and measurements. Ph.D. thesis and Tech. Rep. 83-254, Computer Systems Laboratory, Stanford Univ., Stanford, Calif., Dec. 1983.
[18]
CHow, F. C., AND HENNESSY, J.L. The priority-based coloring approach to register allocation. ACM Trans. Program. Lang. Syst. 12, 4 (Oct. 1990), 501-536.
[19]
COOPER, K. D. Interprocedural data flow analysis in a programmmg environment. Ph.D. thesis, Dept. of Mathematical Sciences, Rice Univ., Houston, Tex., 1983.
[20]
CYTRON, R., AND FERRANTE, J. An improved control dependence algorithm. Tech. Rep. RC 13291, IBM Corp., Armouk, N.Y., 1987.
[21]
CYTRON, R., AND FERRANTE, J. What's in a name? In Proceedings ofthe 1987 International Conference on Parallel Processing (Aug. 1987), pp. 19-27.
[22]
CYTRON, R., LowRY, A., AND ZADECK, F.K. Code motion of control structures in high-level languages. In Conference Record of the 13th ACM Symposium on Principles of Programming Languages (Jan. 1986). ACM, New York, pp. 70-85.
[23]
DENNIS, J.B. First version of a data fiow procedure language. Tech. Rep. Comput. Struc. Group Memo 93 (MAC Tech. Memo 61), MIT, Cambridge, Mass., May 1975.
[24]
FERRANTE, J., OTTENSTEIN, K. J., AND WARREN, J.D. The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9, 3 (July 1987), 319-34!).
[25]
GIEGERICH, e. A formal framework for the derivation of machine-specific optimizers. ACM Trans. Program. Lang. Syst. 5, 3 (July 1983), 478-498.
[26]
HAREL, D. A linear time algorithm for finding dominators in flow g~aphs and related problems. In Proceedings of the 17th ACM Symposium on Theory of Computing (May 1985). ACM, New York, pp. 185-194.
[27]
HORWITZ, S., PFE~FFER, P., AND REPS, T. Dependence analysis for pointer variables. In Proceedings of the SIGPLAN 89 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 24, 7 (June 1989).
[28]
HORWITZ, S., PRINS, J., ANa REPS, T. Integrating non-interfering versions of programs. ACM Trans. Program. Lang. Syst. 11, 3 (July 1989), 345-387.
[29]
JONES, N. D., AND MUCHMCK, S.S. Flow analysis and optimization of LISP-like structures. In Program Flow Analysis, S. S. Muchnick and N. D. Jones, Eds. Prentice-Hall, Englewood Cliffs, N.J., 1981, chap. 4, pp. 102-131.
[30]
KENNEDY, K. W. Global dead computation elimination. Tech. Rep. SETL Newsl. 111, Courant Institute of Mathematical Sciences, New York Univ., New York, N.Y., Aug. 1973.
[31]
KENNEDY, K.W. A survey of data fiow analysis techniques. In Program Flow Analysis, S. S. Muchnick and N. D. Jones, Eds. Prentice-Hall, Englewood Cliffs, N.J., 1981.
[32]
KucK, D.J. The Structure of Computers and Computations. Wiley, New York, 197'8.
[33]
LARUS, J.R. Restructuring symbolic programs for concurrent execution on multiprocessors. Tech. Rep. UCB/CSD 89/502, Computer Science Dept., Univ. of Cahfornia at Berkeley, Berkeley, Calif., May 1989.
[34]
LARUS, J R., AND HILFINGER, P. N Detecting confiicts between structure accesses In Proceedings of the ACM SIGPLAN 88 Symposium on Compiler Constructmn. SIGPLAN Not. 23, 7 (July 1988), 21-34.
[35]
LENGA~ER, T., AND TARJAN, R.E. A fast algorithm for finding dominators m a fiowgraph. ACM Trans. Program. Lang. Syst. 1, I (July 1979), 121-141
[36]
MUCHMCK, S. S., AND JONES, N. D, EDS Program Flow Analysis. Prentice-Hall, Englewood Cliffs, N.J., 1981
[37]
MYERS, E.W. A precise interprocedura} data fiow algorithm. In Conference Record of the 8th ACM Symposium on Princ~ples of Programm~ng Languages (Jan. 1981). ACM, New York, pp. 219-230.
[38]
O~CENSTEIN, K. J. Data-fiow graphs as an mtermediate form. Ph.D. thesis, Dept. of Computer Science, Purdue Univ., W. Lafayette, Ind., Aug. 1978.
[39]
POIN~ER, L. Perfect report: 1. Tech. Rep CSRD 896, Center for Supercomputing Research and Development, Univ. of Illinois at Urbana-Champaign, Urbana, Ill., July 1989
[40]
REIF, J. H., AND LEWIS, H.R. Efficient symbolic analysis ofprograms. J. Comput. Syst. Sc~. 32, 3 (June 1986), 280-313.
[41]
RE~F, J. H., A~D TARJAN, R. E Symbolic program analysis in almost linear rime. SIAM J. Comput. 11, i (Feb. 1982), 81-93
[42]
ROSEN, B. K. Data fiow analysis for procedural languages J. ACM 26, 2 (Apr. 1979), 322-344.
[43]
ROSEN, B. K, WEGMAN, M. N., AND ZAnECK, F.K. Global value numbers and redundant computations. In Conference Record of the 15th ACM Symposium on Prmciples of Programming Languages, (Jan. 1988). ACM, New York, pp. 12-27.
[44]
RUGGmRI, C., ANn MURTAQH, T. P. Lifetime analysis of dynamically allocated objects. In Conference Record of the 15th ACM Symposium on Princ~ples of Programming Languages (Jan. 1988). ACM, New York, pp. 285-293.
[45]
SHAPIRO, R. M, AND SAI~T, H The representation of algorithms. Tech. Rep. CA-7002-1432, Massachusetts Computer Associates, Feb. 1970.
[46]
SMIT~, B. T., BO~LE, J. M., DONGARRA, J. J., GA~BOW, B. S., I~EBE, Y., KLEMA, V. C., AND MOLER, C B. Matr~x Eigensystem Routines-Eispack Guide. Springer-Verlag, New York, 1976.
[47]
TARJAN, R.E. Finding dominators in directed graphs. SIAM J. Comput 3, i (1974), 62-89.
[48]
WEaSREI% B Property extraction in well-founded property sets. IEEE Trans. Softw. Eng. SE-l, 3 (Sept. 1975), 270-285.
[49]
WEGMAN, M. N, AND ZADECK, F. K. Constant propagation with conditional branches. In Conference Record of the 12th ACM Symposium o~ Prmczples of Programm~ng Languages (Jan.). ACM, New York, pp. 291-299.
[50]
WEGMA~, M. N., A~D ZADECK, F. K. Constant propagation with conditioual branches. ACM Trans. Program. Lang. OEYst. To be pubtished.
[51]
WOLFE, M.J. Optimizing supercompilers for supercomputers. Ph.D. thesis, Dept of Computer Science, Univ. of Illinois at Urbana~Champaign, Urbana {ll., 1982
[52]
YANG, W., t~IoRwITZ, S., AND REPS, T. Detecting program components with eqmvalent behaviors. Tech Rep. 840~ Dept. of Computer Science, Univ. of Wisconsin at Madison, Madison, Apr. 1989

Cited By

View all
  • (2025)Archmage and CompCertCast: End-to-End Verification Supporting Integer-Pointer CastingProceedings of the ACM on Programming Languages10.1145/37048819:POPL(1326-1354)Online publication date: 9-Jan-2025
  • (2025)Model-based testing of asynchronously communicating distributed controllers using validated mappings to formal representationsScience of Computer Programming10.1016/j.scico.2025.103265242(103265)Online publication date: May-2025
  • (2025)Near-Pruned single assignment transformation of programsJournal of Computer Languages10.1016/j.cola.2025.10132483(101324)Online publication date: Jun-2025
  • Show More Cited By

Recommendations

Reviews

Benjamin Rayborn Seyfarth

The authors present strong arguments for the practicality and utility of the static single assignment (SSA) form and the control dependence graph (CDG) in optimizing compilers. They use the concept of a dominator tree to formalize the concept of dominance frontiers and use this to derive efficient algorithms for computing the SSA form and the CDG. They show that their algorithms require linear time for programs restricted to straight-line code, that is, if-then-else and while-do constructs. They also present experimental evidence that suggests that their algorithms are linear for typical programs. This paper is important, since SSA and CDG have been proposed as useful data structures for optimization without practical algorithms. It is well written and moderately long (40 pages), which is essential for describing the authors' algorithms adequately. An extensive bibliography points to excellent papers on compiler optimization techniques. Both compiler writers and theorists will find this paper useful.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 13, Issue 4
Oct. 1991
182 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/115372
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1991
Published in TOPLAS Volume 13, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. control dependence
  2. control flow graph
  3. def-use chain
  4. dominator
  5. optimizing compilers

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1,394
  • Downloads (Last 6 weeks)165
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2025)Archmage and CompCertCast: End-to-End Verification Supporting Integer-Pointer CastingProceedings of the ACM on Programming Languages10.1145/37048819:POPL(1326-1354)Online publication date: 9-Jan-2025
  • (2025)Model-based testing of asynchronously communicating distributed controllers using validated mappings to formal representationsScience of Computer Programming10.1016/j.scico.2025.103265242(103265)Online publication date: May-2025
  • (2025)Near-Pruned single assignment transformation of programsJournal of Computer Languages10.1016/j.cola.2025.10132483(101324)Online publication date: Jun-2025
  • (2025)Verification of MPI programs via compilation into Petri netsApplied Graph Data Science10.1016/B978-0-443-29654-3.00005-3(245-269)Online publication date: 2025
  • (2024)Uncovering Hidden Dependencies: Constructing Intelligible Path Witnesses using Dataflow AnalysesActa Cybernetica10.14232/actacyb.29980526:3(713-747)Online publication date: 4-Mar-2024
  • (2024)SPATA: Effective OS Bug Detection with Summary-Based, Alias-Aware, and Path-Sensitive Typestate AnalysisACM Transactions on Computer Systems10.1145/369525042:3-4(1-40)Online publication date: 6-Sep-2024
  • (2024)GraphCoder: Enhancing Repository-Level Code Completion via Coarse-to-fine Retrieval Based on Code Context GraphProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695054(570-581)Online publication date: 27-Oct-2024
  • (2024)Language-Agnostic Static Analysis of Probabilistic ProgramsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695031(78-90)Online publication date: 27-Oct-2024
  • (2024)UFront: Toward A Unified MLIR Frontend for Deep LearningProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695002(255-267)Online publication date: 27-Oct-2024
  • (2024)Register Expansion and SemaCall: 2 Low-overhead Dynamic Watermarks Suitable for Automation in LLVMProceedings of the 2024 Workshop on Research on offensive and defensive techniques in the context of Man At The End (MATE) attacks10.1145/3689934.3690815(1-10)Online publication date: 19-Nov-2024
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media