Home
last modified time | relevance | path

Searched refs:basic_block (Results 1 – 25 of 165) sorted by relevance

1234567

/freebsd-10-stable/contrib/gcc/
Dcfghooks.h32 void (*dump_bb) (basic_block, FILE *, int);
37 basic_block (*create_basic_block) (void *head, void *end, basic_block after);
43 edge (*redirect_edge_and_branch) (edge e, basic_block b);
48 basic_block (*redirect_edge_and_branch_force) (edge, basic_block);
51 void (*delete_basic_block) (basic_block);
55 basic_block (*split_block) (basic_block b, void * i);
58 bool (*move_block_after) (basic_block b, basic_block a);
61 bool (*can_merge_blocks_p) (basic_block a, basic_block b);
64 void (*merge_blocks) (basic_block a, basic_block b);
71 bool (*predicted_by_p) (basic_block bb, enum br_predictor predictor);
[all …]
Dbasic-block.h283 typedef struct basic_block_def *basic_block; typedef
285 DEF_VEC_P(basic_block);
286 DEF_VEC_ALLOC_P(basic_block,gc);
287 DEF_VEC_ALLOC_P(basic_block,heap);
350 basic_block bb_ = (bb); \
366 basic_block x_entry_block_ptr;
367 basic_block x_exit_block_ptr;
370 VEC(basic_block,gc) *x_basic_block_info;
383 VEC(basic_block,gc) *x_label_to_block_map;
402 (VEC_index (basic_block, basic_block_info_for_function(FN), (N)))
[all …]
Dtree-flow.h39 typedef struct basic_block_def *basic_block; typedef
301 basic_block bb;
346 static inline basic_block bb_for_stmt (tree);
347 extern void set_bb_for_stmt (tree, basic_block);
370 static inline tree phi_nodes (basic_block);
371 static inline void set_phi_nodes (basic_block, tree);
473 basic_block bb;
476 static inline block_stmt_iterator bsi_start (basic_block);
477 static inline block_stmt_iterator bsi_last (basic_block);
478 static inline block_stmt_iterator bsi_after_labels (basic_block);
[all …]
Dcfghooks.c76 basic_block bb, last_bb_seen; in verify_flow_info()
77 basic_block *last_visited; in verify_flow_info()
80 last_visited = XCNEWVEC (basic_block, last_basic_block); in verify_flow_info()
236 dump_bb (basic_block bb, FILE *outf, int indent) in dump_bb()
283 redirect_edge_and_branch (edge e, basic_block dest) in redirect_edge_and_branch()
300 basic_block
301 redirect_edge_and_branch_force (edge e, basic_block dest) in redirect_edge_and_branch_force()
303 basic_block ret; in redirect_edge_and_branch_force()
319 split_block (basic_block bb, void *i) in split_block()
321 basic_block new_bb; in split_block()
[all …]
Ddominance.c103 basic_block *dfs_to_bb;
117 static void calc_dfs_tree_nonrec (struct dom_info *, basic_block,
166 init_ar (di->dfs_to_bb, basic_block, num, 0); in init_dom_info()
202 calc_dfs_tree_nonrec (struct dom_info *di, basic_block bb, in calc_dfs_tree_nonrec()
213 basic_block en_block; in calc_dfs_tree_nonrec()
215 basic_block ex_block; in calc_dfs_tree_nonrec()
237 basic_block bn; in calc_dfs_tree_nonrec()
317 basic_block begin = reverse ? EXIT_BLOCK_PTR : ENTRY_BLOCK_PTR; in calc_dfs_tree()
336 basic_block b; in calc_dfs_tree()
477 basic_block en_block; in calc_idoms()
[all …]
Dcfganal.c40 basic_block *stack;
53 basic_block);
54 static basic_block flow_dfs_compute_reverse_execute (depth_first_search_ds,
55 basic_block);
85 forwarder_block_p (basic_block bb) in forwarder_block_p()
105 can_fallthru (basic_block src, basic_block target) in can_fallthru()
133 could_fall_through (basic_block src, basic_block target) in could_fall_through()
189 basic_block src; in mark_dfs_back_edges()
190 basic_block dest; in mark_dfs_back_edges()
244 basic_block bb; in set_edge_can_fallthru_flag()
[all …]
Dcfgloopmanip.c37 static void loop_redirect_edge (edge, basic_block);
39 static void remove_bbs (basic_block *, int);
40 static bool rpe_enum_p (basic_block, void *);
41 static int find_path (edge, basic_block **);
42 static bool alp_enum_p (basic_block, void *);
45 static bool fix_bb_placement (struct loops *, basic_block);
46 static void fix_bb_placements (struct loops *, basic_block, bool *);
49 static basic_block create_preheader (struct loop *, int);
56 rpe_enum_p (basic_block bb, void *data) in rpe_enum_p()
64 remove_bbs (basic_block *bbs, int nbbs) in remove_bbs()
[all …]
Dcfg.c110 basic_block bb; in clear_edges()
132 basic_block
135 basic_block bb; in alloc_block()
142 link_block (basic_block b, basic_block after) in link_block()
152 unlink_block (basic_block b) in unlink_block()
165 basic_block bb; in compact_blocks()
189 expunge_block (basic_block b) in expunge_block()
214 basic_block dest = e->dest; in connect_dest()
224 basic_block src = e->src; in disconnect_src()
247 basic_block dest = e->dest; in disconnect_dest()
[all …]
Dtracer.c53 static int count_insns (basic_block);
54 static bool ignore_bb_p (basic_block);
56 static edge find_best_successor (basic_block);
57 static edge find_best_predecessor (basic_block);
58 static int find_trace (basic_block, basic_block *);
73 ignore_bb_p (basic_block bb) in ignore_bb_p()
85 count_insns (basic_block bb) in count_insns()
118 find_best_successor (basic_block bb) in find_best_successor()
137 find_best_predecessor (basic_block bb) in find_best_predecessor()
158 find_trace (basic_block bb, basic_block *trace) in find_trace()
[all …]
Dtree-cfg.c97 static basic_block create_bb (void *, void *, basic_block);
103 static void make_cond_expr_edges (basic_block);
104 static void make_switch_expr_edges (basic_block);
105 static void make_goto_expr_edges (basic_block);
106 static edge tree_redirect_edge_and_branch (edge, basic_block);
107 static edge tree_try_redirect_by_replacing_jump (edge, basic_block);
115 static inline void change_bb_for_stmt (tree t, basic_block bb);
118 static void tree_merge_blocks (basic_block, basic_block);
119 static bool tree_can_merge_blocks_p (basic_block, basic_block);
120 static void remove_bb (basic_block);
[all …]
Ddomwalk.h57 basic_block, bool);
65 basic_block);
70 basic_block, block_stmt_iterator);
75 basic_block);
80 basic_block);
85 basic_block, block_stmt_iterator);
93 basic_block);
122 void walk_dominator_tree (struct dom_walk_data *, basic_block);
Dcfgrtl.c67 static basic_block rtl_split_edge (edge);
68 static bool rtl_move_block_after (basic_block, basic_block);
70 static basic_block cfg_layout_split_block (basic_block, void *);
71 static edge cfg_layout_redirect_edge_and_branch (edge, basic_block);
72 static basic_block cfg_layout_redirect_edge_and_branch_force (edge, basic_block);
73 static void cfg_layout_delete_block (basic_block);
74 static void rtl_delete_block (basic_block);
75 static basic_block rtl_redirect_edge_and_branch_force (edge, basic_block);
76 static edge rtl_redirect_edge_and_branch (edge, basic_block);
77 static basic_block rtl_split_block (basic_block, void *);
[all …]
Dtree-if-conv.c110 static bool if_convertible_phi_p (struct loop *, basic_block, tree);
111 static bool if_convertible_modify_expr_p (struct loop *, basic_block, tree);
112 static bool if_convertible_stmt_p (struct loop *, basic_block, tree);
113 static bool if_convertible_bb_p (struct loop *, basic_block, basic_block);
115 static void add_to_predicate_list (basic_block, tree);
120 static basic_block find_phi_replacement_condition (struct loop *loop,
121 basic_block, tree *,
123 static void replace_phi_with_cond_modify_expr (tree, tree, basic_block,
128 static bool pred_blocks_visited_p (basic_block, bitmap *);
129 static basic_block * get_loop_body_in_if_conv_order (const struct loop *loop);
[all …]
Dsched-ebb.c58 static basic_block last_bb;
68 static basic_block earliest_block_with_similiar_load (basic_block, rtx);
70 static basic_block schedule_ebb (rtx, rtx);
73 static void add_block1 (basic_block, basic_block);
74 static basic_block advance_target_bb (basic_block, rtx);
78 static int ebb_head_or_leaf_p (basic_block, int);
133 basic_block bb; in begin_schedule_ready()
205 basic_block bb1 = BLOCK_FOR_INSN (insn1); in rank()
206 basic_block bb2 = BLOCK_FOR_INSN (insn2); in rank()
237 basic_block b = BLOCK_FOR_INSN (insn); in compute_jump_reg_dependencies()
[all …]
Dtree-cfgcleanup.c72 cleanup_control_expr_graph (basic_block bb, block_stmt_iterator bsi) in cleanup_control_expr_graph()
163 basic_block bb;
203 basic_block target_block;
259 tree_forwarder_block_p (basic_block bb, bool phi_wanted) in tree_forwarder_block_p()
264 basic_block dest; in tree_forwarder_block_p()
306 basic_block dest; in tree_forwarder_block_p()
338 has_abnormal_incoming_edge_p (basic_block bb) in has_abnormal_incoming_edge_p()
355 phi_alternatives_equal (basic_block dest, edge e1, edge e2) in phi_alternatives_equal()
381 remove_forwarder_block (basic_block bb, basic_block **worklist) in remove_forwarder_block()
384 basic_block dest = succ->dest; in remove_forwarder_block()
[all …]
Dcfgloop.h65 basic_block header;
68 basic_block latch;
189 int flow_loop_nodes_find (basic_block, struct loop *);
198 extern bool flow_bb_inside_loop_p (const struct loop *, const basic_block);
209 extern basic_block *get_loop_body (const struct loop *);
210 extern basic_block *get_loop_body_in_dom_order (const struct loop *);
211 extern basic_block *get_loop_body_in_bfs_order (const struct loop *);
218 extern void add_bb_to_loop (basic_block, struct loop *);
219 extern void remove_bb_from_loops (basic_block);
223 extern basic_block loop_split_edge_with (edge, rtx);
[all …]
Dtree-ssa-phiopt.c39 static bool conditional_replacement (basic_block, basic_block,
41 static bool value_replacement (basic_block, basic_block,
43 static bool minmax_replacement (basic_block, basic_block,
45 static bool abs_replacement (basic_block, basic_block,
47 static void replace_phi_edge_with_variable (basic_block, edge, tree, tree);
48 static basic_block *blocks_in_phiopt_order (void);
139 basic_block bb; in tree_ssa_phiopt()
140 basic_block *bb_order; in tree_ssa_phiopt()
158 basic_block bb1, bb2; in tree_ssa_phiopt()
191 basic_block bb_tmp = bb1; in tree_ssa_phiopt()
[all …]
Dtree-ssa-dce.c116 static inline void set_control_dependence_map_bit (basic_block, int);
117 static inline void clear_control_dependence_bitmap (basic_block);
120 static inline basic_block find_pdom (basic_block);
128 static void mark_control_dependent_edges_necessary (basic_block, struct edge_list *);
132 static void remove_dead_phis (basic_block);
133 static void remove_dead_stmt (block_stmt_iterator *, basic_block);
141 set_control_dependence_map_bit (basic_block bb, int edge_index) in set_control_dependence_map_bit()
151 clear_control_dependence_bitmap (basic_block bb) in clear_control_dependence_bitmap()
174 basic_block current_block; in find_control_dependence()
175 basic_block ending_block; in find_control_dependence()
[all …]
Dsched-int.h208 void (*add_block) (basic_block, basic_block);
214 basic_block (*advance_target_bb) (basic_block, rtx);
231 int (*region_head_or_leaf_p) (basic_block, int);
332 basic_block recovery_block;
634 extern void get_ebb_head_tail (basic_block, basic_block, rtx *, rtx *);
646 extern void schedule_block (basic_block *, int);
652 extern void unlink_bb_notes (basic_block, basic_block);
653 extern void add_block (basic_block, basic_block);
655 extern rtx bb_note (basic_block);
Dcfgloop.c48 static bool glb_enum_p (basic_block, void *);
56 basic_block bb; in flow_loops_cfg_dump()
124 basic_block *bbs; in flow_loop_dump()
224 flow_loop_nodes_find (basic_block header, struct loop *loop) in flow_loop_nodes_find()
226 basic_block *stack; in flow_loop_nodes_find()
235 stack = XNEWVEC (basic_block, n_basic_blocks); in flow_loop_nodes_find()
244 basic_block node; in flow_loop_nodes_find()
252 basic_block ancestor = e->src; in flow_loop_nodes_find()
275 basic_block bb; in mark_single_exit_loops()
428 update_latch_info (basic_block jump) in update_latch_info()
[all …]
Dcfgbuild.c51 static void make_edges (basic_block, basic_block, int);
52 static void make_label_edge (sbitmap, basic_block, rtx, int);
53 static void find_bb_boundaries (basic_block);
54 static void compute_outgoing_frequencies (basic_block);
187 make_label_edge (sbitmap edge_cache, basic_block src, rtx label, int flags) in make_label_edge()
205 rtl_make_eh_edge (sbitmap edge_cache, basic_block src, rtx insn) in rtl_make_eh_edge()
252 make_edges (basic_block min, basic_block max, int update_p) in make_edges()
254 basic_block bb; in make_edges()
433 basic_block prev = ENTRY_BLOCK_PTR; in find_basic_blocks_1()
518 basic_block bb; in find_basic_blocks()
[all …]
Dbb-reorder.c155 basic_block first, last;
170 static basic_block rotate_loop (edge, struct trace *, int);
171 static void mark_bb_visited (basic_block, int);
174 static basic_block copy_bb (basic_block, edge, basic_block, int);
175 static fibheapkey_t bb_to_key (basic_block);
176 static bool better_edge_p (basic_block, edge, int, int, int, int, edge);
178 static bool copy_bb_p (basic_block, int);
180 static bool push_to_next_round_p (basic_block, int, int, int, gcov_type);
200 push_to_next_round_p (basic_block bb, int round, int number_of_rounds, in push_to_next_round_p()
277 basic_block bb; in find_traces()
[all …]
Dcfgcleanup.c62 static bool try_crossjump_bb (int, basic_block);
63 static bool outgoing_edges_match (int, basic_block, basic_block);
64 static int flow_find_cross_jump (int, basic_block, basic_block, rtx *, rtx *);
67 static void merge_blocks_move_predecessor_nojumps (basic_block, basic_block);
68 static void merge_blocks_move_successor_nojumps (basic_block, basic_block);
70 static bool try_simplify_condjump (basic_block);
71 static bool try_forward_edges (int, basic_block);
72 static edge thread_jump (int, edge, basic_block);
74 static void notice_new_block (basic_block);
75 static void update_forwarder_flag (basic_block);
[all …]
Dtree-ssa-propagate.c133 static VEC(basic_block,heap) *cfg_blocks;
177 cfg_blocks_add (basic_block bb) in cfg_blocks_add()
192 if (cfg_blocks_num > VEC_length (basic_block, cfg_blocks)) in cfg_blocks_add()
199 cfg_blocks_tail = VEC_length (basic_block, cfg_blocks); in cfg_blocks_add()
201 VEC_safe_grow (basic_block, heap, cfg_blocks, 2 * cfg_blocks_tail); in cfg_blocks_add()
207 >= EDGE_COUNT (VEC_index (basic_block, cfg_blocks, in cfg_blocks_add()
210 % VEC_length (basic_block, cfg_blocks)); in cfg_blocks_add()
214 cfg_blocks_head = VEC_length (basic_block, cfg_blocks); in cfg_blocks_add()
220 VEC_replace (basic_block, cfg_blocks, in cfg_blocks_add()
229 static basic_block
[all …]
Dtree-vectorizer.c157 (edge, struct loop *, bool, basic_block *, bitmap *);
159 (edge, struct loop *, bool, basic_block *);
160 static edge slpeel_add_loop_guard (basic_block, tree, basic_block, basic_block);
163 static void rename_variables_in_bb (basic_block);
219 rename_variables_in_bb (basic_block bb) in rename_variables_in_bb()
254 basic_block *bbs; in rename_variables_in_loop()
506 bool is_new_loop, basic_block *new_exit_bb, in slpeel_update_phi_nodes_for_guard1()
512 basic_block new_merge_bb = guard_edge->dest; in slpeel_update_phi_nodes_for_guard1()
514 basic_block update_bb = e->dest; in slpeel_update_phi_nodes_for_guard1()
515 basic_block orig_bb = loop->header; in slpeel_update_phi_nodes_for_guard1()
[all …]

1234567