Path: utzoo!attcan!uunet!aplcen!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!usc!snorkelwacker!spdcc!esegue!compilers-sender From: johnson@cs.uiuc.edu (Ralph Johnson) Newsgroups: comp.compilers Subject: Recognizing complicated patterns Keywords: code, optimize Message-ID: <1990Aug01.130605.10204@esegue.segue.boston.ma.us> Date: 1 Aug 90 13:06:05 GMT Sender: compilers-sender@esegue.segue.boston.ma.us Reply-To: Ralph Johnson Organization: Compilers Central Lines: 23 Approved: compilers@esegue.segue.boston.ma.us David Chase argued that it was already known how to find instructions that matched complicated patterns in the original program. I am familiar with about half of the papers that he mentioned, so perhaps I am missing something, but it was my understanding that these techniques were not very good for matching instructions with loops in them, like block moves. Further, the incompleteness of arithmetic says that it may not be possible to canonicalize all input patterns. The tree matching techniques are very good at finding complex addressing modes, but they are not the end-all and be-all of code generation. I would love to be proven wrong, because we have built our own code generator (in Smalltalk, which is why we didn't use someone else's), and are always looking for ways to improve it. By the way, the GNU compilers use a pattern matching code generator. Also, I agree that those who are interested in this area should take a look at Robert Henry's UWCODEGEN. Ralph Johnson - University of Illinois at Urbana-Champaign -- Send compilers articles to compilers@esegue.segue.boston.ma.us {spdcc | ima | lotus| world}!esegue. Meta-mail to compilers-request@esegue.