diff options
author | Alex Samuel <samuel@gcc.gnu.org> | 2000-03-10 08:16:55 +0000 |
---|---|---|
committer | Alex Samuel <samuel@gcc.gnu.org> | 2000-03-10 08:16:55 +0000 |
commit | d9d4fb433e86047a5bab699548322cfa745795d6 (patch) | |
tree | 03e5dea61e82a209e52f9313b2506ef3fc4b78a4 /gcc/flow.c | |
parent | ea7f51a4af057b3a231b25fc037417373a5421cd (diff) | |
download | gcc-d9d4fb433e86047a5bab699548322cfa745795d6.zip gcc-d9d4fb433e86047a5bab699548322cfa745795d6.tar.gz gcc-d9d4fb433e86047a5bab699548322cfa745795d6.tar.bz2 |
Changes in include:
* partition.h: New file.
Changes in libiberty:
* Makefile.in (CFILES): Add partition.c.
(REQUIRED_OFILES): Add partition.o.
(partition.o): New rule.
* partition.c: New file.
Changes in gcc:
* Makefile.in (ssa.o): New rule.
(OBJS): Add ssa.o.
(STAGESTUFF): Add *.ssa and *.ussa.
(mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
* rtl.def (PHI): New RTL expression.
* rtl.h (clear_log_links): New declaration.
(convert_to_ssa): Likewise.
(convert_from_ssa): Likewise.
* flow.c (split_edge): If the entry node falls through to the
split edge's source block, split the entry edge.
(clear_log_links): New function.
* toplev.c (ssa_dump): New variable.
(flag_ssa): Likewise.
(f_options): Add "ssa".
(compile_file): Create SSA dump files.
(rest_of_compilation): Go to and from SSA if enabled.
(decide_d_option): Handle -de for SSA dump files.
* ssa.c: New file.
From-SVN: r32465
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -362,6 +362,7 @@ static void fixup_reorder_chain PARAMS ((void)); it being unused. */ void verify_flow_info PARAMS ((void)); int flow_loop_outside_edge_p PARAMS ((const struct loop *, edge)); +void clear_log_links PARAMS ((rtx)); /* Find basic blocks of the current function. F is the first insn of the function and NREGS the number of register @@ -1369,7 +1370,8 @@ split_edge (edge_in) basic_block jump_block; rtx pos; - if ((e->flags & EDGE_CRITICAL) == 0) + if ((e->flags & EDGE_CRITICAL) == 0 + && e->src != ENTRY_BLOCK_PTR) { /* Non critical -- we can simply add a jump to the end of the existing predecessor. */ @@ -7047,7 +7049,6 @@ flow_loop_outside_edge_p (loop, e) } - typedef struct reorder_block_def { int flags; int index; @@ -7769,3 +7770,14 @@ reorder_basic_blocks () flow_loops_free (&loops_info); } + +/* Clear LOG_LINKS fields of insns in a chain. */ +void +clear_log_links (insns) + rtx insns; +{ + rtx i; + for (i = insns; i; i = NEXT_INSN (i)) + if (GET_RTX_CLASS (GET_CODE (i)) == 'i') + LOG_LINKS (i) = 0; +} |