#include "config.h"#include "system.h"#include "tree.h"#include "rtl.h"#include "hard-reg-set.h"#include "basic-block.h"#include "insn-config.h"#include "output.h"#include "function.h"#include "obstack.h"#include "cfglayout.h"

Go to the source code of this file.
| bool cfg_layout_can_duplicate_bb_p | ( | basic_block | bb | ) |
Definition at line 745 of file cfglayout.c.
Referenced by cfg_layout_duplicate_bb(), and tail_duplicate().
| basic_block cfg_layout_duplicate_bb | ( | basic_block | bb, | |
| edge | e | |||
| ) |
Definition at line 918 of file cfglayout.c.
References abort, alloc_aux_for_block(), cfg_layout_can_duplicate_bb_p(), cfg_layout_redirect_edge(), COPY_REG_SET, basic_block_def::count, create_basic_block(), edge::dest, duplicate_insn_chain(), EDGE_FREQUENCY, EXIT_BLOCK_PTR, edge::flags, basic_block_def::flags, flow_obstack, basic_block_def::frequency, get_last_insn(), basic_block_def::global_live_at_end, basic_block_def::global_live_at_start, insn, basic_block_def::loop_depth, make_edge(), n, NEXT_INSN, NULL, OBSTACK_ALLOC_REG_SET, RBI, s, edge::succ, edge::succ_next, and unlink_insn_chain().
Referenced by maybe_duplicate_computed_goto_succ(), and tail_duplicate().
Definition at line 1023 of file cfglayout.c.
Referenced by duplicate_computed_gotos(), partition_hot_cold_basic_blocks(), reorder_basic_blocks(), rest_of_handle_loop2(), rest_of_handle_sms(), rtl_loop_done(), thread_prologue_and_epilogue_insns(), and tracer().
| void cfg_layout_initialize | ( | ) |
Definition at line 1008 of file cfglayout.c.
References alloc_aux_for_blocks(), cleanup_unconditional_jumps(), and record_effective_endpoints().
Referenced by duplicate_computed_gotos(), partition_hot_cold_basic_blocks(), reorder_basic_blocks(), rest_of_handle_loop2(), rest_of_handle_sms(), rtl_loop_init(), thread_prologue_and_epilogue_insns(), and tracer().
| void cfg_layout_redirect_edge | ( | edge | e, | |
| basic_block | dest | |||
| ) |
Definition at line 868 of file cfglayout.c.
References abort, any_condjump_p(), block_label(), delete_barrier(), delete_insn(), edge::dest, EDGE_FALLTHRU, basic_block_def::end, edge::flags, GET_CODE, JUMP_LABEL, basic_block_def::next_bb, NEXT_INSN, NULL, onlyjump_p(), redirect_edge_and_branch(), redirect_edge_succ_nodup(), redirect_jump(), s, simplejump_p(), src, basic_block_def::succ, and edge::succ_next.
Referenced by cfg_layout_duplicate_bb().
Definition at line 293 of file cfglayout.c.
References abort, BLOCK_NUMBER, BLOCK_SUPERCONTEXT, emit_note_before(), insn, NOTE_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NULL, NULL_TREE, and s.
Referenced by reemit_insn_block_notes(), and scope_to_insns_finalize().
Definition at line 278 of file cfglayout.c.
References BLOCK_NUMBER.
Referenced by reemit_insn_block_notes(), and scope_to_insns_finalize().
| static void cleanup_unconditional_jumps | ( | ) | [static] |
Definition at line 659 of file cfglayout.c.
References delete_barrier(), delete_insn(), edge::dest, EDGE_FALLTHRU, basic_block_def::end, ENTRY_BLOCK_PTR, edge::flags, flow_delete_block(), FOR_EACH_BB, forwarder_block_p(), fprintf(), GET_CODE, basic_block_def::head, basic_block_def::index, insn, INSN_UID, jump, next, NEXT_INSN, NOTE_INSN_BASIC_BLOCK, NOTE_LINE_NUMBER, basic_block_def::pred, prev, basic_block_def::prev_bb, redirect_edge_succ_nodup(), rtl_dump_file, simplejump_p(), basic_block_def::succ, and edge::succ_next.
Referenced by cfg_layout_initialize().
Definition at line 773 of file cfglayout.c.
References abort, delete_insn(), emit_barrier(), emit_copy_of_insn_after(), emit_note(), GET_CODE, get_last_insn(), insn, last, NEXT_INSN, NOTE_INSN_BASIC_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_INSN_DELETED, NOTE_INSN_DELETED_LABEL, NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END, NOTE_INSN_EPILOGUE_BEG, NOTE_INSN_FUNCTION_BEG, NOTE_INSN_FUNCTION_END, NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_CONT, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_VTOP, NOTE_INSN_PROLOGUE_END, NOTE_INSN_REPEATED_LINE_NUMBER, NOTE_LINE_NUMBER, NOTE_SOURCE_FILE, NULL, and PATTERN.
Referenced by cfg_layout_duplicate_bb().
Definition at line 717 of file cfglayout.c.
References c, EDGE_FALLTHRU, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, edge::flags, next, NULL, edge::pred_next, RBI, and edge::src.
Referenced by cfg_layout_finalize().
Definition at line 387 of file cfglayout.c.
References abort, alloc_aux_for_block(), any_condjump_p(), BASIC_BLOCK, edge::dest, EDGE_EH, EDGE_FALLTHRU, basic_block_def::end, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, find_reg_note(), edge::flags, force_nonfallthru(), forwarder_block_p(), fprintf(), basic_block_def::frequency, function_footer, GET_CODE, basic_block_def::head, index(), basic_block_def::index, insn, INTVAL, invert_jump(), label_for_bb, n_basic_blocks, next, basic_block_def::next_bb, NEXT_INSN, NULL, NULL_RTX, PREV_INSN, RBI, REG_BR_PROB, REG_BR_PROB_BASE, returnjump_p(), rtl_dump_file, set_first_insn(), set_last_insn(), skip_insns_after_block(), basic_block_def::succ, edge::succ_next, unchecked_make_edge(), update_br_prob_note(), verify_insn_chain(), and XEXP.
Referenced by cfg_layout_finalize().
| static rtx label_for_bb | ( | basic_block | bb | ) | [static] |
Definition at line 178 of file cfglayout.c.
References block_label(), fprintf(), GET_CODE, and rtl_dump_file.
Definition at line 77 of file cplus-dem.c.
| static rtx skip_insns_after_block PARAMS | ( | (basic_block) | ) | [static] |
Definition at line 198 of file cfglayout.c.
References basic_block_def::end, end, FOR_EACH_BB, function_footer, get_insns(), get_last_insn(), basic_block_def::head, NEXT_INSN, next_insn(), PREV_INSN, RBI, skip_insns_after_block(), and unlink_insn_chain().
Referenced by cfg_layout_initialize().
| void scope_to_insns_finalize | ( | ) |
Definition at line 341 of file cfglayout.c.
References active_insn_p(), cfun, change_scope(), choose_inner_scope(), cur_block, DECL_INITIAL, delete_insn(), emit_note(), GET_CODE, get_insns(), i, insn, INSN_SCOPE, next_active_insn(), NOTE_INSN_DELETED, NULL, PATTERN, reorder_blocks(), XVECEXP, and XVECLEN.
Referenced by final_start_function().
| void scope_to_insns_initialize | ( | ) |
Definition at line 224 of file cfglayout.c.
References active_insn_p(), BLOCK_SUPERCONTEXT, cfun, DECL_INITIAL, delete_insn(), GET_CODE, get_insns(), insn, INSN_SCOPE, next, NEXT_INSN, NOTE_BLOCK, NOTE_INSN_BLOCK_BEG, NOTE_INSN_BLOCK_END, NOTE_LINE_NUMBER, NULL, PATTERN, and set_block_levels().
Referenced by rest_of_compilation().
Definition at line 264 of file cfglayout.c.
References BLOCK_CHAIN, BLOCK_NUMBER, and BLOCK_SUBBLOCKS.
Referenced by GTY(), scope_to_insns_initialize(), set_block_levels(), and VEC().
| static rtx skip_insns_after_block | ( | basic_block | bb | ) | [static] |
Definition at line 90 of file cfglayout.c.
References EXIT_BLOCK_PTR, GET_CODE, insn, last_insn, NEXT_INSN, NOTE_INSN_BLOCK_END, NOTE_INSN_DELETED, NOTE_INSN_DELETED_LABEL, NOTE_INSN_LOOP_END, NOTE_LINE_NUMBER, NULL_RTX, PATTERN, prev, PREV_INSN, and reorder_insns().
Referenced by fixup_reorder_chain(), and record_effective_endpoints().
Definition at line 65 of file cfglayout.c.
References NEXT_INSN, NULL, PREV_INSN, set_first_insn(), and set_last_insn().
Referenced by add_labels_and_missing_jumps(), cfg_layout_delete_block(), cfg_layout_duplicate_bb(), cfg_layout_merge_blocks(), fix_crossing_conditional_branches(), fix_up_fall_thru_edges(), and record_effective_endpoints().
Definition at line 629 of file cfglayout.c.
Referenced by cfg_layout_finalize(), and fixup_reorder_chain().
rtx function_footer [static] |
Definition at line 48 of file cfglayout.c.
Referenced by fixup_reorder_chain(), and record_effective_endpoints().
1.5.6