basic-block.h (could_fall_through): Declare.
authorJ"orn Rennecke <joern.rennecke@superh.com>
Mon, 14 Jun 2004 12:09:08 +0000 (12:09 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Mon, 14 Jun 2004 12:09:08 +0000 (13:09 +0100)
commit623a66fa858ef308693b61e33f2c7ba6686d3151
treea37b5ac1c93cff4befd42e4070615ba42213a250
parentce2a46a203b146e4cf3ebc23ea5de2dba3b4917f
basic-block.h (could_fall_through): Declare.

* basic-block.h (could_fall_through): Declare.
* cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
Fail if the source already has a fallthrough edge to the exit
block pointer.
(could_fall_through): New function.
* cfgbuild.c (make_edges): Check if we already have a fallthrough
edge to the exit block pointer.
* cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
not called before reload has completed.
Handle special case of first block having a fall-through exit edge.
(cfg_layout_finalize): Don't call it before reload or if we have
rtl epilogues.
(fixup_reorder_chain): A fall through to the exit block does not
require the block to come last.  Add sanity checks.
* cfgrtl.c (rtl_split_edge): Add special handling of fall through
edges to the exit block.
* function.c (cfglayout.h): #include.
(thread_prologue_and_epilogue_insns): If we have neither return nor
epilogue, but a fall through to the exit block from mid-function,
force a non-fall-through exit.
* Makefile.in (function.o): Depend on CFGLAYOUT_H.

From-SVN: r83089
gcc/ChangeLog
gcc/Makefile.in
gcc/basic-block.h
gcc/cfganal.c
gcc/cfgbuild.c
gcc/cfglayout.c
gcc/cfgrtl.c
gcc/function.c