public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Question on fixup_abnormal_edges
@ 2002-10-01  2:06 Olivier Hainque
  2002-10-01  2:08 ` Jan Hubicka
  0 siblings, 1 reply; 41+ messages in thread
From: Olivier Hainque @ 2002-10-01  2:06 UTC (permalink / raw)
  To: gcc; +Cc: hainque


Hello,

In reload1.c, part of fixup_abnormal_edges reads like:

     [...]
     for (e = bb->succ; e; e = e->succ_next)
       if (e->flags & EDGE_FALLTHRU)
         break;
     [...]
     insert_insn_on_edge (seq, e);


 Is it expectable to have a null "e" after the loop, or is this a
 "should never happen" ?

 If the former, what would be the appropriate action ?

 Thanks in advance for your help,

 Kind Regards,

 Olivier

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Question on fixup_abnormal_edges
@ 2002-10-15  6:10 Richard Kenner
  2002-10-15  7:47 ` Michael Matz
  0 siblings, 1 reply; 41+ messages in thread
From: Richard Kenner @ 2002-10-15  6:10 UTC (permalink / raw)
  To: hainque; +Cc: gcc

  When using table driven EH, is it expected that possibly call clobbered hard
  registers get assigned to pseudos live across calls like in the case above ?

I have a vague recollection going back over a decade that you indeed
can't do this.

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Question on fixup_abnormal_edges
@ 2002-10-16  0:31 Richard Kenner
  2002-10-16  2:31 ` Richard Henderson
  0 siblings, 1 reply; 41+ messages in thread
From: Richard Kenner @ 2002-10-16  0:31 UTC (permalink / raw)
  To: rth; +Cc: gcc

    Well, except for caller-save not being intelligent enough to
    add the instruction to the edge, rather than directly after
    the call instruction, everything would have worked out ok.

I don't think so.  How are we supposed to ensure that the insns on that
abnormal edge are executed when the exception occurs?

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Question on fixup_abnormal_edges
@ 2002-10-16  7:08 Richard Kenner
  2002-10-21 11:50 ` Jeff Law
  0 siblings, 1 reply; 41+ messages in thread
From: Richard Kenner @ 2002-10-16  7:08 UTC (permalink / raw)
  To: rth; +Cc: gcc

    Admittedly some of the code for that isn't written, but it's possible.
    It would be easier to disallow call-clobbered registers across that
    edge.

Agreed, especially since caller-save registers are a borderline
optimization anyway.

^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: Question on fixup_abnormal_edges
@ 2002-10-16  7:12 Richard Kenner
  0 siblings, 0 replies; 41+ messages in thread
From: Richard Kenner @ 2002-10-16  7:12 UTC (permalink / raw)
  To: jh; +Cc: gcc

    I think problem is different.  The call with live register over is
    noreturn, so there should really be no register alive at first place.
    Hope I will find time to investigate this more at evening.

Noreturn doesn't mean no exception.  If something is set before the call
and used in an EH, it would seem to be to be live over the call even though
it's noreturn.

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2002-10-21 15:55 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-01  2:06 Question on fixup_abnormal_edges Olivier Hainque
2002-10-01  2:08 ` Jan Hubicka
2002-10-01  2:57   ` Olivier Hainque
2002-10-01  3:00   ` Michael Matz
2002-10-01  3:03     ` Michael Matz
2002-10-01  3:40       ` Olivier Hainque
2002-10-01  4:23         ` Jan Hubicka
2002-10-01  6:49           ` Olivier Hainque
2002-10-01  7:02             ` Jan Hubicka
2002-10-01  7:08               ` Olivier Hainque
2002-10-01  7:12                 ` Jan Hubicka
2002-10-01  8:44                   ` Olivier Hainque
2002-10-01  9:08                     ` Jan Hubicka
2002-10-01  9:46                       ` Olivier Hainque
2002-10-01 12:24                         ` Michael Matz
2002-10-02 14:11                           ` Olivier Hainque
2002-10-03  6:20                             ` Jan Hubicka
2002-10-03  6:26                               ` Olivier Hainque
2002-10-03  6:51                                 ` Jan Hubicka
2002-10-03  8:06                                   ` Olivier Hainque
2002-10-03  8:19                                     ` Jan Hubicka
2002-10-15  5:35                                       ` Olivier Hainque
2002-10-15 17:03                                         ` Richard Henderson
2002-10-16  2:58                                           ` Olivier Hainque
2002-10-16  4:02                                           ` Michael Matz
2002-10-16  4:06                                             ` Jan Hubicka
2002-10-16  4:45                                               ` Michael Matz
2002-10-16  5:01                                                 ` Jan Hubicka
2002-10-16 10:29                                                   ` Richard Henderson
2002-10-16 10:26                                             ` Richard Henderson
2002-10-01  4:43         ` Michael Matz
2002-10-01  4:46           ` Jan Hubicka
2002-10-15  6:10 Richard Kenner
2002-10-15  7:47 ` Michael Matz
2002-10-15  9:25   ` Michael Matz
2002-10-16  0:31 Richard Kenner
2002-10-16  2:31 ` Richard Henderson
2002-10-16  7:08 Richard Kenner
2002-10-21 11:50 ` Jeff Law
2002-10-21 11:54   ` David S. Miller
2002-10-16  7:12 Richard Kenner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).