This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
rejecting particular patterns in combine.c
- To: gcc at gcc dot gnu dot org
- Subject: rejecting particular patterns in combine.c
- From: Marco <marco dot marcello at tin dot it>
- Date: Mon, 04 Jun 2001 01:36:11 +0200
hello my name is marco marcello
i have to make combine.c (gcc version is 2.95.3) reject recognition of
some particular patterns (those with attribute "diee" set to "yes") if
flag is true.
is it right to test for it in function try_combine, more precisely:
...
...
...
/* If it still isn't recognized, fail and change things back the way
they
were. */
if ((insn_code_number < 0
/* Is the result a reasonable ASM_OPERANDS? */
&& (! check_asm_operands (newpat) || added_sets_1 ||
added_sets_2))
#ifdef HAVE_ATTR_diee /*added code*/
||(flag &&
((get_attr_diee(i2)==DIEE_YES)||(get_attr_diee(i3)==DIEE_YES)))
#endif
)
{
undo_all ();
return 0;
}
/* If we had to change another insn, make sure it is valid also. */
if (undobuf.other_insn)
{
rtx other_pat = PATTERN (undobuf.other_insn);
rtx new_other_notes;
rtx note, next;
CLEAR_HARD_REG_SET (newpat_used_regs);
other_code_number = recog_for_combine (&other_pat,
undobuf.other_insn,
&new_other_notes);
if (other_code_number < 0 && ! check_asm_operands (other_pat)
#ifdef HAVE_ATTR_diee /*added code*/
||(flag && (get_attr_diee(undobuf.other_insn)==DIEE_YES))
#endif
)
{
undo_all ();
return 0;
}
...
...
...
thanks in advance,
marco marcello