Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!world!iecc!compilers-sender From: han@cs.rochester.edu Newsgroups: comp.compilers Subject: intermediate representation Keywords: question, optimize, design, analysis Message-ID: <9102210223.AA15327@cyan.cs.rochester.edu> Date: 21 Feb 91 02:23:33 GMT Sender: compilers-sender@iecc.cambridge.ma.us Reply-To: han@cs.rochester.edu Organization: Compilers Central Lines: 23 Approved: compilers@iecc.cambridge.ma.us I am taking a compiler seminar course that emphasizes the back end optimization issues. In order to get hands-on experience, I would like to practice applying various optimization techniques on the intermediate representation produced by the front end. (I have not decided on the front end, yet. I might write one or pick up one and modify.) At this point, I am looking for intermediate representations that I can play with. So, my first question is: Are there well documented (and, hopefully, state-of-the-art) definitions of intermediate representations available? How can I get them? (Does the RTL that GCC uses count as one such IR?) Actually, my fellow students and I have taken a look at the RTL dump produced by GCC. To our surprise, the RTL dump showed strong dependency on the target machine even at the earliest stage of optimization. The RTL dump on SPARC looked very different from that on Sun3 workstation. We had expected that the machine dependency would show up at much later stage and that we would be able to try optimization with RTL without worrying about machine dependencies. So, my second question is: Is it generally expected for an intermediate representation to be machine dependent? How far toward the end of code generation phase can machine dependencies be prevented from showing up? -- Send compilers articles to compilers@iecc.cambridge.ma.us or {ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request. Brought to you by Super Global Mega Corp .com