Xref: utzoo comp.compilers:1574 gnu.gcc.help:231 Path: utzoo!utgpu!watserv1!watmath!uunet!bu.edu!spdcc!iecc!compilers-sender From: singhvk@eecg.toronto.edu (Vijaya Singh (Vij)) Newsgroups: comp.compilers,gnu.gcc.help Subject: GCC question --> RTL and code generation Keywords: GCC, question Message-ID: <90Dec10.165957est.3199@godzilla.eecg.toronto.edu> Date: 10 Dec 90 21:59:46 GMT Sender: compilers-sender@iecc.cambridge.ma.us Reply-To: "Vijaya Singh (Vij)" Organization: Compilers Central Lines: 42 Approved: compilers@iecc.cambridge.ma.us Hi, A quick question regarding GCC's RTL generation and assembler code generation... IS THE FOLLOWING CORRECT??? (Inferred from browsing the GCC manual, if I'm wrong PLEASE let me know!! --> thanks!) ******************************************************************* The "machine.md" file generally contains 4 kinds of expressions: 1) (define_insn "name" ...) ie: with optional name 2) (define_insn "" ...) ie: without optional name 3) (define_expand "name" ...) 4) (define_peephole ...) RTL generation uses 1,3 Code generation uses 1,2,4 TYPE 1 is used both for RTL generation (when "name" is required) and for code generation (when RTL template is matched). TYPE 2 is used only for code generation (when RTL template is matched). This type can be used to generate more efficient code. TYPE 3 is used only for RTL generation (when "name" is required). This type is used when "name" requires more than one RTL insns. TYPE 4 is used only for code generation (when RTL insn-pattern vector is matched). This type is used for replacing a sequence of RTL insns with one. ******************************************************************* Thanks, VIJ... -- Vijaya Singh, Department of Electrical Engineering, University Of Toronto VOICE: (416) 978-1653, FAX: (416) 978-7423 EMAIL: singhvk@eecg.toronto.edu -- Send compilers articles to compilers@iecc.cambridge.ma.us or {ima | spdcc | world}!iecc!compilers. Meta-mail to compilers-request.