This is the mail archive of the
mailing list for the GCC project.
Re: Code generation problem with optimizations enabled
- From: Jamie Prescott <jpresss at yahoo dot com>
- To: Jamie Prescott <jpresss at yahoo dot com>, gcc at gcc dot gnu dot org
- Date: Tue, 12 May 2009 01:09:44 -0700 (PDT)
- Subject: Re: Code generation problem with optimizations enabled
- References: <email@example.com>
----- Original Message ----
> From: Jamie Prescott <firstname.lastname@example.org>
> To: email@example.com
> Sent: Monday, May 11, 2009 11:59:23 PM
> Subject: Code generation problem with optimizations enabled
> If I disable the optimizations, everything is fine and the 'fcmp' is there.
> Even with optimizations enabled, the RTL dump shows the missing 'cmpdf' present
> and correctly recognized. It being:
What I noticed is that if I CC_STATUS_INIT (in xxx_notice_update_cc()) even for insn that
do not require it (that are almost all of them - being only cmp/fcmp/test that modify cc0),
cmpdf gets emitted regularly.
Normally all the insn but cmp/fcmp/test set "none" in their cc attribute, and
xxx_notice_update_cc() does nothing in that case.
While cmp and fcmp (that set the cc attribute to "compare") do CC_STATUS_INIT and
records DEST and SRC operands.
Am I doing it wrong?