CFG transparent expansion 2

Jan Hubicka jh@suse.cz
Thu Jun 17 19:52:00 GMT 2004


Hi,
this patch has been reverted two weeks ago together with the other EH
related patch to unbreak libjava.  It looks like only the second patch
has been causing failures and I really need to put the patch back as
otherwise we build incorrect CFG before exception handling lowering and
with my expansioni patch we no longer rebuild it to get things fixed up.

Bootstrapped/regtested i686-pc-gnu-linux with no regressions (and there was 1
failure for libjava this time, instead of 920)
OK?

Honza

2004-06-17  Jan Hubicka  <jh@suse.cz>
	* excpe.c (can_throw_internal): Recognize RESX expresisons.
Index: except.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/except.c,v
retrieving revision 1.274
diff -c -3 -p -r1.274 except.c
*** except.c	14 Jun 2004 14:17:53 -0000	1.274
--- except.c	16 Jun 2004 20:54:29 -0000
*************** can_throw_internal (rtx insn)
*** 3114,3119 ****
--- 3114,3124 ----
    if (! INSN_P (insn))
      return false;
  
+   if (GET_CODE (insn) == JUMP_INSN
+       && GET_CODE (PATTERN (insn)) == RESX
+       && XINT (PATTERN (insn), 0) > 0)
+     return can_throw_internal_1 (XINT (PATTERN (insn), 0));
+ 
    if (GET_CODE (insn) == INSN
        && GET_CODE (PATTERN (insn)) == SEQUENCE)
      insn = XVECEXP (PATTERN (insn), 0, 0);



More information about the Gcc-patches mailing list