This is the mail archive of the gcc@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: PPC EH failure


On Thu, Mar 07, 2002 at 05:01:42PM +0100, Jan Hubicka wrote:
> It is obviously incorrect to move the use
> after EH_REGION insn and sheduler already do contain code:
>   /* If this instruction can throw an exception, then moving it changes
>      where block boundaries fall.  This is mighty confusing elsewhere.
>      Therefore, prevent such an instruction from being moved.  */
>   if (can_throw_internal (insn))
>     reg_pending_barrier = true;
> that does care it, but it does not hit on use as it barriers only registers,

Grr.  Ok, fix this by changing sched-rgn.c add_branch_dependences

  while (GET_CODE (insn) == CALL_INSN
         || GET_CODE (insn) == JUMP_INSN
         || (GET_CODE (insn) == INSN
             && (GET_CODE (PATTERN (insn)) == USE
                 || GET_CODE (PATTERN (insn)) == CLOBBER
+		 || can_throw_internal (insn)
#ifdef HAVE_cc0
                 || sets_cc0_p (PATTERN (insn))
#endif
             ))
         || GET_CODE (insn) == NOTE)



r~


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