home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.compilers
- Path: sparky!uunet!think.com!spdcc!iecc!compilers-sender
- From: rjohnson@cs.cornell.edu (Richard C. Johnson)
- Subject: phase-ordering optimizations (SUMMARY)
- Reply-To: rjohnson@cs.cornell.edu (Richard C. Johnson)
- Organization: Compilers Central
- Date: Thu, 30 Jul 1992 20:34:42 GMT
- Approved: compilers@iecc.cambridge.ma.us
- Message-ID: <92-07-114@comp.compilers>
- Keywords: optimize, summary, bibliography
- Sender: compilers-sender@iecc.cambridge.ma.us
- Lines: 263
-
- This is a summary of replies to my comp.compiler request for information
- on phase ordering and integrating optimizations. Many thanks to all who
- sent references/comments!
-
- My original posting:
- I'm looking for references to work on interactions between various
- compiler optimizations. Specifically, I'd be interested in references to
- papers on the ordering of optimization phases, integration of optimization
- phases to eliminate the need for ordering, and cooperation between
- optimizations and scheduling & resource allocation. I'm familiar with
- Joshi & Dhamdhere's work on combining strengh reduction and code hoisting,
- with Goodman & Hsu's algorithm for combining reg.allocation and code
- scheduling in basic blocks, and with Ruttenberg and Freundenberger's work
- on combining instruction scheduling and global register allocation.
-
- References to the papers I mentioned:
-
- @article{ JD82a:ijcm,
- author = "S. M. Joshi and D. M. Dhamdhere",
- title = "A Composite Hoisting--Strength Reduction Transformation
- for Global Program Optimization (Part I)",
- journal = "Int. J. of Computer Math",
- pages = {22-41},
- year = 1982
- }
-
- @article{ JD82b:ijcm,
- author = "S. M. Joshi and D. M. Dhamdhere",
- title = "A Composite Hoisting--Strength Reduction Transformation
- for Global Program Optimization (Part II)",
- journal = "Int. J. of Computer Math",
- pages = {111-126},
- year = 1982
- }
-
- @inproceedings{ GH88:ics,
- author = "James R. Goodman and {Wei-Chung} Hsu",
- title = "Code Scheduling and Register Allocation in Large
- Basic Blocks",
- booktitle = "Proc. of the 1988 Int. Conference on Supercomputing",
- address = "St. Malo, France",
- note = "Published by SIGARCH Computer Architecture News",
- month = "July 4--8, "
- year = 1988,
- pages = {442-452},
- }
-
- @unpublished{ RF91:unpub,
- author = "John C. Ruttenberg and Stefan M. Freudenberger",
- title = "Phase Ordering of Register Allocation
- and Instruction Scheduling",
- booktitle = "Workshop on Code Generation -- Concepts, Tools,
- Techniques",
- month = apr,
- year = 1991,
- }
- [ I do not know whether the proceedings of this workshop were ever published.
- The workshop was somewhere in Germany in 1991. ]
-
- ------------------------------------------------------------------------------
- Eliot Moss (moss%ibis@cs.umass.edu), Steve Walk (srw@ihlpv.att.com), and
- Martin Meyer <martin@uni-paderborn.de> suggested the following paper:
-
- @inproceedings{ Whitfield&Soffa1990,
- author = "Debbie Whitfield and Mary Lou Soffa",
- title = "An Approach to Ordering Optimizing Transformations",
- booktitle = "Second {ACM} {SIGPLAN} Symposium on Principles and
- Practice of Parallel Programming",
- address = "Seattle, Washington",
- month = "March 14--16, ",
- year = 1990,
- pages = {137-147},
- note = "Published as {ACM SIGPLAN} Notices 25(3)",
- }
-
- -------------------------------------------------------------------------------
- from anton@mips.complang.tuwien.ac.at (Anton Martin Ertl):
-
- The following article extends Goodman&Hsu's Integrated Prepass
- Scheduling to colouring global register allocation and introduces
- another algorithm:
-
- @InProceedings{bradlee+91asplos,
- author = "David G. Bradlee and Susan J. Eggers and Robert R. Henry",
- title = "Integrating Register Allocation and Instruction
- Scheduling for {RISCs}",
- booktitle = asplos,
- year = "1991",
- pages = "122--131"
- }
-
- One of the claimned advantages of the Davidson&Fraser approach to Code
- generation is the ability to apply the phases in arbitrary order (and
- repeatedly), solving many phase ordering problems. I find in my
- bibliography the following references. You probably should read
- benitez&davidson88 first, which presents a nice overview of the approach.
-
- @inproceedings(davidson86,
- author="Jack W. Davidson",
- title="A Retargetable Instruction Reorganizer",
- booktitle="Proceedings of the SIGPLAN '86 Symposium on Compiler
- Construction",
- year="1986",
- pages="234--241"
- )
-
- @Article{davidson&fraser84,
- author = "Jack W. Davidson and Christopher W. Fraser",
- title = "Code Selection through Object Code Optimization",
- journal = toplas,
- year = "1984",
- volume = "6",
- number = "4",
- pages = "505--526",
- month = oct
- }
-
- @InProceedings{benitez&davidson88,
- author = "Manuel E. Benitez and Jack W. Davidson",
- title = "A Portable Global Optimizer and Linker",
- booktitle = "Proceedings of the SIGPLAN '88 Conference on
- Programming Language Design and Implementation",
- year = "1988",
- pages = "329--338"
- }
-
- @InProceedings{fraser&wendt88,
- author = "Christopher W. Fraser and Alan L. Wendt",
- title = "Automatic Generation of Fast Optimizing Code Generators",
- booktitle = "Proceedings of the SIGPLAN '88 Conference on
- Programming Language Design and Implementation",
- year = "1988",
- pages = "79--84"
- }
-
- Coagulation was developped for solving the
- code-selection/register-allocation phase ordering problem. It's
- similar to Ruttenberg&Freudenberger's work.
-
- @InProceedings{morris91,
- author = "W. G. Morris",
- title = "{CCG}: A Prototype Coagulating Code Generator",
- booktitle = "Proceedings of the SIGPLAN '91 Conference on
- Programming Language Design and Implementation",
- year = "1991",
- pages = "45--58",
- address = "Toronto",
- month = jun
- }
-
- The original article on coagulation is in the SIGPLAN '84 Proceedings.
-
- - anton
-
- ---
- The original coagulation paper is:
- @inproceedings{ Kar84:socc,
- author = "Michael Karr",
- title = "Code Generation by Coagulation",
- booktitle = "Proc. 1984 SIGPLAN Symposium on Compiler Construction",
- address = "Montreal, Canada"
- month = "June 17--22, ",
- year = 1984,
- pages = {1-12},
- note = "Published as ACM SIGPLAN Notices 19(6)"
- }
-
- I also found the following paper by Fraser&Wendt:
- @inproceedings{ FW86:socc,
- author = "Christopher W. Fraser and Alan L. Wendt",
- title = "Integrating Code Generation and Optimization",
- booktitle = "Proc. of the 1986 SIGPLAN Symp. on Compiler Construction",
- address = "Palo Alto, California",
- month = "June 25--27, ",
- year = 1986,
- pages = {242-248},
- note = "Published as ACM SIGPLAN Notices 21(7)",
- }
-
- -------------------------------------------------------------------------------
- Reply-To: berson@cs.pitt.edu (David A. Berson)
-
- > Specifically, I'd be interested in references to
- > papers on the ordering of optimization phases, integration of optimization
- > phases to eliminate the need for ordering, and cooperation between
- > optimizations and scheduling & resource allocation.
-
- How about the following?
- %A Deborah Whitfield
- %A Mary Lou Soffa
- %T Automatic Generation of Global Optimizers
- %P 120-129
- %J PROC SIGPLAN '91 CONF PLDI
- %D JUN 26-28, 1991
- %C Toronto, Ontario, Canada
-
- %A Deborah Lynn Whitfield
- %T A Unifying Framework For Optimizing Transformations
- %I Ph.D. Dissertation, University of Pittsburgh
- %R TECH REPORT 91-24
- %D 1991
-
- This looks at how different optimizations can impact each other and then
- suggests orderings. The paper is taken from the dissertation.
-
- -------------------------------------------------------------------------------
- Reply-To: Arild Skjolsvold <arilds@microsoft.com>
-
- A book called "Register Allocation in Optimizing Compilers" discusses
- the phase ordering problem. This book describes the PQCC project, so
- other papers about that project is relevant as well I'd guess. The
- author of the book?? I can't remember, sorry...
-
- -arild
-
- ---
- The book reference is:
- @book{ Lev83:book,
- author = "Bruce W. Leverett",
- title = "Register Allocation in Optimizing Compilers",
- year = 1983,
- publisher = "UMI Research Press",
- address = "Ann Arbor, Mich."
- }
-
- -------------------------------------------------------------------------------
- Reply-To: Martin Meyer <martin@uni-paderborn.de>
-
- In addition to Whitfield&Soffa1990, Martin suggested:
-
- %A Deborah Whitfield
- %T A Unifying Framework for Optimizing Transformations
- %J Technical Report 91-24
- %I University of Pittsburgh, Pennsylvania
-
- It describes dependences, enabling and disabling conditions for
- various optimizing transformations (standard transformations as well
- as loop transformations).
-
- Hope, it helps.
-
- - martin
-
- -------------------------------------------------------------------------------
- Reply-To: loegel@redfox.ssc.gov (George Loegel)
-
- Giegerich, R. "Logic Specification of Code Generation Techniques",
- Lecture Notes in Computer Science No. 217, pp. 96-111, 1985
-
- In this paper each kind of optimization is described as an algebraic
- transformation and combining optimizations is simply a matter of
- sequencing the transformations. Giegerich describes these algebras in
- PROLOG. Code generation takes place by satisfying a set of conditions
- between the input to the code generator and the target machine.
- ---
- [ LNCS #217 title is "Programs as Data Objects" ]
-
- -------------------------------------------------------------------------------
- Richard Johnson
- rjohnson@cs.cornell.edu
- --
- Send compilers articles to compilers@iecc.cambridge.ma.us or
- {ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request.
-