From: Jan Hubicka Date: Thu, 23 Aug 2001 15:33:13 +0000 (+0200) Subject: function.c (thread_prologue_and_epilogue_insns): Avoid fallthru flag on edge to exit. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ab75d1f125b1f3c49531f1be44f9298d3024c452;p=gcc.git function.c (thread_prologue_and_epilogue_insns): Avoid fallthru flag on edge to exit. * function.c (thread_prologue_and_epilogue_insns): Avoid fallthru flag on edge to exit. * i386.md (trunc?fsi splitter): Conditionionize for non-sse. * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge dead edges. From-SVN: r45135 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f1cd83aab3..9899b3f994e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +Thu Aug 23 17:21:43 CEST 2001 Jan Hubicka + + * function.c (thread_prologue_and_epilogue_insns): Avoid + fallthru flag on edge to exit. + + * i386.md (trunc?fsi splitter): Conditionionize for non-sse. + + * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge + dead edges. + 2001-08-23 Lars Brinkhoff * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove. diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 13c7d00f5c0..892930474f7 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -4818,7 +4818,7 @@ && !reload_completed && !reload_in_progress && !SSE_FLOAT_MODE_P (GET_MODE (operands[1]))" "#" - "" + "&& 1" [(const_int 0)] { operands[2] = assign_386_stack_local (HImode, 1); diff --git a/gcc/flow.c b/gcc/flow.c index 5e3a6ae1c62..1360c7e9b2e 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -4663,6 +4663,8 @@ delete_noop_moves (f) PUT_CODE (insn, NOTE); NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED; NOTE_SOURCE_FILE (insn) = 0; + if (insn == bb->end) + purge_dead_edges (bb); } } } @@ -5250,7 +5252,10 @@ propagate_block_delete_insn (bb, insn) } if (bb->end == insn) - bb->end = PREV_INSN (insn); + { + bb->end = PREV_INSN (insn); + purge_dead_edges (bb); + } flow_delete_insn (insn); } diff --git a/gcc/function.c b/gcc/function.c index f934200f998..fa440e36284 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -7336,6 +7336,7 @@ thread_prologue_and_epilogue_insns (f) emit_barrier_after (last->end); emit_return_into_block (last, epilogue_line_note); epilogue_end = last->end; + last->succ->flags &= ~EDGE_FALLTHRU; goto epilogue_done; } }