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]

CFG transparent expansion 2


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);


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