#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "rtl.h"#include "obstack.h"#include "hard-reg-set.h"#include "basic-block.h"#include "insn-config.h"#include "recog.h"#include "toplev.h"#include "tm_p.h"#include "timevar.h"

Go to the source code of this file.
Referenced by blocks_in_phiopt_order(), and dfs_enumerate_from().
Referenced by dfs_enumerate_from().
Referenced by blocks_in_phiopt_order(), and dfs_enumerate_from().
Definition at line 601 of file cfganal.c.
References EDGE_COUNT, EDGE_FAKE, EXIT_BLOCK_PTR, FOR_EACH_BB, make_single_succ_edge(), NULL, and basic_block_def::succ.
| bool can_fallthru | ( | basic_block | src, | |
| basic_block | target | |||
| ) |
Definition at line 105 of file cfganal.c.
References active_insn_p(), BB_END, BB_HEAD, edge::dest, EDGE_FALLTHRU, EXIT_BLOCK_PTR, edge::flags, FOR_EACH_EDGE, insn, next_active_insn(), and basic_block_def::next_bb.
Definition at line 1071 of file cfganal.c.
References compute_dominance_frontiers_1(), timevar_pop, and timevar_push.
Definition at line 1038 of file cfganal.c.
References b, bitmap_bit_p(), bitmap_set_bit(), CDI_DOMINATORS, EDGE_COUNT, ENTRY_BLOCK_PTR, FOR_EACH_BB, FOR_EACH_EDGE, get_immediate_dominator(), basic_block_def::index, p, and edge::src.
Definition at line 622 of file cfganal.c.
References EDGE_FAKE, EXIT_BLOCK_PTR, flow_dfs_compute_reverse_add_bb(), flow_dfs_compute_reverse_execute(), flow_dfs_compute_reverse_finish(), flow_dfs_compute_reverse_init(), and make_edge().
| bool could_fall_through | ( | basic_block | src, | |
| basic_block | target | |||
| ) |
Definition at line 133 of file cfganal.c.
References edge::dest, EDGE_FALLTHRU, EXIT_BLOCK_PTR, edge::flags, and FOR_EACH_EDGE.
Referenced by fixup_reorder_chain().
Definition at line 339 of file cfganal.c.
References EDGE_COUNT, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, FOR_BB_BETWEEN, FOR_EACH_EDGE, edge_list::index_to_edge, n_basic_blocks, edge_list::num_blocks, edge_list::num_edges, basic_block_def::succ, edge::succ_next, xmalloc(), XNEW, and XNEWVEC.
| int dfs_enumerate_from | ( | basic_block | bb, | |
| int | reverse, | |||
| bool(*)(basic_block, void *) | predicate, | |||
| basic_block * | rslt, | |||
| int | rslt_max, | |||
| void * | data | |||
| ) |
Definition at line 933 of file cfganal.c.
References BB_VISITED, edge::dest, basic_block_def::flags, flags, FOR_EACH_EDGE, free(), gcc_assert, last_basic_block, MARK_VISITED, sbitmap_alloc(), sbitmap_resize(), sbitmap_zero(), size, sp, edge::src, UNMARK_VISITED, visited, VISITED_P, xcalloc(), and XCNEWVEC.
| edge find_edge | ( | basic_block | pred, | |
| basic_block | succ | |||
| ) |
Definition at line 482 of file cfganal.c.
References edge::dest, EDGE_COUNT, FOR_EACH_EDGE, NULL, and edge::src.
| int find_edge_index | ( | struct edge_list * | edge_list, | |
| basic_block | pred, | |||
| basic_block | succ | |||
| ) |
Definition at line 507 of file cfganal.c.
References EDGE_INDEX_NO_EDGE, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB, NUM_EDGES, and x.
Definition at line 279 of file cfganal.c.
References b, BB_REACHABLE, edge::dest, dest, ENTRY_BLOCK_PTR, basic_block_def::flags, FOR_EACH_BB, FOR_EACH_EDGE, free(), n_basic_blocks, basic_block_def::succ, edge::succ_next, tos, worklist, xmalloc(), and XNEWVEC.
Definition at line 63 of file cfganal.c.
References active_insn_p(), GET_CODE, PATTERN, REG_FUNCTION_VALUE_P, REG_P, and XEXP.
| static void flow_dfs_compute_reverse_add_bb | ( | depth_first_search_ds | data, | |
| basic_block | bb | |||
| ) | [static] |
Definition at line 882 of file cfganal.c.
References basic_block_def::index, SET_BIT, depth_first_search_dsS::sp, depth_first_search_dsS::stack, and depth_first_search_dsS::visited_blocks.
| static basic_block flow_dfs_compute_reverse_execute | ( | depth_first_search_ds | data, | |
| basic_block | last_unvisited | |||
| ) | [static] |
Definition at line 894 of file cfganal.c.
References flow_dfs_compute_reverse_add_bb(), FOR_BB_BETWEEN, FOR_EACH_EDGE, basic_block_def::index, NULL, depth_first_search_dsS::sp, edge::src, depth_first_search_dsS::stack, TEST_BIT, and depth_first_search_dsS::visited_blocks.
| static void flow_dfs_compute_reverse_finish | ( | depth_first_search_ds | data | ) | [static] |
Definition at line 923 of file cfganal.c.
References free(), sbitmap_free, depth_first_search_dsS::stack, and depth_first_search_dsS::visited_blocks.
| static void flow_dfs_compute_reverse_init | ( | depth_first_search_ds | data | ) | [static] |
Definition at line 862 of file cfganal.c.
References last_basic_block, n_basic_blocks, sbitmap_alloc(), sbitmap_zero(), depth_first_search_dsS::sp, depth_first_search_dsS::stack, depth_first_search_dsS::visited_blocks, and XNEWVEC.
| bool forwarder_block_p | ( | basic_block | bb | ) |
Definition at line 85 of file cfganal.c.
References BB_END, BB_HEAD, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, flow_active_insn_p(), GET_CODE, insn, INSN_P, JUMP_P, NEXT_INSN, simplejump_p(), and single_succ_p().
Definition at line 158 of file cfganal.c.
References edge::dest, dest, EDGE_COUNT, EDGE_DFS_BACK, ei_edge(), ei_next(), ei_one_before_end_p(), ei_start, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, edge::flags, free(), basic_block_def::index, last_basic_block, n_basic_blocks, sbitmap_alloc(), sbitmap_free, sbitmap_zero(), SET_BIT, sp, src, edge::src, stack, basic_block_def::succ, edge::succ_next, TEST_BIT, visited, xcalloc(), XCNEWVEC, xmalloc(), and XNEWVEC.
| int post_order_compute | ( | int * | post_order, | |
| bool | include_entry_exit | |||
| ) |
Definition at line 652 of file cfganal.c.
References edge::dest, dest, EDGE_COUNT, ei_edge(), ei_next(), ei_one_before_end_p(), ei_start, ENTRY_BLOCK, ENTRY_BLOCK_PTR, EXIT_BLOCK, EXIT_BLOCK_PTR, free(), basic_block_def::index, last_basic_block, n_basic_blocks, sbitmap_alloc(), sbitmap_free, sbitmap_zero(), SET_BIT, sp, src, edge::src, stack, TEST_BIT, visited, and XNEWVEC.
Referenced by df_analyze(), and set_up_bb_rts_numbers().
| int pre_and_rev_post_order_compute | ( | int * | pre_order, | |
| int * | rev_post_order, | |||
| bool | include_entry_exit | |||
| ) |
Definition at line 731 of file cfganal.c.
References edge::dest, dest, EDGE_COUNT, ei_edge(), ei_next(), ei_one_before_end_p(), ei_start, ENTRY_BLOCK, ENTRY_BLOCK_PTR, EXIT_BLOCK, EXIT_BLOCK_PTR, free(), gcc_assert, basic_block_def::index, last_basic_block, n_basic_blocks, NUM_FIXED_BLOCKS, sbitmap_alloc(), sbitmap_free, sbitmap_zero(), SET_BIT, sp, src, edge::src, stack, TEST_BIT, visited, and XNEWVEC.
Referenced by compute_rvuse_and_antic_safe(), flow_loops_find(), init_reassoc(), and vt_find_locations().
Definition at line 389 of file cfganal.c.
References ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, fprintf(), index(), INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB, edge_list::num_blocks, edge_list::num_edges, and x.
Definition at line 579 of file cfganal.c.
References ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, FOR_BB_BETWEEN, NULL, remove_fake_predecessors(), and remove_fake_successors().
Definition at line 590 of file cfganal.c.
References EXIT_BLOCK_PTR, and remove_fake_predecessors().
Referenced by execute_sink_code(), fini_pre(), make_edges(), one_pre_gcse_pass(), see_execute_LCM(), store_motion(), tree_estimate_probability(), and try_optimize_cfg().
| static void remove_fake_predecessors | ( | basic_block | bb | ) | [static] |
Definition at line 560 of file cfganal.c.
References EDGE_FAKE, ei_next(), ei_safe_edge(), ei_start, edge::flags, and remove_edge().
Definition at line 242 of file cfganal.c.
References any_condjump_p(), BB_END, EDGE_CAN_FALLTHRU, EDGE_COUNT, EDGE_FALLTHRU, EDGE_SUCC, basic_block_def::end, edge::flags, FOR_EACH_BB, FOR_EACH_EDGE, invert_jump(), JUMP_LABEL, basic_block_def::succ, and edge::succ_next.
Definition at line 416 of file cfganal.c.
References edge::dest, EDGE_INDEX, EDGE_INDEX_NO_EDGE, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, FOR_BB_BETWEEN, FOR_EACH_EDGE, fprintf(), index(), basic_block_def::index, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB, NULL, p, basic_block_def::pred, edge::pred_next, s, edge::src, basic_block_def::succ, and edge::succ_next.
1.5.6