This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RTL Generation and Matching
- From: Y Lin <ylingcc at yahoo dot com>
- To: gcc at gcc dot gnu dot org
- Date: Fri, 6 Sep 2002 15:01:52 -0700 (PDT)
- Subject: RTL Generation and Matching
Hi, I am new to GCC and I have the following questions
regarding RTL generation and matching when reading the
"GCC Internals" manual.
1. In the "Standard Pattern Names For Generation",
apprently some names are 'must' and some are
'optional'. But is there a list of all the 'must'
names? Because for some names, like 'cosm2', I am not
able to tell from their descriptions.
2. In Chapter 9 "Machine Descriptions", the manual
says
'For the generate pass, only the names of the insns
matter. .... The compiler will choose the pattern
with the right name and ##apply the operands##
according to the documentation later in this
chapter, without regard for the RTL template or
operand constraints.'
The 'without regard for the RTL template' part
confuses me. My question is:
Is the predicate inside the RTL template used in the
generation phase?
My understanding is that the predicate needs to be
considered when "apply the operands". Say the 'addm3'
instruction on the target machine takes register
operands only and you have a tree node like a=b+3. I
think, at the RTL generation phase, GCC should
generate a sequence of move (to reg) insn and a all
register add3 insn, rather than a add3 with const
operand inst.
Please help me and thank you!
Yuan
__________________________________________________
Do You Yahoo!?
Yahoo! Finance - Get real-time stock quotes
http://finance.yahoo.com