diff options
author | Richard Biener <rguenther@suse.de> | 2013-04-30 08:14:09 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-04-30 08:14:09 +0000 |
commit | 0fc822d0f936df2b4e500baf257f0c8cb72af512 (patch) | |
tree | 356ddee9dfac457bc8a4d0e0c56e83d56f1f6a48 /gcc/tree-cfg.c | |
parent | 37953bd308af0b2ffe9205fbec12b40a0bf725a1 (diff) | |
download | gcc-0fc822d0f936df2b4e500baf257f0c8cb72af512.zip gcc-0fc822d0f936df2b4e500baf257f0c8cb72af512.tar.gz gcc-0fc822d0f936df2b4e500baf257f0c8cb72af512.tar.bz2 |
function.h (loops_for_fn): New inline function.
2013-04-30 Richard Biener <rguenther@suse.de>
* function.h (loops_for_fn): New inline function.
(set_loops_for_fn): Likewise.
* cfgloop.h (place_new_loop): Add struct function parameter.
(get_loop): Likewise.
(get_loops): Likewise.
(number_of_loops): Likewise.
(fel_next): Adjust.
(fel_init): Likewise.
* cfg.c (get_loop_copy): Adjust.
* cfgloop.c (flow_loops_dump): Likewise.
(record_loop_exits): Likewise.
(verify_loop_structure): Likewise.
* cfgloopanal.c (mark_irreducible_loops): Likewise.
(estimate_reg_pressure_cost): Likewise.
(mark_loop_exit_edges): Likewise.
* cfgloopmanip.c (place_new_loop): Likewise.
(add_loop): Likewise.
(duplicate_loop): Likewise.
* graph.c (draw_cfg_nodes): Likewise.
* graphite-clast-to-gimple.c (translate_clast_user): Likewise.
* graphite-sese-to-poly.c (build_scop_scattering): Likewise.
(extract_affine_chrec): Likewise.
(build_scop_iteration_domain): Likewise.
* graphite.c (graphite_initialize): Likewise.
* ira-build.c (create_loop_tree_nodes): Likewise.
(more_one_region_p): Likewise.
(rebuild_regno_allocno_maps): Likewise.
(mark_loops_for_removal): Likewise.
(mark_all_loops_for_removal): Likewise.
(remove_unnecessary_regions): Likewise.
(ira_build): Likewise.
* ira-emit.c (setup_entered_from_non_parent_p): Likewise.
* loop-init.c (fix_loop_structure): Likewise.
(gate_rtl_move_loop_invariants): Likewise.
(gate_rtl_unswitch): Likewise.
(gate_rtl_unroll_and_peel_loops): Likewise.
(rtl_doloop): Likewise.
* lto-streamer-in.c (input_cfg): Likewise.
* lto-streamer-out.c (output_cfg): Likewise.
* modulo-sched.c (sms_schedule): Likewise.
* predict.c (tree_estimate_probability): Likewise.
(tree_estimate_probability_driver): Likewise.
(estimate_loops): Likewise.
* tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
(move_sese_region_to_fn): Likewise.
(debug_loop_num): Likewise.
* tree-chrec.c (chrec_evaluate): Likewise.
(hide_evolution_in_other_loops_than_loop): Likewise.
(chrec_component_in_loop_num): Likewise.
(reset_evolution_in_loop): Likewise.
(evolution_function_is_invariant_rec_p): Likewise.
* tree-if-conv.c (main_tree_if_conversion): Likewise.
* tree-inline.c (copy_loops): Likewise.
(copy_cfg_body): Likewise.
(tree_function_versioning): Likewise.
* tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
Likewise.
(add_to_evolution_1): Likewise.
(scev_const_prop): Likewise.
* tree-scalar-evolution.h (get_chrec_loop): Likewise.
* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
(tree_ssa_lim_initialize): Likewise.
* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
(verify_loop_closed_ssa): Likewise.
* tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
(tree_ssa_loop_im): Likewise.
(tree_ssa_loop_unswitch): Likewise.
(tree_vectorize): Likewise.
(check_data_deps): Likewise.
(tree_ssa_loop_ivcanon): Likewise.
(tree_ssa_loop_bounds): Likewise.
(tree_complete_unroll): Likewise.
(tree_complete_unroll_inner): Likewise.
(tree_parallelize_loops): Likewise.
(tree_ssa_loop_prefetch): Likewise.
(tree_ssa_loop_ivopts): Likewise.
* tree-ssa.c (execute_update_addresses_taken): Liekwise.
* tree-vectorizer.c (vectorize_loops): Likewise.
From-SVN: r198441
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 9b00248..798a2f7 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -6586,11 +6586,11 @@ fixup_loop_arrays_after_move (struct function *fn1, struct function *fn2, struct loop *loop) { /* Discard it from the old loop array. */ - (*fn1->x_current_loops->larray)[loop->num] = NULL; + (*get_loops (fn1))[loop->num] = NULL; /* Place it in the new loop array, assigning it a new number. */ - loop->num = vec_safe_length (fn2->x_current_loops->larray); - vec_safe_push (fn2->x_current_loops->larray, loop); + loop->num = number_of_loops (fn2); + vec_safe_push (loops_for_fn (fn2)->larray, loop); /* Recurse to children. */ for (loop = loop->inner; loop; loop = loop->next) @@ -6717,9 +6717,10 @@ move_sese_region_to_fn (struct function *dest_cfun, basic_block entry_bb, } /* Initialize an empty loop tree. */ - dest_cfun->x_current_loops = ggc_alloc_cleared_loops (); - init_loops_structure (dest_cfun, dest_cfun->x_current_loops, 1); - dest_cfun->x_current_loops->state = LOOPS_MAY_HAVE_MULTIPLE_LATCHES; + struct loops *loops = ggc_alloc_cleared_loops (); + init_loops_structure (dest_cfun, loops, 1); + loops->state = LOOPS_MAY_HAVE_MULTIPLE_LATCHES; + set_loops_for_fn (dest_cfun, loops); /* Move the outlined loop tree part. */ FOR_EACH_VEC_ELT (bbs, i, bb) @@ -6729,25 +6730,25 @@ move_sese_region_to_fn (struct function *dest_cfun, basic_block entry_bb, { struct loop *loop = bb->loop_father; flow_loop_tree_node_remove (bb->loop_father); - flow_loop_tree_node_add (dest_cfun->x_current_loops->tree_root, loop); + flow_loop_tree_node_add (get_loop (dest_cfun, 0), loop); fixup_loop_arrays_after_move (saved_cfun, cfun, loop); } /* Remove loop exits from the outlined region. */ - if (saved_cfun->x_current_loops->exits) + if (loops_for_fn (saved_cfun)->exits) FOR_EACH_EDGE (e, ei, bb->succs) { void **slot = htab_find_slot_with_hash - (saved_cfun->x_current_loops->exits, e, + (loops_for_fn (saved_cfun)->exits, e, htab_hash_pointer (e), NO_INSERT); if (slot) - htab_clear_slot (saved_cfun->x_current_loops->exits, slot); + htab_clear_slot (loops_for_fn (saved_cfun)->exits, slot); } } /* Adjust the number of blocks in the tree root of the outlined part. */ - dest_cfun->x_current_loops->tree_root->num_nodes = bbs.length () + 2; + get_loop (dest_cfun, 0)->num_nodes = bbs.length () + 2; /* Setup a mapping to be used by move_block_to_fn. */ loop->aux = current_loops->tree_root; @@ -7226,7 +7227,7 @@ debug_loop (struct loop *loop, int verbosity) DEBUG_FUNCTION void debug_loop_num (unsigned num, int verbosity) { - debug_loop (get_loop (num), verbosity); + debug_loop (get_loop (cfun, num), verbosity); } /* Return true if BB ends with a call, possibly followed by some |