#include "basic-block.h"#include "rtl.h"


Go to the source code of this file.
| #define DLTHE_FLAG_UPDATE_FREQ 1 |
Definition at line 328 of file cfgloop.h.
Referenced by duplicate_loop_to_header_edge(), peel_loop_completely(), peel_loop_simple(), tree_unroll_loop(), try_unroll_loop_completely(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), and unroll_loop_stupid().
| anonymous enum |
| anonymous enum |
| enum lpt_dec |
Definition at line 813 of file cfgloopmanip.c.
Referenced by can_unroll_loop_p(), decide_peel_completely(), decide_unrolling_and_peeling(), and unswitch_single_loop().
Definition at line 1249 of file cfgloop.c.
References flow_loop_free(), flow_loop_tree_node_remove(), gcc_assert, get_loop_body(), i, loop::inner, NULL, loop::num, loop::num_nodes, loop::outer, and loops::parray.
Referenced by cancel_loop_tree().
Definition at line 1284 of file cfgloopmanip.c.
References any_uncondjump_p(), BARRIER_P, BB_END, BB_HEAD, BLOCK_FOR_INSN, CDI_DOMINATORS, dest, EDGE_COUNT, EDGE_SUCC, emit_note_after(), emit_note_before(), end, EXIT_BLOCK_PTR, first, flow_bb_inside_loop_p(), flow_loops_find(), flow_loops_free(), FOR_EACH_BB, free(), free_dominance_info(), gcc_assert, get_insns(), insn, JUMP_P, last, basic_block_def::loop_father, LOOP_TREE, NEXT_INSN, NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_LINE_NUMBER, NOTE_P, loop::num, loops::num, onlyjump_p(), loop::outer, PREV_INSN, stack, top, and xcalloc().
Referenced by rest_of_handle_jump2().
Referenced by rest_of_handle_loop2(), and rtl_doloop().
Definition at line 715 of file cfgloopmanip.c.
Referenced by copy_loops_to(), duplicate_subloops(), perfect_nestify(), and slpeel_tree_duplicate_loop_to_edge_cfg().
Definition at line 417 of file cfgloopanal.c.
Referenced by decide_peel_simple(), decide_unroll_runtime_iterations(), decide_unroll_stupid(), tree_unroll_loop(), and unswitch_single_loop().
| void find_simple_exit | ( | struct loop * | , | |
| struct niter_desc * | ||||
| ) |
Definition at line 2614 of file loop-iv.c.
Referenced by get_simple_loop_desc(), and predict_loops().
Definition at line 646 of file cfgloopmanip.c.
Referenced by fix_bb_placements(), fix_loop_placements(), and unswitch_loop().
Definition at line 1001 of file cfgloop.c.
References edge::dest, flow_bb_inside_loop_p(), gcc_assert, loop::header, and edge::src.
Definition at line 609 of file cfgloop.c.
References flow_loop_entry_edges_find(), flow_loop_exit_edges_find(), flow_loop_pre_header_find(), flow_loop_pre_header_scan(), loop::header, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES, LOOP_PRE_HEADER, and loop::pre_header.
Definition at line 758 of file cfgloop.c.
References abort, b, BASIC_BLOCK, calculate_dominance_info(), canonicalize_loop_headers(), CDI_DOMINATORS, loops::cfg, cfun, loop::depth, loops::cfg::dfs_order, dominated_by_p(), EDGE_ABNORMAL, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, edge::flags, flow_depth_first_order_compute(), flow_loop_nodes_find(), flow_loop_scan(), flow_loop_tree_node_add(), flow_loops_level_compute(), FOR_EACH_BB, FOR_EACH_EDGE, free_dominance_info(), gcc_assert, loop::header, i, basic_block_def::index, initialize_loops_parallel_p(), loop::inner, last_basic_block, loop::latch, basic_block_def::loop_depth, basic_block_def::loop_father, LOOP_TREE, memset, n_basic_blocks, loop::next, NULL, loop::num, loops::num, loop::num_nodes, loop::outer, loops::parray, loop::pred, basic_block_def::pred, edge::pred_next, loops::cfg::rc_order, RESET_BIT, sbitmap_alloc(), sbitmap_free, sbitmap_zero(), SET_BIT, edge::src, loops::state, TEST_BIT, loops::tree_root, verify_flow_info(), verify_loop_structure(), xcalloc(), and xmalloc().
Referenced by create_loop_notes(), flow_loops_update(), if_convert(), loop_optimizer_init(), mark_loop_exit_edges(), perfect_nestify(), rest_of_compilation(), rest_of_handle_branch_prob(), tree_estimate_probability(), and tree_ssa_dominator_optimize().
Definition at line 2720 of file loop-iv.c.
Referenced by loop_optimizer_finalize(), peel_loop_completely(), and peel_loop_simple().
Definition at line 1208 of file loop-iv.c.
Referenced by iv_extend(), iv_subreg(), and may_unswitch_on().
| basic_block* get_loop_body | ( | const struct loop * | ) |
| basic_block* get_loop_body_in_bfs_order | ( | const struct loop * | ) |
| basic_block* get_loop_body_in_dom_order | ( | const struct loop * | ) |
| struct niter_desc* get_simple_loop_desc | ( | struct loop * | loop | ) | [read] |
Definition at line 2702 of file loop-iv.c.
Referenced by decide_peel_completely(), decide_peel_once_rolling(), decide_peel_simple(), decide_unroll_constant_iterations(), decide_unroll_runtime_iterations(), decide_unroll_stupid(), loop_exit_at_end_p(), peel_loop_completely(), peel_loop_simple(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), and unroll_loop_stupid().
| unsigned global_cost_for_size | ( | unsigned | , | |
| unsigned | , | |||
| unsigned | ||||
| ) |
Definition at line 550 of file cfgloopanal.c.
Referenced by gain_for_invariant(), and ivopts_global_cost_for_size().
Definition at line 1243 of file loop-iv.c.
Referenced by estimate_probability(), unroll_and_peel_loops(), and unswitch_loops().
Definition at line 322 of file loop-iv.c.
Referenced by analyze_insns_in_loop(), get_simple_loop_desc(), predict_loops(), and unswitch_single_loop().
Definition at line 998 of file loop-iv.c.
Referenced by analyze_iv_to_split_insn(), iv_analyze(), iv_analyze_op(), iv_number_of_iterations(), and may_unswitch_on().
Definition at line 363 of file loop-iv.c.
References BLOCK_FOR_INSN, CDI_DOMINATORS, const0_rtx, dominated_by_p(), GET_CODE, INSN_UID, last_def, insn_info::luid, NULL_RTX, insn_info::prev_def, REG_P, REGNO, subreg_lowpart_p(), and SUBREG_REG.
Referenced by get_biv_step_1(), iv_analyze_op(), iv_number_of_iterations(), and may_unswitch_on().
| bool just_once_each_iteration_p | ( | struct loop * | , | |
| basic_block | ||||
| ) |
Definition at line 36 of file cfgloopanal.c.
References BB_IRREDUCIBLE_LOOP, CDI_DOMINATORS, dominated_by_p(), basic_block_def::flags, loop::latch, and basic_block_def::loop_father.
Referenced by canonicalize_loop_induction_variables(), find_loop_niter(), find_loop_niter_by_eval(), iv_analysis_loop_init(), iv_get_reaching_def(), latch_dominating_def(), may_unswitch_on(), single_dom_exit(), and unswitch_loop().
Definition at line 96 of file loop-init.c.
References flow_loops_dump(), flow_loops_free(), free(), free_simple_loop_desc(), i, NULL, loops::num, loops::parray, and verify_flow_info().
Referenced by copy_loop_headers(), execute_sink_code(), execute_vrp(), fini_pre(), rest_of_handle_loop2(), rtl_loop_done(), and tree_ssa_loop_done().
Definition at line 35 of file loop-init.c.
References CDI_DOMINATORS, loops::cfg, CP_SIMPLE_PREHEADERS, create_preheaders(), loops::cfg::dfs_order, EDGE_COUNT, EDGE_FALLTHRU, ei_next(), ei_safe_edge(), ei_start, EXIT_BLOCK_PTR, first_time, edge::flags, flow_loops_dump(), flow_loops_find(), flow_loops_free(), force_single_succ_latches(), free(), init_set_costs(), LOOP_TREE, mark_irreducible_loops(), NULL, loops::cfg::rc_order, split_edge(), edge::src, verify_dominators(), verify_loop_structure(), and xcalloc().
Referenced by copy_loop_headers(), execute_sink_code(), execute_vrp(), init_pre(), rest_of_handle_loop2(), rtl_loop_init(), and tree_loop_optimizer_init().
| basic_block loop_split_edge_with | ( | edge | , | |
| rtx | ||||
| ) |
Definition at line 1257 of file cfgloopmanip.c.
Referenced by analyze_insns_in_loop(), copy_loop_headers(), force_single_succ_latches(), loop_version(), perfect_nestify(), remove_path(), split_loop_exit_edge(), tree_ssa_loop_version(), tree_unroll_loop(), unroll_loop_runtime_iterations(), unswitch_loop(), vect_analyze_loop_form(), and vect_transform_loop().
Definition at line 492 of file cfgloopmanip.c.
Referenced by loop_version(), tree_ssa_loop_version(), and unswitch_loop().
Definition at line 267 of file cfgloopanal.c.
Referenced by fix_loop_structure(), loop_optimizer_init(), remove_path(), tree_estimate_probability(), unloop(), and verify_loop_structure().
Definition at line 900 of file loop-invariant.c.
Referenced by rest_of_handle_loop2(), and rtl_move_loop_invariants().
Definition at line 360 of file cfgloopanal.c.
Referenced by decide_unrolling_and_peeling(), peel_loops_completely(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), unroll_loop_stupid(), and unswitch_single_loop().
Definition at line 1114 of file tree-ssa-loop-niter.c.
Referenced by estimate_niter_from_size_of_data(), estimate_numbers_of_iterations_loop(), and infer_loop_bounds_from_undefined().
| void remove_bb_from_loops | ( | basic_block | ) |
Definition at line 319 of file cfgloopmanip.c.
Referenced by peel_loop_completely(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), unswitch_loop(), and unswitch_single_loop().
| static struct niter_desc* simple_loop_desc | ( | struct loop * | loop | ) | [static, read] |
Definition at line 443 of file cfgloop.h.
References loop::aux.
Referenced by free_simple_loop_desc(), and get_simple_loop_desc().
| edge split_loop_bb | ( | basic_block | , | |
| void * | ||||
| ) |
Definition at line 58 of file cfgloopmanip.c.
References add_bb_to_loop(), edge::dest, split_block(), and edge::src.
Definition at line 106 of file tree-ssa-loop-ivcanon.c.
Referenced by can_unroll_loop_p(), loop_prefetch_arrays(), tree_unswitch_single_loop(), and try_unroll_loop_completely().
Definition at line 146 of file loop-unroll.c.
Referenced by rest_of_handle_loop2(), and rtl_unroll_and_peel_loops().
Definition at line 143 of file loop-unswitch.c.
Referenced by rest_of_handle_loop2(), and rtl_unswitch().
Definition at line 43 of file tree-ssa-loop.c.
Referenced by adjust_range_with_scev(), analyze_miv_subscript(), analyze_subscript_affine_affine(), build_classic_dir_vector(), build_classic_dist_vector(), chrec_contains_symbols_defined_in_loop(), chrec_convert_1(), chrec_is_positive(), cleanup_tree_cfg_loop(), compute_overall_effect_of_inner_loop(), compute_overlap_steps_for_affine_1_2(), count_ev_in_wider_type(), evolution_function_is_invariant_p(), evolution_function_is_invariant_rec_p(), execute_todo(), execute_vrp(), fini_pre(), get_number_of_iters_for_loop(), init_pre(), main_tree_if_conversion(), number_of_iterations_for_all_loops(), predict_loops(), remove_bb(), replace_uses_by(), rtl_doloop(), rtl_loop_done(), rtl_loop_init(), rtl_move_loop_invariants(), rtl_unroll_and_peel_loops(), rtl_unswitch(), scev_analysis(), scev_const_prop(), scev_initialize(), scev_reset(), tree_can_merge_blocks_p(), tree_forwarder_block_p(), tree_merge_blocks(), tree_ssa_dce_loop(), verify_loop_closed_ssa(), and vrp_visit_assignment().
| unsigned target_avail_regs |
| unsigned target_pres_cost |
| unsigned target_res_regs |
Definition at line 503 of file cfgloopanal.c.
| unsigned target_small_cost |
| unsigned target_spill_cost |
Definition at line 507 of file cfgloopanal.c.
Referenced by determine_set_costs(), expression_expensive_p(), force_expr_to_var_cost(), force_var_cost(), and split_address_cost().
1.5.6