This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

Re: Fix combine EH related failure


On Thu, Feb 12, 2004 at 11:39:32AM +1030, Alan Modra wrote:
> +	  /* It's pointless doing this if combining then splitting the
> +	     parallel results in the original instructions.  The net
> +	     effect is only to move instructions around, which makes
> +	     debug info less accurate.  */
> +	  && ! rtx_equal_p (set0, PATTERN (i2)))

Blah, typo alert.  I lost track of which set was which.  Ought to be
+	  && ! rtx_equal_p (set0, PATTERN (i3)))

> @@ -2049,7 +2058,10 @@ try_combine (rtx i3, rtx i2, rtx i1, int
>                  || (GET_CODE (SET_DEST (set0)) == SUBREG
>                      && find_reg_note (i3, REG_UNUSED,
>                                        SUBREG_REG (SET_DEST (set0)))))
> -              && ! side_effects_p (SET_SRC (set0)))
> +	       && (!(note = find_reg_note (i3, REG_EH_REGION, NULL_RTX))
> +		   || INTVAL (XEXP (note, 0)) <= 0)
> +	       && ! side_effects_p (SET_SRC (set0))
> +	       && ! rtx_equal_p (set1, PATTERN (i3)))

And this one
+	       && ! rtx_equal_p (set1, PATTERN (i2)))

>          {
>            newpat = set1;
>            insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


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