diff options
author | Jeffrey Oldham <oldham@codesourcery.com> | 2000-08-02 04:21:27 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-08-02 04:21:27 +0000 |
commit | b53978a3ee3998863c0f942b9b4c40d0e36d2bc7 (patch) | |
tree | effa31090707b8e4d80bb9f56140fd2884c53bc1 /gcc/basic-block.h | |
parent | 79c2c6da2c5621208eec12f608b672856d38f6a3 (diff) | |
download | gcc-b53978a3ee3998863c0f942b9b4c40d0e36d2bc7.zip gcc-b53978a3ee3998863c0f942b9b4c40d0e36d2bc7.tar.gz gcc-b53978a3ee3998863c0f942b9b4c40d0e36d2bc7.tar.bz2 |
Makefile.in (OBJS): Added dce.o.
* Makefile.in (OBJS): Added dce.o.
(ssa.o): Updated target to include ssa.h.
(flow.o): Likewise.
(toplev.o): Likewise.
(dce.o): Created target.
* basic-block.h: Added comments.
(INVALID_BLOCK): Added definition.
(connect_infinite_loops_to_exit): Added declaration.
Moved SSA declarations to ssa.h.
* flow.c: Added inclusion of ssa.h.
(struct depth_first_search_dsS, depth_first_search_ds):
Added definitions.
(compute_immediate_postdominators): Added definition.
(connect_infinite_loops_to_exit): Likewise.
(flow_dfs_compute_reverse_init): Likewise.
(flow_dfs_compute_reverse_add_bb): Likewise.
(flow_dfs_compute_reverse_execute): Likewise.
(flow_dfs_compute_reverse_finish): Likewise.
* rtl.h (rtx/in_struct): Added use to determine insn necessity.
(LABEL_P): Added definition.
(JUMP_P): Likewise.
(NOTE_P): Likewise.
(BARRIER_P): Likewise.
(JUMP_TABLE_DATA_P): Likewise.
(INSN_DEAD_CODE_P): Likewise.
* ssa.c: Replaced inclusions with ssa.h inclusion.
(CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
(rename_registers): Removed unnecessary variables.
* ssa.h: Created by moving declarations from ssa.c and
basic-block.h.
* timevar.def: Defined TV_DEAD_CODE_ELIM.
* toplev.c: Added ssa.h inclusion.
(dump_file_index): Added DFI_dce.
(dump_file): Added "dce" entry.
Defined flag_ssa.
(f_options): Added dce entry.
* invoke.texi: Document -fdce. Emphasize experimental status of
-fssa.
Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
From-SVN: r35419
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r-- | gcc/basic-block.h | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 2e54075..a018f23 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -141,6 +141,18 @@ typedef struct edge_def { #define EDGE_COMPLEX (EDGE_ABNORMAL | EDGE_ABNORMAL_CALL | EDGE_EH) +/* Basic blocks need not start with a label nor end with a jump insn. + For example, a previous basic block may just "conditionally fall" + into the succeeding basic block, and the last basic block need not + end with a jump insn. Block 0 is a descendant of the entry block. + + A basic block beginning with two labels cannot have notes between + the labels. + + Data for jump tables are stored in jump_insns that occur in no + basic block even though these insns can follow or precede insns in + basic blocks. */ + /* Basic block information indexed by block number. */ typedef struct basic_block_def { /* The first and last insns of the block. */ @@ -210,6 +222,9 @@ extern regset regs_live_at_setjmp; #define ENTRY_BLOCK (-1) #define EXIT_BLOCK (-2) +/* Special block number not valid for any block. */ +#define INVALID_BLOCK (-3) + /* Similarly, block pointers for the edge list. */ extern struct basic_block_def entry_exit_blocks[2]; #define ENTRY_BLOCK_PTR (&entry_exit_blocks[0]) @@ -230,6 +245,7 @@ extern void insert_insn_on_edge PARAMS ((rtx, edge)); extern void commit_edge_insertions PARAMS ((void)); extern void remove_fake_edges PARAMS ((void)); extern void add_noreturn_fake_exit_edges PARAMS ((void)); +extern void connect_infinite_loops_to_exit PARAMS ((void)); extern rtx flow_delete_insn PARAMS ((rtx)); extern void flow_delete_insn_chain PARAMS ((rtx, rtx)); extern void make_edge PARAMS ((sbitmap *, basic_block, @@ -514,13 +530,4 @@ extern conflict_graph conflict_graph_compute PARAMS ((regset, partition)); -/* In ssa.c */ -extern void convert_to_ssa PARAMS ((void)); -extern void convert_from_ssa PARAMS ((void)); -typedef int (*successor_phi_fn) PARAMS ((rtx, int, int, void *)); -extern int for_each_successor_phi PARAMS ((basic_block bb, - successor_phi_fn, - void *)); -extern int in_ssa_form; - #endif /* _BASIC_BLOCK_H */ |