force_nonfallthru_and_redirect buglet
Richard Henderson
rth@redhat.com
Wed Sep 19 12:26:00 GMT 2001
On Wed, Sep 19, 2001 at 07:37:34PM +0200, Jan Hubicka wrote:
> When exactly the FALLTHRU edge is created to the EXIT block at IA-64
> compilation? I believe that at machines with HAVE_epilogue, all edges
> to EXIT block nonfallthru, as EXIT instruction should be in the way.
It happens here
600 if (note
601 && INTVAL (XEXP (note, 0)) < REG_BR_PROB_BASE / 2
602 && invert_jump (bb_end_insn,
603 label_for_bb (e_fall->dest), 0))
604 {
605 e_fall->flags &= ~EDGE_FALLTHRU;
606 e_taken->flags |= EDGE_FALLTHRU;
607 e = e_fall, e_fall = e_taken, e_taken = e;
608 }
when we reverse the condition for
(jump_insn 126 131 179 (set (pc)
(if_then_else (eq (reg:BI 262 p6 [368])
(const_int 0 [0x0]))
(return)
(pc))) 220 {*return_true}
(expr_list:REG_DEAD (reg:BI 262 p6 [368])
(expr_list:REG_BR_PROB (const_int 4500 [0x1194])
(nil))))
which seems a perfectly reasonable thing to do.
r~
More information about the Gcc-patches
mailing list