This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
CFG transparent expansion 2
- From: Jan Hubicka <jh at suse dot cz>
- To: gcc-patches at gcc dot gnu dot org, rth at redhat dot com
- Date: Thu, 17 Jun 2004 19:27:43 +0200
- Subject: 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);