diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-06-02 21:09:54 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-06-02 21:09:54 +0000 |
commit | ab87d1bca7874b6b6cf39626dd934548d6329ad0 (patch) | |
tree | cefa93bd4b55c17cc93db52e0412035b33082f45 /gcc/cfglayout.c | |
parent | b2e455f87d2e6cc23dfed04f13519f1b9810bfd6 (diff) | |
download | gcc-ab87d1bca7874b6b6cf39626dd934548d6329ad0.tar.gz |
* loop.c (emit_prefetch_instructions): Properly place the address computation.
* basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
(set_block_for_insn): Turn into macro.
* cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
* cfglayout.c (insn_scopes): Kill.
(scope_to_insns_initialize): Do not use insn_scopes.
(scope_to_insns_finalize): Likewise.
(duplicate_insn_chain): Likewise.
(cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
* cfgrtl.c (basic_block_for_insn): Kill.
(delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
(create_basic_block_structure): Use reorder_insns.
(compute_bb_for_insn): Do not use basic_block_for_insn.
(merge_blocks_nomove): Likewise.
(update_bb_for_insn): Likewise.
(verify_flow_info): Likewise.
(set_block_for_insn): Kill.
* combine.c (try_combine): Update gen_rtx_INSN call.
* emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
(mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
scopes and BBs.
(add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
(emit_note_before, emit_note_after, emit_line_note_after, emit_note):
Clear BB.
(emit_insns_after): Simplify.
(emit_copy_of_insn_after): Copy scope.
* final.c (final_start_function): Lower scopes.
* flow.c (check_function_return_warnings): Do not rely on deleted insn.
* integrate.c (copy_insn_list): Cope scopes.
* jump.c (duplicate_loop_exit_test): LIkewise; simplify.
* loop.c (loop_optimize): Do not care block notes.
* print-rtl.c (print_rtx): Print BB.
* recog.c (apply_change_group): Simplify.
* rtl.c (copy_rtx): Handle 'B'.
* rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
* rtl.h (Field accessors): Update indexes.
* sched-ebb.c (schedule_ebbs): Do not lower notes.
* sched-rgn.c (schedule_insns): Likewise.
* toplev.c (rest_of_compilation): Lower notes.
* unroll.c (unroll_loop): Do not care scoping notes.
(copy_loop_body): Copy scopes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54188 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfglayout.c')
-rw-r--r-- | gcc/cfglayout.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index 494fa7c96eb..0c648b65f67 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -50,9 +50,6 @@ static void cleanup_unconditional_jumps PARAMS ((void)); static void fixup_fallthru_exit_predecessor PARAMS ((void)); static rtx unlink_insn_chain PARAMS ((rtx, rtx)); static rtx duplicate_insn_chain PARAMS ((rtx, rtx)); - -/* Map insn uid to lexical block. */ -static varray_type insn_scopes; static rtx unlink_insn_chain (first, last) @@ -219,8 +216,6 @@ scope_to_insns_initialize () tree block = NULL; rtx insn, next; - VARRAY_TREE_INIT (insn_scopes, get_max_uid (), "insn scopes"); - for (insn = get_insns (); insn; insn = next) { next = NEXT_INSN (insn); @@ -228,7 +223,7 @@ scope_to_insns_initialize () if (active_insn_p (insn) && GET_CODE (PATTERN (insn)) != ADDR_VEC && GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC) - VARRAY_TREE (insn_scopes, INSN_UID (insn)) = block; + INSN_SCOPE (insn) = block; else if (GET_CODE (insn) == NOTE) { switch (NOTE_LINE_NUMBER (insn)) @@ -324,13 +319,14 @@ scope_to_insns_finalize () the common parent easily. */ set_block_levels (cur_block, 0); - for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) + insn = get_insns (); + if (!active_insn_p (insn)) + insn = next_active_insn (insn); + for (; insn; insn = next_active_insn (insn)) { tree this_block; - if ((size_t) INSN_UID (insn) >= insn_scopes->num_elements) - continue; - this_block = VARRAY_TREE (insn_scopes, INSN_UID (insn)); + this_block = INSN_SCOPE (insn); if (! this_block) continue; @@ -341,8 +337,6 @@ scope_to_insns_finalize () } } - VARRAY_FREE (insn_scopes); - /* change_scope emits before the insn, not after. */ note = emit_note (NULL, NOTE_INSN_DELETED); change_scope (note, cur_block, DECL_INITIAL (cfun->decl)); @@ -742,10 +736,6 @@ duplicate_insn_chain (from, to) || GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC) break; new = emit_copy_of_insn_after (insn, get_last_insn ()); - /* Record the INSN_SCOPE. */ - VARRAY_GROW (insn_scopes, INSN_UID (new) + 1); - VARRAY_TREE (insn_scopes, INSN_UID (new)) - = VARRAY_TREE (insn_scopes, INSN_UID (insn)); break; case CODE_LABEL: @@ -958,8 +948,6 @@ cfg_layout_initialize () cleanup_unconditional_jumps (); - scope_to_insns_initialize (); - record_effective_endpoints (); } @@ -976,8 +964,6 @@ cfg_layout_finalize () verify_insn_chain (); #endif - scope_to_insns_finalize (); - free_aux_for_blocks (); #ifdef ENABLE_CHECKING |