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: [rfc] exception handling in gimple


On 09/09/2009 07:34 AM, Michael Matz wrote:
While reading the except.c hunks I noticed this:

+      /* Handle three cases here:
+        (1) no reachable handler and no edge,
+        (2) reachable handler and an existing edge to post-landing-pad,
+        (3) reachable handler and a missing edge.
+        ??? Not sure why case 3 slips through to this point, it sure
+        seems like we shouldn't be introducing new statements that can
+        throw during the gimple->rtl lowering process.  The alternative
+        is that we're losing edges somewhere, which is equally bad.  */

Have you meanwhile found out why case 3 can happen there?

No, though I have a theory. I'll experiment with that today.


Also, in the sjlj RTL expanders it's still building a cmp-jump sequence
in the (one) landing pad.  Shouldn't this eventually also be done on the
tree-side already (to be able to use a switch)?

I'm not sure I can generate the same rtl from trees, because of where I
go off and place all the bits from the parts of expand_builtin_setjmp_receiver.


I do think I can rearrange things such that I can call back into expand_case though. We'll see.


+/* YOUAREHERE: Replace with expand_resx. */

Oops. =)



r~



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