diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-16 13:52:50 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-16 13:52:50 +0000 |
commit | ef7ff294516ac28878a603464304eba0290f8d24 (patch) | |
tree | f3ea3d9a7738b117bb7d4e89c52964033ae55ca7 /gcc/tree-flow.h | |
parent | bcfe59b6222a5b3435b2ea4238f1a256fc7ecaf3 (diff) |
* tree-pretty-print.c (dump_generic_node): Handle OMP_SECTIONS_SWITCH
and extra arguments of OMP_SECTIONS and OMP_CONTINUE.
* tree.h (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
(OMP_SECTIONS_CONTROL): New macro.
* tree-pass.h (pass_expand_omp_O0): Declare.
* omp-low.c (find_omp_clause): Export.
(copy_var_decl): New function.
(omp_copy_decl_2): Use copy_var_decl.
(build_omp_barrier): Do not gimplify the result.
(lower_rec_input_clauses): Gimplify result of build_omp_barrier.
(extract_omp_for_data, expand_parallel_call, expand_omp_parallel,
expand_omp_for_generic, expand_omp_for_static_nochunk,
expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections,
expand_omp_single): Work on ssa form.
(is_combined_parallel): Adjust for the cfg changes.
(build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
(gate_expand_omp_O0, pass_expand_omp_O0): New pass structure.
(lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to
OMP_CONTINUE and OMP_SECTIONS.
(lower_omp_for): Regimplify OMP_CLAUSE_SCHEDULE_CHUNK_EXPR.
Add arguments to OMP_CONTINUE.
* tree-gimple.c (is_gimple_stmt): Add OMP_SECTIONS_SWITCH.
* tree-ssa-alias.c (is_escape_site): Handle OMP_PARALLEL.
(remove_phis_for): New function.
(setup_pointers_and_addressables): Call remove_phis_for.
* gimple-low.c (lower_stmt): Handle OMP_SECTIONS_SWITCH.
* tree-parloops.c (mark_virtual_ops_for_renaming): Moved to tree-cfg.c.
(mark_call_virtual_operands): Exported.
(extract_loop_to_function): Move some parts to go_out_of_ssa.
* tree.def (OMP_SECTIONS): Change number of operands to 3.
(OMP_SECTIONS_SWITCH): New code.
(OMP_CONTINUE): Change number of operands to 2.
* tree-inline.c (estimate_num_insns_1): Handle OMP_SECTIONS_SWITCH.
* tree-outof-ssa.c (go_out_of_ssa): Take new function as an argument.
Remove references to variables from the old function, and clear
their annotations.
(create_temp): Do not record the variable as referenced.
* tree-flow.h (copy_var_decl, find_omp_clause,
mark_virtual_ops_for_renaming, mark_call_virtual_operands): Declare.
(go_out_of_ssa, force_gimple_operand_bsi): Declaration changed.
* tree-cfg.c (make_edges): Generate more precise cfg for OMP
constructs.
(tree_redirect_edge_and_branch): Handle OMP codes.
(replace_by_duplicate_decl, mark_virtual_ops_in_region): New functions.
(new_label_mapper): Use XNEW.
(move_stmt_r, move_block_to_fn, move_sese_region_to_fn): Copy the
region to clear decls.
(mark_virtual_ops_for_renaming): Moved from tree-parloops.c.
* passes.c (init_optimization_passes): Move pass_expand_omp to
pass_all_optimizations. Use pass_expand_omp_O0 instead of it.
* tree-ssa-operands.c (get_expr_operands): Record operands of
OMP constructs.
* fortran/trans-openmp.c (gfc_trans_omp_sections): Use build3 for
OMP_SECTIONS.
* gimplify.c (gimplify_omp_for): Ensure that the control variable
is gimple reg.
* gimplify.c (force_gimple_operand_bsi): Add arguments to specify
direction of insertion.
* tree-scalar-evolution.c (scev_const_prop): Change arguments to
force_gimple_operand_bsi.
* tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref): Ditto.
* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
* tree-profile.c (prepare_instrumented_value,
tree_gen_interval_profiler, tree_gen_pow2_profiler,
tree_gen_one_value_profiler): Ditto.
* tree-ssa-reassoc.c (negate_value): Ditto.
* tree-flow-inline.h (set_is_used): Removed.
* tree-ssa-live.c (var_partition_map, out_of_ssa): New variables.
(int_int_map_eq, int_int_map_hash, delete_var_partition_map,
init_var_partition_map, int_int_map_find_or_insert): New functions.
(change_partition_var, mark_all_vars_used, mark_all_vars_used_1,
remove_unused_locals, create_ssa_var_map, root_var_init): Do not
use variable annotations.
* tree-ssa-live.h (VAR_ANN_PARTITION, VAR_ANN_ROOT_INDEX): Removed.
(struct int_int_map, var_partition_map, out_of_ssa,
int_int_map_find_or_insert, init_var_partition_map,
delete_var_partition_map): Declare.
(var_to_partition): Do not use variable annotations.
* tree-outof-ssa.c (insert_copy_on_edge, coalesce_ssa_name,
assign_vars, replace_use_variable, replace_def_variable,
rewrite_out_of_ssa): Do not use variable annotations.
* tree-flow.h (struct var_ann_d): Removed out_of_ssa_tag,
root_var_processed, partition and root_index.
(set_is_used): Declaration removed.
* testsuite/gcc.dg/gomp/for-13.c,
testsuite/gcc.dg/gomp/critical-1.c,
testsuite/gcc.dg/gomp/critical-3.c,
testsuite/gcc.dg/gomp/ordered-1.c,
testsuite/gcc.dg/gomp/for-4.c,
testsuite/gcc.dg/gomp/for-6.c,
testsuite/gcc.dg/gomp/master-3.c,
testsuite/gcc.dg/gomp/for-8.c,
testsuite/gcc.dg/gomp/for-10.c,
testsuite/gcc.dg/gomp/for-5.c,
testsuite/gcc.dg/gomp/for-7.c,
testsuite/gcc.dg/gomp/for-9.c,
testsuite/g++.dg/gomp/for-4.C,
testsuite/g++.dg/gomp/for-5.C,
testsuite/g++.dg/gomp/for-6.C,
testsuite/g++.dg/gomp/for-7.C,
testsuite/g++.dg/gomp/for-8.C,
testsuite/g++.dg/gomp/for-9.C,
testsuite/g++.dg/gomp/for-10.C): Add -O1 flag.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/parloop@117786 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r-- | gcc/tree-flow.h | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index 203d453113a..b24f3b47521 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -157,13 +157,6 @@ struct var_ann_d GTY(()) { struct tree_ann_common_d common; - /* Used by the out of SSA pass to determine whether this variable has - been seen yet or not. */ - unsigned out_of_ssa_tag : 1; - - /* Used when building root_var structures in tree_ssa_live.[ch]. */ - unsigned root_var_processed : 1; - /* Nonzero if this variable is in the alias set of another variable. */ unsigned is_aliased : 1; @@ -193,13 +186,6 @@ struct var_ann_d GTY(()) /* Variables that may alias this variable. */ VEC(tree, gc) *may_aliases; - /* Used when going out of SSA form to indicate which partition this - variable represents storage for. */ - unsigned partition; - - /* Used by the root-var object in tree-ssa-live.[ch]. */ - unsigned root_index; - /* During into-ssa and the dominator optimizer, this field holds the current version of this variable (an SSA_NAME). */ tree current_def; @@ -548,6 +534,8 @@ extern struct omp_region *root_omp_region; extern struct omp_region *new_omp_region (basic_block, enum tree_code, struct omp_region *); extern void free_omp_regions (void); +tree copy_var_decl (tree, tree, tree); +tree find_omp_clause (tree, enum tree_code); /*--------------------------------------------------------------------------- Function prototypes @@ -637,6 +625,8 @@ extern tree get_virtual_var (tree); extern void add_referenced_var (tree); extern void mark_new_vars_to_rename (tree); extern void find_new_referenced_vars (tree *); +void mark_virtual_ops_for_renaming (tree); +void mark_call_virtual_operands (void); extern tree make_rename_temp (tree, const char *); extern void set_default_def (tree, tree); @@ -713,7 +703,7 @@ void mark_sym_for_renaming (tree); void mark_set_for_renaming (bitmap); tree get_current_def (tree); void set_current_def (tree, tree); -void go_out_of_ssa (void); +void go_out_of_ssa (tree); /* In tree-ssa-ccp.c */ bool fold_stmt (tree *); @@ -889,7 +879,6 @@ enum escape_type /* In tree-flow-inline.h */ static inline bool is_call_clobbered (tree); static inline void mark_call_clobbered (tree, unsigned int); -static inline void set_is_used (tree); static inline bool unmodifiable_var_p (tree); /* In tree-eh.c */ @@ -947,7 +936,8 @@ extern void register_jump_thread (edge, edge); /* In gimplify.c */ tree force_gimple_operand (tree, tree *, bool, tree); -tree force_gimple_operand_bsi (block_stmt_iterator *, tree, bool, tree); +tree force_gimple_operand_bsi (block_stmt_iterator *, tree, bool, tree, + bool, enum bsi_iterator_update); /* In tree-ssa-structalias.c */ bool find_what_p_points_to (tree); |