diff options
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index fd6d1c7..6c0d1c0 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -129,14 +129,16 @@ init_empty_tree_cfg (void) /* Initialize the basic block array. */ init_flow (); profile_status = PROFILE_ABSENT; - n_basic_blocks = 0; - last_basic_block = 0; + n_basic_blocks = NUM_FIXED_BLOCKS; + last_basic_block = NUM_FIXED_BLOCKS; VARRAY_BB_INIT (basic_block_info, initial_cfg_capacity, "basic_block_info"); /* Build a mapping of labels to their associated blocks. */ VARRAY_BB_INIT (label_to_block_map, initial_cfg_capacity, "label to block map"); + BASIC_BLOCK (ENTRY_BLOCK) = ENTRY_BLOCK_PTR; + BASIC_BLOCK (EXIT_BLOCK) = EXIT_BLOCK_PTR; ENTRY_BLOCK_PTR->next_bb = EXIT_BLOCK_PTR; EXIT_BLOCK_PTR->prev_bb = ENTRY_BLOCK_PTR; } @@ -170,7 +172,7 @@ build_tree_cfg (tree *tp) factor_computed_gotos (); /* Make sure there is always at least one block, even if it's empty. */ - if (n_basic_blocks == 0) + if (n_basic_blocks == NUM_FIXED_BLOCKS) create_empty_bb (ENTRY_BLOCK_PTR); /* Adjust the size of the array. */ @@ -430,7 +432,7 @@ make_edges (void) /* Create an edge from entry to the first block with executable statements in it. */ - make_edge (ENTRY_BLOCK_PTR, BASIC_BLOCK (0), EDGE_FALLTHRU); + make_edge (ENTRY_BLOCK_PTR, BASIC_BLOCK (NUM_FIXED_BLOCKS), EDGE_FALLTHRU); /* Traverse the basic block array placing edges. */ FOR_EACH_BB (bb) @@ -794,7 +796,8 @@ label_to_block_fn (struct function *ifun, tree dest) and undefined variable warnings quite right. */ if ((errorcount || sorrycount) && uid < 0) { - block_stmt_iterator bsi = bsi_start (BASIC_BLOCK (0)); + block_stmt_iterator bsi = + bsi_start (BASIC_BLOCK (NUM_FIXED_BLOCKS)); tree stmt; stmt = build1 (LABEL_EXPR, void_type_node, dest); @@ -4656,7 +4659,7 @@ print_loop_ir (FILE *file) { basic_block bb; - bb = BASIC_BLOCK (0); + bb = BASIC_BLOCK (NUM_FIXED_BLOCKS); if (bb && bb->loop_father) print_loop (file, bb->loop_father, 0); } @@ -4738,7 +4741,7 @@ tree_flow_call_edges_add (sbitmap blocks) int last_bb = last_basic_block; bool check_last_block = false; - if (n_basic_blocks == 0) + if (n_basic_blocks == NUM_FIXED_BLOCKS) return 0; if (! blocks) |