Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!snorkelwacker!spdcc!esegue!compilers-sender From: johnson@cs.uiuc.edu (Ralph Johnson) Newsgroups: comp.compilers Subject: intermediate languages Keywords: code, optimize Message-ID: <1990Aug09.175917.18448@esegue.segue.boston.ma.us> Date: 9 Aug 90 17:59:17 GMT Sender: compilers-sender@esegue.segue.boston.ma.us Reply-To: Ralph Johnson Organization: Compilers Central Lines: 110 Approved: compilers@esegue.segue.boston.ma.us My experience is that register transfers are a very nice intermediate language. My compiler uses two intermediate languages, abstract syntax trees for language dependent optimizations, and register transfers for language independent optimizations. I learned about RTL from the papers by Davidson and Fraser. Also, the GNU compilers use a register transfer language. Register transfers are very compatible with static single assignment form, which is a data structure for representing programs developed by a group at IBM. You could use SSA without RTL, or RTL without SSA, but I have had good success using them together. The end of the message has some references for your reading pleasure. The ones on SSA all have Zadeck as a co-author. Ralph Johnson - University of Illinois at Urbana-Champaign _______ @InProceedings{alpern88, author="Bowen Alpern and Mark N. Wegman and F. Kenneth Zadeck", title="Detecting Equality of Variables in Programs", booktitle=popl88, year=1988, pages="1-11" } @InProceedings{cytron86, author = "Ron Cytron and Andy Lowry and Kenneth Zadeck", title = "Code Motion of Control Structures in High-Level Languages", booktitle = popl86, year = 1986, pages = "70-85" } @InProceedings{cytron89, author = "Ron Cytron and Jeanne Ferrante and Barry Rosen and Mark Wegman and Kenneth Zadeck", title = "An Efficient Method of Computing Static Single Assignment Form", booktitle = popl89, year = 1989, pages = "25-35" } @ARTICLE{davidson80, author="Jack W. Davidson and Christopher W. Fraser", title="The Design and Application of a Retargetable Peephole Optimizer", journal=toplas, volume=2, number=2, month=apr, year=1980, pages="191--202" } @phdthesis{davidson81, author="Jack W. Davidson", title="Simplifying Code Generation Through Peephole Optimizations", school="University of Arizona", year="1981"} @article{davidson84, author="Jack W. Davidson and Christopher W. Fraser", title="Code Selection through Object Code Optimization", journal=toplas, volume=6, number=4, year=1984, pages="505-526"} @inproceedings{davidson84a, author="Jack W. Davidson and Christopher W. Fraser", title="Automatic Generation of Peephole Optimizations", booktitle="Proceedings of the ACM SIGPLAN '84 Symposiom on Compiler Construction", year="1984", pages="111-116"} @article{davidson84b, author="Jack W. Davidson and Christopher W. Fraser", journal="Software - Practice and Experience", title="Register Allocation and Exhaustive Peephole Optimization", volume=14, number=9, month=sep, year=1984, pages="857-865"} @techreport{davidson85, author="Jack W. Davidson", title="Simple Machine Description Grammars", institution="Department of Computer Science, University of Virgina", year="1985"} @InProceedings{davidson86, author="Jack W. Davidson", title="A Retargetable Instruction Reorganizer", booktitle=sigplan86, year=1986, pages="234-241" } @article{davidson87, author="Jack W. Davidson and Christopher W. Fraser", title="Automatic Interence and Fast Interpretation of Peephole Optimization Rules", journal="Software - Practice and Experience", volume=17, number=11, pages="801-812", month=nov, year=1987} -- Send compilers articles to compilers@esegue.segue.boston.ma.us {spdcc | ima | lotus| world}!esegue. Meta-mail to compilers-request@esegue.