PPC EH failure
Richard Henderson
rth@redhat.com
Thu Mar 7 10:46:00 GMT 2002
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~
More information about the Gcc
mailing list