On 05/14/12 12:59, DJ Delorie wrote:
>> > For rl78 there is a comment in gcc/config/rl78/rl78.h that suggests
>> > there should be a tablejump insn, but it's not there.
> The only unconditional branches rl78 has are immediate and
> register-indirect, i.e. "BR $label" and "BR AX".
>
The later is c
> For rl78 there is a comment in gcc/config/rl78/rl78.h that suggests
> there should be a tablejump insn, but it's not there.
The only unconditional branches rl78 has are immediate and
register-indirect, i.e. "BR $label" and "BR AX".
> This is unfortunate because rl78 is a "#define DWARF2_UNWIND
On Mon, May 14, 2012 at 4:23 PM, Richard Henderson wrote:
> On 05/12/12 06:00, Steven Bosscher wrote:
>> * toplev.c (process_options): Fail for sjlj exceptions if the
>> target machine
>> has no casesi insn and no tablejump insn.
>
> Looks good. How many targets have neither case/
On 05/12/12 06:00, Steven Bosscher wrote:
> * toplev.c (process_options): Fail for sjlj exceptions if the
> target machine
> has no casesi insn and no tablejump insn.
Looks good. How many targets have neither case/tablejump?
r~
> Isn't SJLJ used by default for Ada on all targets?
Nope, Ada uses the same EH scheme as the other compilers, except for a few
cases where it uses its own __builtin_setjmp/__builtin_longjmp based scheme.
--
Eric Botcazou
On Sat, May 12, 2012 at 3:49 PM, Jan Hubicka wrote:
>> On Wed, Apr 18, 2012 at 2:44 PM, Richard Henderson 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 a
> On Wed, Apr 18, 2012 at 2:44 PM, Richard Henderson 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
On Wed, Apr 18, 2012 at 2:44 PM, Richard Henderson 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
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.
> > What is the reason why lowering for SJLJ exceptions is not done in GIMPLE?
>
> Because it completely wrecks loops because we factor the SJLJ site,
> thus
>
> fn ()
> {
> ...
> for (;;)
> {
>try { X } catch { Y }
> }
>
> becomes
>
> fn ()
> {
>if (setjmp ())
> {
>
On Wed, Apr 18, 2012 at 10:35 AM, Steven Bosscher wrote:
> Hello,
>
> If I move GIMPLE_SWITCH lowering from stmt.c to somewhere in the
> GIMPLE pass pipeline, I run into an issue with SJLJ exceptions. The
> problem is that except.c:sjlj_emit_dispatch_table() builts a
> GIMPLE_SWITCH and calls expa
Hello,
If I move GIMPLE_SWITCH lowering from stmt.c to somewhere in the
GIMPLE pass pipeline, I run into an issue with SJLJ exceptions. The
problem is that except.c:sjlj_emit_dispatch_table() builts a
GIMPLE_SWITCH and calls expand_case on it. If I move all non-casesi,
non-tablejump code out of st
12 matches
Mail list logo