On Sat, May 12, 2012 at 3:49 PM, Jan Hubicka <hubi...@ucw.cz> wrote:
>> On Wed, Apr 18, 2012 at 2:44 PM, Richard Henderson <r...@redhat.com> wrote:
>> > On 04/18/2012 05:39 AM, Jan Hubicka wrote:
>> >> Well, if SJLJ lowering happens as gimple pass somewhere near the end of 
>> >> gimple
>> >> queue, this should not be problem at all. (and implementation would be 
>> >> cleaner)
>> >
>> > If you can find a clean way of separating sjlj expansion from dw2 
>> > expansion,
>> > please do.  But there's a lot of code shared between the two.  I see 
>> > nothing
>> > wrong with always expanding via tablejump.
>>
>> In that case, would something like the following patch be acceptable?
>> I have verified that all targets that always set
>> TARGET_EXCEPT_UNWIND_INFO define casesi and/or tablejump.
>>
>>
>>         * toplev.c (process_options): Fail for sjlj exceptions if the
>> target machine
>>         has no casesi insn and no tablejump insn.
>
> Isn't SJLJ used by default for Ada on all targets?

Would that make a difference for whether this patch is OK or not?

I also have no problems leaving the switch expanding code in stmt.c,
and just adding new code for switch lowering as a GIMPLE pass. That
way (of least resistance) SJLJ exception dispatches can continue to be
expanded as decision trees. Just tell me what you want.

Ciao!
Steven

Reply via email to