summaryrefslogtreecommitdiff
path: root/gcc/cfgrtl.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-22 11:11:21 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-22 11:11:21 +0000
commit26fb1781ca25d5670ea3132d93b0b243fd7319f7 (patch)
treec1fc98111346b8e70b39c4624897463b590685e6 /gcc/cfgrtl.c
parent09a41b316a8039846dca2e5875015b37c2f7ada9 (diff)
downloadgcc-26fb1781ca25d5670ea3132d93b0b243fd7319f7.tar.gz
* cfgcleanup.c (outgoing_edges_math): Fix condition; relax
frequencies match; avoid match on different loop depths. (try_crossjump_to_bb): Kill tests that no longer brings time savings. * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth updating code. (split_edge): Likewise. * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized variable. * Makefile.in (cfgrtl): Add insn-config.h depenendency. * cfgrtl.c: Include insn-config.h (split_block) Dirtify block in presence of conditional execution git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51168 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r--gcc/cfgrtl.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index 5bf33bc0795..a4f7006d392 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -56,6 +56,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "toplev.h"
#include "tm_p.h"
#include "obstack.h"
+#include "insn-config.h"
/* Stubs in case we don't have a return insn. */
#ifndef HAVE_return
@@ -546,6 +547,15 @@ split_block (bb, insn)
propagate_block (new_bb, new_bb->global_live_at_start, NULL, NULL, 0);
COPY_REG_SET (bb->global_live_at_end,
new_bb->global_live_at_start);
+#ifdef HAVE_conditional_execution
+ /* In the presence of conditional execution we are not able to update
+ liveness precisely. */
+ if (reload_completed)
+ {
+ bb->flags |= BB_DIRTY;
+ new_bb->flags |= BB_DIRTY;
+ }
+#endif
}
return new_edge;