This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

rejecting particular patterns in combine.c


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]