From bfec3452cfb96a7546809ee1af3fffb9eba9d658 Mon Sep 17 00:00:00 2001 From: rguenth Date: Fri, 17 Jul 2009 15:49:34 +0000 Subject: 2009-07-17 Richard Guenther PR c/40401 * tree-pass.h (pass_diagnose_omp_blocks): Declare. (pass_warn_unused_result): Likewise. (TODO_set_props): Remove. * omp-low.c (diagnose_omp_structured_block_errors): Change to run as a pass. (pass_diagnose_omp_blocks): Define. * c-decl.c (pop_file_scope): Do not finalize the CU here. (c_gimple_diagnostics_recursively): Remove. (finish_function): Do not call it. (c_write_global_declarations): Continue after errors. Finalize the CU here. * c-gimplify.c (c_genericize): Do not gimplify here. * c-common.c (c_warn_unused_result): Move ... * tree-cfg.c (do_warn_unused_result): ... here. (run_warn_unused_result): New function. (gate_warn_unused_result): New function. (pass_warn_unused_result): New pass. * c-common.h (c_warn_unused_result): Remove. * flags.h (flag_warn_unused_result): Declare. * c-opts.c (c_common_init_options): Enable flag_warn_unused_result. * opts.c (flag_warn_unused_result): Initialize to false. * toplev.c (compile_file): Add comment. * omp-low.c (create_omp_child_function): Do not register the function with the frontend. (diagnose_omp_structured_block_errors): Prepare to be called as optimization pass. (gate_diagnose_omp_blocks): New function. (pass_diagnose_omp_blocks): New pass. * cgraph.h (cgraph_optimize): Remove. (cgraph_analyze_function): Likewise. * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks. * cgraphunit.c (cgraph_lower_function): Lower nested functions before their parents here. (cgraph_finalize_function): Not here. (cgraph_analyze_function): Gimplify functions here. (cgraph_finalize_compilation_unit): Continue after errors. Optimize the callgraph from here. (cgraph_optimize): Make static. * langhooks.c (write_global_declarations): Finalize the CU. * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors. (gimplify_function_tree): Assert we gimplify only once. Set PROP_gimple_any property. * tree-nested.c (gimplify_all_functions): New function. (lower_nested_functions): Gimplify all nested functions. * gimple.h (diagnose_omp_structured_block_errors): Remove. * passes.c (init_optimization_passes): Add pass_warn_unused_result and pass_diagnose_omp_blocks after gimplification. Do not set TODO_set_props on all_lowering_passes. (execute_one_pass): Do not handle TODO_set_props. * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency. (gimplify.o): Add tree-pass.h dependency. * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST. (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR. (unsave_r): Likewise. * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the temporary variable. cp/ * decl.c (finish_function): Do not emit unused result warnings from here. * cp-objcp-common.h (LANG_HOOKS_POST_GIMPLIFY_PASS): Use c_warn_unused_result_pass. * semantics.c (expand_or_defer_fn): Adjust assertion about IL status. * optimize.c (clone_body): Clone in GENERIC. (maybe_clone_body): Do not clear DECL_SAVED_TREE. * decl2.c (cp_write_global_declarations): Fix body test. Do not call cgraph_optimize. * Make-lang.in (optimize.o): Add tree-iterator.h dependency. * method.c (use_thunk): Register thunk with cgraph_finalize_function. * error.c (function_category): Guard access of DECL_LANG_SPECIFIC. java/ * java-gimplify.c (java_genericize): Do not gimplify here. But replace all local references. (java_gimplify_expr): Do not replace local references here. (java_gimplify_modify_expr): Likewise. * jcf-parse.c (java_parse_file): Do not finalize the CU or optimize the cgraph here. * decl.c (java_replace_reference): Make static. (java_replace_references): New function. (end_java_method): Clear base_decl_map. * java-tree.h (java_replace_references): Declare. (java_replace_reference): Remove. ada/ * utils.c (end_subprog_body): Revert to pre-tuples state. Remove unused parameter. (gnat_gimplify_function): Do not gimplify here. Fold into its only caller and remove. (gnat_builtin_function): Adjust for end_subprog_body signature change. (gnat_write_global_declarations): Also finalize the CU. * misc.c (gnat_parse_file): Do not finalize the CU here. * trans.c (gigi): Revert to pre-tuples state. (Subprogram_Body_to_gnu): Adjust for end_subprog_body signature change. * gigi.h (end_subprog_body): Remove unused parameter. fortran/ * f95-lang.c (gfc_be_parse_file): Do not finalize the CU here. * trans-decl.c (gfc_gimplify_function): Remove. (build_entry_thunks): Do not gimplify here. (create_main_function): Likewise. (gfc_generate_function_code): Likewise. * g++.dg/rtti/crash4.C: New testcase. * g++.dg/torture/20090706-1.C: Likewise. * gcc.dg/redecl-17.c: Likewise. * gfortran.dg/missing_optional_dummy_5.f90: Adjust pattern. * gcc.dg/declspec-9.c: Expect extra error. * gcc.dg/declspec-10.c: Likewise. * gcc.dg/declspec-11.c: Likewise. * gcc.dg/redecl-10.c: Expect extra warnings. * gcc.target/i386/pr39082-1.c: Adjust diagnostic location. * gcc.target/i386/pr39545-1.c: Likewise. * g++.dg/ext/asm3.C: Expect more errors. * g++.dg/gomp/block-1.C: Likewise. * g++.dg/gomp/block-2.C: Likewise. * g++.dg/gomp/block-3.C: Likewise. * g++.dg/gomp/block-5.C: Likewise. * g++.old-deja/g++.jason/report.C: Expect extra warnings. * g++.dg/warn/unused-result1.C: XFAIL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149750 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index db3ebce28cc..a68cb16350b 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -279,10 +279,6 @@ struct dump_file_info and the memory footprint for VAR_DECLs. */ #define TODO_remove_unused_locals (1 << 15) -/* Internally used for the first in a sequence of passes. It is set - for the passes that are handed to register_dump_files. */ -#define TODO_set_props (1 << 16) - /* Call df_finish at the end of the pass. This is done after all of the dumpers have been allowed to run so that they have access to the instance before it is destroyed. */ @@ -370,6 +366,7 @@ extern struct gimple_opt_pass pass_lower_complex; extern struct gimple_opt_pass pass_lower_vector; extern struct gimple_opt_pass pass_lower_vector_ssa; extern struct gimple_opt_pass pass_lower_omp; +extern struct gimple_opt_pass pass_diagnose_omp_blocks; extern struct gimple_opt_pass pass_expand_omp; extern struct gimple_opt_pass pass_expand_omp_ssa; extern struct gimple_opt_pass pass_object_sizes; @@ -406,6 +403,7 @@ extern struct gimple_opt_pass pass_remove_cgraph_callee_edges; extern struct gimple_opt_pass pass_build_cgraph_edges; extern struct gimple_opt_pass pass_local_pure_const; extern struct gimple_opt_pass pass_tracer; +extern struct gimple_opt_pass pass_warn_unused_result; /* IPA Passes */ extern struct ipa_opt_pass_d pass_ipa_inline; -- cgit v1.2.1 From d60ec13d843da3d28b399506b230a144847cd44f Mon Sep 17 00:00:00 2001 From: dnovillo Date: Wed, 22 Jul 2009 19:44:46 +0000 Subject: * tree-pass.h (TDF_EH): Define. * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS contains TDF_EH, print the EH region number holding GS. * tree-dump.c (dump_options): Add "eh". * doc/invoke.texi: Document it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149958 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index a68cb16350b..bc1ebda9a50 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -76,6 +76,8 @@ enum tree_dump_index #define TDF_RHS_ONLY (1 << 17) /* a flag to only print the RHS of a gimple stmt. */ #define TDF_ASMNAME (1 << 18) /* display asm names of decls */ +#define TDF_EH (1 << 19) /* display EH region number + holding this gimple statement. */ /* In tree-dump.c */ -- cgit v1.2.1 From 34e5cced0545b23499caed535a6566a4026b9558 Mon Sep 17 00:00:00 2001 From: dnovillo Date: Thu, 3 Sep 2009 04:07:12 +0000 Subject: 2009-09-01 Diego Novillo * c-lang.c (lang_hooks): Remove const qualifier. java/ChangeLog * lang.c (lang_hooks): Remove const qualifier. objc/ChangeLog * objc-lang.c (lang_hooks): Remove const qualifier. objcp/ChangeLog * objcp-lang.c (lang_hooks): Remove const qualifier. ada/ChangeLog * gcc-interface/misc.c (lang_hooks): Remove const qualifier. fortran/ChangeLog * f95-lang.c (lang_hooks): Remove const qualifier. cp/ChangeLog * cp-lang.c (lang_hooks): Remove const qualifier. 2009-09-01 Diego Novillo * cgraph.c (cgraph_node_for_decl): New. * cgraph.h (cgraph_node_for_decl): Declare. * tree.c (host_integerp): Return 0 if T is NULL. 2009-09-01 Diego Novillo * tree.h (struct alias_pair): Move from varasm.c. (alias_pairs): Likewise. (TYPE_MAXVAL): Define. (TYPE_MINVAL): Define. (iterative_hash_host_wide_int): Declare. (remove_unreachable_alias_pairs): Declare. * tree-pass.h (pass_ipa_free_lang_data): Declare. * diagnostic.c (default_diagnostic_starter): Make extern. (default_diagnostic_finalizer): Make extern. * diagnostic.h (default_diagnostic_starter): Declare. (default_diagnostic_finalizer): Declare. (default_tree_printer): Declare. * toplev.c (default_tree_printer): Make extern. 2009-09-01 Richard Guenther Diego Novillo * cgraph.c (cgraph_add_new_function): Remove gimplification. * cgraphunit.c (cgraph_expand_function): Do not emit associated thunks from here. (cgraph_emit_thunks): New. (cgraph_optimize): Call it. Return if any IPA pass finds an error. * varasm.c (finish_aliases_1): Ignore errorneous aliases used by thunks. 2009-09-01 Simon Baldwin Rafael Espindola Richard Guenther Doug Kwan Diego Novillo * tree.c: Include tree-pass.h, langhooks-def.h, diagnostic.h, cgraph.h, timevar.h, except.h and debug.h. (free_lang_data_in_type): New. (need_assembler_name_p): New. (free_lang_data_in_block): New. (free_lang_data_in_decl): New. (struct free_lang_data_d): New. (add_tree_to_fld_list): New. (find_decls_types_r): New. (get_eh_types_for_runtime): New. (find_decls_types_in_eh_region): New. (find_decls_types_in_node): New. (find_decls_types_in_var): New. (free_lang_data_in_cgraph): New. (free_lang_data): New. (gate_free_lang_data): New. (pass_ipa_free_lang_data): New. 2009-09-01 Diego Novillo * timevar.def (TV_IPA_FREE_LANG_DATA): Define. * langhooks.h (struct lang_hooks): Add field free_lang_data. (lang_hooks): Remove const qualifier. * ipa.c (cgraph_remove_unreachable_nodes): Call remove_unreachable_alias_pairs. * except.c (add_type_for_runtime): Check if TYPE has already been converted. (lookup_type_for_runtime): Likewise. (check_handled): Handle converted types. * varasm.c (remove_unreachable_alias_pairs): New. * gimple.c: Include demangle.h. (gimple_decl_printable_name): New. (gimple_fold_obj_type_ref): New. * gimple.h (gimple_decl_printable_name): Declare. (gimple_fold_obj_type_ref): Declare. * passes.c (init_optimization_passes): Add pass pass_ipa_free_lang_data. * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define. (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA. testsuite/ChangeLog 2009-09-01 Diego Novillo * gcc.dg/gomp/combined-1.c: Adjust expected pattern. * g++.dg/tree-prof/inline_mismatch_args.C: Likewise. * g++.dg/warn/unit-1.C: Likewise. * g++.dg/ipa/iinline-1.C: Likewise. * g++.dg/template/cond2.C: Adjust expected line location for the error. * g++.dg/template/pr35240.C: Likewise. cp/ChangeLog 2009-09-01 Doug Kwan * tree.c (cp_fix_function_decl_p): New. (cp_free_lang_data): New. 2009-09-01 Diego Novillo * Make-lang.in (decl2.o): Add dependency on $(POINTER_SET_H). * decl2.c: Include pointer-set.h. (collect_candidates_for_java_method_aliases): New. (cp_write_global_declarations): Call it. Add local variable CANDIDATES. If set, call build_java_method_aliases. (build_java_method_aliases): Add argument CANDIDATES. Use it to determine if FNDECL should get a hidden alias. * cp-objcp-common.h (LANG_HOOKS_FREE_LANG_DATA): Define. * cp-tree.h (cp_free_lang_data): Declare. 2009-09-03 Richard Guenther * method.c (use_thunk): Use cgraph_finalize_function to hand off thunks to the cgraph. * semantics.c (emit_associated_thunks): Do not emit thunks for really extern functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151360 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index bc1ebda9a50..4bb3364039e 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -409,6 +409,7 @@ extern struct gimple_opt_pass pass_warn_unused_result; /* IPA Passes */ extern struct ipa_opt_pass_d pass_ipa_inline; +extern struct simple_ipa_opt_pass pass_ipa_free_lang_data; extern struct ipa_opt_pass_d pass_ipa_cp; extern struct ipa_opt_pass_d pass_ipa_reference; extern struct ipa_opt_pass_d pass_ipa_pure_const; -- cgit v1.2.1 From e38def9ca7953bb5611d08ce8617249516ba5a99 Mon Sep 17 00:00:00 2001 From: rth Date: Mon, 14 Sep 2009 19:18:58 +0000 Subject: Squash commit of EH in gimple git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151696 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 4bb3364039e..9ea70e35fb7 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -316,6 +316,8 @@ extern struct gimple_opt_pass pass_remove_useless_stmts; extern struct gimple_opt_pass pass_lower_cf; extern struct gimple_opt_pass pass_refactor_eh; extern struct gimple_opt_pass pass_lower_eh; +extern struct gimple_opt_pass pass_lower_eh_dispatch; +extern struct gimple_opt_pass pass_lower_resx; extern struct gimple_opt_pass pass_build_cfg; extern struct gimple_opt_pass pass_tree_profile; extern struct gimple_opt_pass pass_early_tree_profile; -- cgit v1.2.1 From 2f29eac3e9ead14b1ad9e2d0926d3ef26c57c3d3 Mon Sep 17 00:00:00 2001 From: jamborm Date: Thu, 17 Sep 2009 11:35:38 +0000 Subject: 2009-09-17 Martin Jambor * common.opt (fipa-sra): New switch. * opts.c (decode_options): Turn flag_ipa_sra on for opt2. * timevar.def (TV_IPA_SRA): New timevar. * params.def (ipa-sra-ptr-growth-factor): New parameter. * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor. * tree-sra.c: Include cgraph.c. (enum sra_mode): Added SRA_MODE_EARLY_IPA. (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr and grp_not_necessarilly_dereferenced. (func_param_count): New variable. (encountered_apply_args): New variable. (bb_dereferences): New variable. (final_bbs): New variable. (no_accesses_representant): New variable. (no_accesses_p): New function. (dump_access): Dump the new fields. (sra_initialize): Set encountered_apply_args to false. (get_ssa_base_param): New function. (mark_parm_dereference): New function. (create_access): Caring for INIDRECT_REFs and different handling of varialble length accesses in early IPA SRA. Store the stmt - a new parameter - to the new access. (build_access_from_expr_1): New parameter stmt, passed to create_access. Handle INDIRECT_REFs. (build_access_from_expr): Pass the current statement to build_access_from_expr_1. (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural passes. (build_accesses_from_assign): Pass the current statement to build_access_from_expr_1. Do not create assign links in IPA-SRA. (scan_function): Call handle_ssa_defs on phi nodes. Set bits in final_bbs when necessary. Check for calls to __builtin_apply_args. Fixup EH info if anythng was changed. (is_unused_scalar_param): New function. (ptr_parm_has_direct_uses): New function. (find_param_candidates): New function. (mark_maybe_modified): New function. (analyze_modified_params): New function. (propagate_dereference_distances): New function. (dump_dereferences_table): New function. (analyze_caller_dereference_legality): New function. (unmodified_by_ref_scalar_representative): New function. (splice_param_accesses): New function. (decide_one_param_reduction): New function. (enum ipa_splicing_result): New type. (splice_all_param_accesses): New function. (get_param_index): New function. (turn_representatives_into_adjustments): New function. (analyze_all_param_acesses): New function. (get_replaced_param_substitute): New function. (get_adjustment_for_base): New function. (replace_removed_params_ssa_names): New function. (sra_ipa_reset_debug_stmts): New function. (sra_ipa_modify_expr): New function. (sra_ipa_modify_assign): New function. (convert_callers): New function. (modify_function): New function. (ipa_sra_preliminary_function_checks): New function. (ipa_early_sra): New function. (ipa_early_sra_gate): New function. (pass_early_ipa_sra): New variable. * Makefile.in (tree-sra.o): Add cgraph.h to dependencies. Testsuite: * gcc.dg/struct/wo_prof_escape_arg_to_local.c: Do not run IPA-SRA. * gcc.dg/ipa/ipa-sra-1.c: New test. * gcc.dg/ipa/ipa-sra-2.c: New test. * gcc.dg/ipa/ipa-sra-3.c: New test. * gcc.dg/ipa/ipa-sra-4.c: New test. * gcc.dg/ipa/ipa-sra-5.c: New test. * gcc.c-torture/execute/ipa-sra-1.c: New test. * gcc.c-torture/execute/ipa-sra-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151800 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 9ea70e35fb7..97f1d340a15 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -327,6 +327,7 @@ extern struct gimple_opt_pass pass_cleanup_eh; extern struct gimple_opt_pass pass_fixup_cfg; extern struct gimple_opt_pass pass_sra; extern struct gimple_opt_pass pass_sra_early; +extern struct gimple_opt_pass pass_early_ipa_sra; extern struct gimple_opt_pass pass_tail_recursion; extern struct gimple_opt_pass pass_tail_calls; extern struct gimple_opt_pass pass_tree_loop; -- cgit v1.2.1 From 3efe62a1e32fd627e119c0e14f43a2e8c9149278 Mon Sep 17 00:00:00 2001 From: ian Date: Mon, 28 Sep 2009 23:15:35 +0000 Subject: * tree-pass.h (register_pass_info): New structure. (pass_positioning_ops): Move enum from gcc-plugin.h. (register_pass): New function. * gcc-plugin.h (plugin_pass): Delete structure. (pass_positioning_ops): Delete enum. * plugin.c (regsiter_pass): Delete function. (position_pass): Delete function. (added_pass_nodes): Delete variable. (prev_added_pass_nodes): Delete variable. (pass_list_node): Delete structure. * passes.c (make_pass_instance): New function. (next_pass_1): Change to call make_pass_instance. (pass_list_node): Move structure from gcc-plugin.h. (added_pass_nodes): Move variable from plugin.c. (prev_added_pass_nodes): Move variable from plugin.c. (position_pass): New function. (register_pass): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152257 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 97f1d340a15..3241ee1482c 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -308,6 +308,27 @@ struct dump_file_info #define TODO_verify_all \ (TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts) + +/* Register pass info. */ + +enum pass_positioning_ops +{ + PASS_POS_INSERT_AFTER, /* Insert after the reference pass. */ + PASS_POS_INSERT_BEFORE, /* Insert before the reference pass. */ + PASS_POS_REPLACE /* Replace the reference pass. */ +}; + +struct register_pass_info +{ + struct opt_pass *pass; /* New pass to register. */ + const char *reference_pass_name; /* Name of the reference pass for hooking + up the new pass. */ + int ref_pass_instance_number; /* Insert the pass at the specified + instance number of the reference pass. + Do it for every instance if it is 0. */ + enum pass_positioning_ops pos_op; /* how to insert the new pass. */ +}; + extern void tree_lowering_passes (tree decl); extern struct gimple_opt_pass pass_mudflap_1; @@ -545,6 +566,7 @@ extern void print_current_pass (FILE *); extern void debug_pass (void); extern void register_one_dump_file (struct opt_pass *); extern bool function_called_by_processed_nodes_p (void); +extern void register_pass (struct register_pass_info *); /* Set to true if the pass is called the first time during compilation of the current function. Note that using this information in the optimization -- cgit v1.2.1 From 7bfefa9d2c82e804ef4e59772f4060ac325bf99a Mon Sep 17 00:00:00 2001 From: dnovillo Date: Sat, 3 Oct 2009 21:10:11 +0000 Subject: Merge lto branch into trunk. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152434 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 3241ee1482c..ae510494c86 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -432,20 +432,24 @@ extern struct gimple_opt_pass pass_tracer; extern struct gimple_opt_pass pass_warn_unused_result; /* IPA Passes */ +extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility; +extern struct simple_ipa_opt_pass pass_ipa_early_inline; + +extern struct simple_ipa_opt_pass pass_early_local_passes; + +extern struct ipa_opt_pass_d pass_ipa_lto_gimple_out; +extern struct simple_ipa_opt_pass pass_ipa_increase_alignment; +extern struct simple_ipa_opt_pass pass_ipa_matrix_reorg; extern struct ipa_opt_pass_d pass_ipa_inline; extern struct simple_ipa_opt_pass pass_ipa_free_lang_data; extern struct ipa_opt_pass_d pass_ipa_cp; extern struct ipa_opt_pass_d pass_ipa_reference; extern struct ipa_opt_pass_d pass_ipa_pure_const; - -extern struct simple_ipa_opt_pass pass_ipa_matrix_reorg; -extern struct simple_ipa_opt_pass pass_ipa_early_inline; extern struct simple_ipa_opt_pass pass_ipa_type_escape; extern struct simple_ipa_opt_pass pass_ipa_pta; extern struct simple_ipa_opt_pass pass_ipa_struct_reorg; -extern struct simple_ipa_opt_pass pass_early_local_passes; -extern struct simple_ipa_opt_pass pass_ipa_increase_alignment; -extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility; +extern struct ipa_opt_pass_d pass_ipa_lto_wpa_fixup; +extern struct ipa_opt_pass_d pass_ipa_lto_finish_out; extern struct gimple_opt_pass pass_all_optimizations; extern struct gimple_opt_pass pass_cleanup_cfg_post_optimizing; @@ -554,7 +558,8 @@ extern struct gimple_opt_pass pass_update_address_taken; extern struct gimple_opt_pass pass_convert_switch; /* The root of the compilation pass tree, once constructed. */ -extern struct opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; +extern struct opt_pass *all_passes, *all_small_ipa_passes, *all_lowering_passes, + *all_regular_ipa_passes, *all_lto_gen_passes; /* Current optimization pass. */ extern struct opt_pass *current_pass; @@ -562,8 +567,15 @@ extern struct opt_pass *current_pass; extern struct opt_pass * get_pass_for_id (int); extern void execute_pass_list (struct opt_pass *); extern void execute_ipa_pass_list (struct opt_pass *); +extern void execute_ipa_summary_passes (struct ipa_opt_pass_d *); +extern void execute_all_ipa_transforms (void); + extern void print_current_pass (FILE *); extern void debug_pass (void); +extern void ipa_write_summaries (void); +extern void ipa_write_summaries_of_cgraph_node_set ( + struct cgraph_node_set_def *); +extern void ipa_read_summaries (void); extern void register_one_dump_file (struct opt_pass *); extern bool function_called_by_processed_nodes_p (void); extern void register_pass (struct register_pass_info *); -- cgit v1.2.1 From 59dd48301d310463d3fffaf4c68d8df57fa20073 Mon Sep 17 00:00:00 2001 From: hubicka Date: Wed, 7 Oct 2009 09:01:16 +0000 Subject: * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones has no address taken. * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are never needed. (cgraph_clone_node): Clear externally_visible flag for clones. * cgraph.h (cgraph_only_called_directly_p, cgraph_can_remove_if_no_direct_calls_p): New predicates. * tree-pass.h (pass_ipa_whole_program_visibility): Declare. * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate. (ipcp_initialize_node_lattices, ipcp_estimate_growth, ipcp_insert_stage): Likwise. * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute externally_visible flag. (verify_cgraph_node): Verify that inline clones look right. (process_function_and_variable_attributes): Do not set externally_visible flags. (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've been already run. * lto-cgraph.c (lto_output_node): Assert that inline clones are not boundaries. * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates; clear externally_visible when turning into inline clones (cgraph_mark_inline_edge): Use new predicates. (cgraph_estimate_growth): Likewise. (cgraph_decide_inlining): Likewise. * ipa.c (cgraph_postorder): Likewise. (cgraph_remove_unreachable_nodes): Likewise; sanity check that inline clones are not needed. (cgraph_externally_visible_p): New predicate. (function_and_variable_visibility): Add whole_program parameter; always set externally_visible flag; handle COMDAT function privatization. (local_function_and_variable_visibility): New function. (gate_whole_program_function_and_variable_visibility): New function. (whole_program_function_and_variable_visibility): New function. (pass_ipa_whole_program_visibility): New function. * passes.c (init_optimization_passes): Add whole program visibility pass. (do_per_function_toporder, function_called_by_processed_nodes_p): Do not care about needed/reachable flags. * varpool.c: Include flags.h (decide_is_variable_needed): When doing LTO assume whole-program mode. (varpool_finalize_decl): When we are in LTO read-back, all variables are analyzed. (varpool_analyze_pending_decls): Skip analyzis of analyzed vars. * lto/lto.c (read_cgraph_and_symbols): Mark functions neccesary only at ltrans stage; explain why this is needed and should not. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152520 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index ae510494c86..2cbe3e4b448 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -437,6 +437,7 @@ extern struct simple_ipa_opt_pass pass_ipa_early_inline; extern struct simple_ipa_opt_pass pass_early_local_passes; +extern struct ipa_opt_pass_d pass_ipa_whole_program_visibility; extern struct ipa_opt_pass_d pass_ipa_lto_gimple_out; extern struct simple_ipa_opt_pass pass_ipa_increase_alignment; extern struct simple_ipa_opt_pass pass_ipa_matrix_reorg; -- cgit v1.2.1 From c90b5d400f562a31cf58dc58a8f330252133ac15 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 8 Oct 2009 16:03:11 +0000 Subject: PR middle-end/41573 * builtins.c (fold_builtin_isascii): Use fold_build2. (fold_builtin_isdigit): Ditto. * except.c (duplicate_eh_regions_1): Tolerate NULL labels. * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached, remove_useless_stmts_cond, remove_useless_stmts_tf, remove_useless_stmts_tc, remove_useless_stmts_bind, remove_useless_stmts_goto, remove_useless_stmts_label, remove_useless_stmts_1, remove_useless_stmts, pass_remove_useless_stmts): Remove. * tree-pass.h (pass_remove_useless_stmts): Don't declare. * passes.c (init_optimization_passes): Don't add pass_remove_useless_stmts. * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups. * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of static constants. * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL for static constants. * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP. * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP. testsuite/ * gcc.dg/tree-ssa/foldstring-1.c: Use fre dump. * gcc.dg/tree-ssa/useless-1.c: Use gimple dump. * gcc.dg/pr41573.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152563 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 - 1 file changed, 1 deletion(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 2cbe3e4b448..b829cee08b3 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -333,7 +333,6 @@ extern void tree_lowering_passes (tree decl); extern struct gimple_opt_pass pass_mudflap_1; extern struct gimple_opt_pass pass_mudflap_2; -extern struct gimple_opt_pass pass_remove_useless_stmts; extern struct gimple_opt_pass pass_lower_cf; extern struct gimple_opt_pass pass_refactor_eh; extern struct gimple_opt_pass pass_lower_eh; -- cgit v1.2.1 From e8eed2f8760fe42abb9f6228677dacd7a90271a8 Mon Sep 17 00:00:00 2001 From: vmakarov Date: Wed, 14 Oct 2009 16:24:11 +0000 Subject: 2009-09-26 Vladimir Makarov * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New. * params.h (IRA_LOOP_RESERVED_REGS): New * tree-pass.h (pass_subregs_of_mode_init, pass_subregs_of_mode_finish): Remove. * passes.c (pass_subregs_of_mode_init, pass_subregs_of_mode_finish): Remove. (pass_reginfo_init): Move before loop optimizations. * config/i386/i386.h (STACK_REG_COVER_CLASS): Define. * common.opt (fira-loop-pressure): New. * toplev.h (flag_ira_loop_pressure): New. * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals. * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode): Make external and void type functions. (gate_subregs_of_mode_init, pass_subregs_of_mode_init, pass_subregs_of_mode_finish): Remove. * ira-costs.c (init_costs): Call init_subregs_of_mode. * regmove.c: Include ira.h. (regmove_optimize): Call ira_set_pseudo_classes after IRA based register pressure calculation in loops. * loop-invariant.c: Include REGS_H and ira.h. (struct loop_data): New members max_reg_pressure, regs_ref, and regs_live. (struct invariant): New member orig_regno. (curr_loop): New variable. (find_exits): Initialize regs_ref and regs_live. (create_new_invariant): Initialize orig_regno. (get_cover_class_and_nregs): New. (get_inv_cost): Make aregs_needed an array. Use regs_needed as an array. Add code for flag_ira_loop_pressure. (gain_for_invariant): Make new_regs an array. Add code for flag_ira_loop_pressure. (best_gain_for_invariant): Ditto. (set_move_mark): New parameter gain. Use it for debugging output. (find_invariants_to_move): Make regs_needed and new_regs an array. Add code for flag_ira_loop_pressure. (move_invariant_reg): Set up orig_regno. (move_invariants): Set up reg classes for pseudos for flag_ira_loop_pressure. (free_loop_data): Clear regs_ref and regs_live. (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set, get_regno_cover_class, change_pressure, mark_regno_live, mark_regno_death, mark_reg_store, mark_reg_clobber, mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New. (move_loop_invariants): Calculate pressure. Initialize curr_loop. * ira.c (ira): Call ira_set_pseudo_classes after IRA based register pressure calculation in loops if new regs were added. Call finish_subregs_of_mode. * opts.c (decode_options): Set up flag_ira_loop_pressure. * Makefile.in (loop-invariant.o): Add ira.h. (regmove.o): Ditto. * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs): Describe. * doc/tm.texi (STACK_REG_COVER_CLASS): Describe. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@152770 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index b829cee08b3..8b8b3c4816f 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -497,8 +497,6 @@ extern struct rtl_opt_pass pass_cse2; extern struct rtl_opt_pass pass_df_initialize_opt; extern struct rtl_opt_pass pass_df_initialize_no_opt; extern struct rtl_opt_pass pass_reginfo_init; -extern struct rtl_opt_pass pass_subregs_of_mode_init; -extern struct rtl_opt_pass pass_subregs_of_mode_finish; extern struct rtl_opt_pass pass_inc_dec; extern struct rtl_opt_pass pass_stack_ptr_mod; extern struct rtl_opt_pass pass_initialize_regs; -- cgit v1.2.1 From 42a868cd5053099a2780f28969be964fabf9e8bc Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 29 Oct 2009 16:41:10 +0000 Subject: * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove. (gate_convert_to_rsqrt): Ditto. (pass_convert_to_rsqrt): Ditto. * tree-pass.h (pass_convert_to_rsqrt): Don't declare. * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt to pass list. * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order. testsuite/ * gcc.target/i386/sse-recip.c: Use fabsf instead of != . * gcc.target/i386/sse-recip-vec.c: Ditto. * gcc.target/i386/brokensqrt.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153713 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 - 1 file changed, 1 deletion(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 8b8b3c4816f..e8d6faeb96b 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -401,7 +401,6 @@ extern struct gimple_opt_pass pass_early_warn_uninitialized; extern struct gimple_opt_pass pass_late_warn_uninitialized; extern struct gimple_opt_pass pass_cse_reciprocals; extern struct gimple_opt_pass pass_cse_sincos; -extern struct gimple_opt_pass pass_convert_to_rsqrt; extern struct gimple_opt_pass pass_optimize_bswap; extern struct gimple_opt_pass pass_warn_function_return; extern struct gimple_opt_pass pass_warn_function_noreturn; -- cgit v1.2.1 From 90464c8b80ce61e7f80340c404a8a1b3ffc41316 Mon Sep 17 00:00:00 2001 From: jamborm Date: Tue, 10 Nov 2009 14:43:20 +0000 Subject: 2009-11-10 Martin Jambor * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field. (execute_all_ipa_stmt_fixups): Declare. * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value. * ipa-inline.c (pass_ipa_inline): Likewise. * ipa-pure-const.c (pass_ipa_pure_cons): Likewise. * ipa-reference.c (pass_ipa_reference): Likewise. * ipa.c (pass_ipa_whole_program_visibility): Likewise. * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise. (pass_ipa_lto_finish_out): Likewise. * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise. * passes.c (execute_ipa_stmt_fixups): New function. (execute_all_ipa_stmt_fixups): New function. * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154064 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index e8d6faeb96b..bff027b304c 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -185,7 +185,10 @@ struct ipa_opt_pass_d as needed so both calls are necessary. */ void (*read_summary) (void); void (*function_read_summary) (struct cgraph_node *); - + /* Hook to convert gimple stmt uids into true gimple statements. The second + parameter is an array of statements indexed by their uid. */ + void (*stmt_fixup) (struct cgraph_node *, gimple *); + /* Results of interprocedural propagation of an IPA pass is applied to function body via this hook. */ unsigned int function_transform_todo_flags_start; @@ -566,6 +569,7 @@ extern void execute_pass_list (struct opt_pass *); extern void execute_ipa_pass_list (struct opt_pass *); extern void execute_ipa_summary_passes (struct ipa_opt_pass_d *); extern void execute_all_ipa_transforms (void); +extern void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple *); extern void print_current_pass (FILE *); extern void debug_pass (void); -- cgit v1.2.1 From 48e1416a24d50cacbb2a5e06a9ee61dd8cbee313 Mon Sep 17 00:00:00 2001 From: hjl Date: Wed, 25 Nov 2009 10:55:54 +0000 Subject: Remove trailing white spaces. 2009-11-25 H.J. Lu * alias.c: Remove trailing white spaces. * alloc-pool.c: Likewise. * alloc-pool.h: Likewise. * attribs.c: Likewise. * auto-inc-dec.c: Likewise. * basic-block.h: Likewise. * bb-reorder.c: Likewise. * bt-load.c: Likewise. * builtins.c: Likewise. * builtins.def: Likewise. * c-common.c: Likewise. * c-common.h: Likewise. * c-cppbuiltin.c: Likewise. * c-decl.c: Likewise. * c-format.c: Likewise. * c-lex.c: Likewise. * c-omp.c: Likewise. * c-opts.c: Likewise. * c-parser.c: Likewise. * c-pretty-print.c: Likewise. * c-tree.h: Likewise. * c-typeck.c: Likewise. * caller-save.c: Likewise. * calls.c: Likewise. * cfg.c: Likewise. * cfganal.c: Likewise. * cfgexpand.c: Likewise. * cfghooks.c: Likewise. * cfghooks.h: Likewise. * cfglayout.c: Likewise. * cfgloop.c: Likewise. * cfgloop.h: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.c: Likewise. * cgraph.h: Likewise. * cgraphbuild.c: Likewise. * cgraphunit.c: Likewise. * cif-code.def: Likewise. * collect2.c: Likewise. * combine.c: Likewise. * convert.c: Likewise. * coverage.c: Likewise. * crtstuff.c: Likewise. * cse.c: Likewise. * cselib.c: Likewise. * dbgcnt.c: Likewise. * dbgcnt.def: Likewise. * dbgcnt.h: Likewise. * dbxout.c: Likewise. * dce.c: Likewise. * ddg.c: Likewise. * ddg.h: Likewise. * defaults.h: Likewise. * df-byte-scan.c: Likewise. * df-core.c: Likewise. * df-problems.c: Likewise. * df-scan.c: Likewise. * df.h: Likewise. * dfp.c: Likewise. * diagnostic.c: Likewise. * diagnostic.h: Likewise. * dominance.c: Likewise. * domwalk.c: Likewise. * double-int.c: Likewise. * double-int.h: Likewise. * dse.c: Likewise. * dwarf2asm.c: Likewise. * dwarf2asm.h: Likewise. * dwarf2out.c: Likewise. * ebitmap.c: Likewise. * ebitmap.h: Likewise. * emit-rtl.c: Likewise. * et-forest.c: Likewise. * except.c: Likewise. * except.h: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * expr.h: Likewise. * final.c: Likewise. * flags.h: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * function.h: Likewise. * fwprop.c: Likewise. * gcc.c: Likewise. * gcov-dump.c: Likewise. * gcov-io.c: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * genattrtab.c: Likewise. * genautomata.c: Likewise. * genchecksum.c: Likewise. * genconfig.c: Likewise. * genflags.c: Likewise. * gengtype-parse.c: Likewise. * gengtype.c: Likewise. * gengtype.h: Likewise. * genmddeps.c: Likewise. * genmodes.c: Likewise. * genopinit.c: Likewise. * genpreds.c: Likewise. * gensupport.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * ggc-zone.c: Likewise. * ggc.h: Likewise. * gimple-iterator.c: Likewise. * gimple-low.c: Likewise. * gimple-pretty-print.c: Likewise. * gimple.c: Likewise. * gimple.def: Likewise. * gimple.h: Likewise. * gimplify.c: Likewise. * graphds.c: Likewise. * graphite-clast-to-gimple.c: Likewise. * gthr-nks.h: Likewise. * gthr-posix.c: Likewise. * gthr-posix.h: Likewise. * gthr-posix95.h: Likewise. * gthr-single.h: Likewise. * gthr-tpf.h: Likewise. * gthr-vxworks.h: Likewise. * gthr.h: Likewise. * haifa-sched.c: Likewise. * hard-reg-set.h: Likewise. * hooks.c: Likewise. * hooks.h: Likewise. * hosthooks.h: Likewise. * hwint.h: Likewise. * ifcvt.c: Likewise. * incpath.c: Likewise. * init-regs.c: Likewise. * integrate.c: Likewise. * ipa-cp.c: Likewise. * ipa-inline.c: Likewise. * ipa-prop.c: Likewise. * ipa-pure-const.c: Likewise. * ipa-reference.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa-struct-reorg.h: Likewise. * ipa-type-escape.c: Likewise. * ipa-type-escape.h: Likewise. * ipa-utils.c: Likewise. * ipa-utils.h: Likewise. * ipa.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-conflicts.c: Likewise. * ira-costs.c: Likewise. * ira-emit.c: Likewise. * ira-int.h: Likewise. * ira-lives.c: Likewise. * ira.c: Likewise. * jump.c: Likewise. * lambda-code.c: Likewise. * lambda-mat.c: Likewise. * lambda-trans.c: Likewise. * lambda.h: Likewise. * langhooks.c: Likewise. * lcm.c: Likewise. * libgcov.c: Likewise. * lists.c: Likewise. * loop-doloop.c: Likewise. * loop-init.c: Likewise. * loop-invariant.c: Likewise. * loop-iv.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * lto-cgraph.c: Likewise. * lto-compress.c: Likewise. * lto-opts.c: Likewise. * lto-section-in.c: Likewise. * lto-section-out.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * lto-streamer.c: Likewise. * lto-streamer.h: Likewise. * lto-symtab.c: Likewise. * lto-wpa-fixup.c: Likewise. * matrix-reorg.c: Likewise. * mcf.c: Likewise. * mode-switching.c: Likewise. * modulo-sched.c: Likewise. * omega.c: Likewise. * omega.h: Likewise. * omp-low.c: Likewise. * optabs.c: Likewise. * optabs.h: Likewise. * opts-common.c: Likewise. * opts.c: Likewise. * params.def: Likewise. * params.h: Likewise. * passes.c: Likewise. * plugin.c: Likewise. * postreload-gcse.c: Likewise. * postreload.c: Likewise. * predict.c: Likewise. * predict.def: Likewise. * pretty-print.c: Likewise. * pretty-print.h: Likewise. * print-rtl.c: Likewise. * print-tree.c: Likewise. * profile.c: Likewise. * read-rtl.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * reg-stack.c: Likewise. * regcprop.c: Likewise. * reginfo.c: Likewise. * regmove.c: Likewise. * regrename.c: Likewise. * regs.h: Likewise. * regstat.c: Likewise. * reload.c: Likewise. * reload1.c: Likewise. * resource.c: Likewise. * rtl.c: Likewise. * rtl.def: Likewise. * rtl.h: Likewise. * rtlanal.c: Likewise. * sbitmap.c: Likewise. * sched-deps.c: Likewise. * sched-ebb.c: Likewise. * sched-int.h: Likewise. * sched-rgn.c: Likewise. * sched-vis.c: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-dump.h: Likewise. * sel-sched-ir.c: Likewise. * sel-sched-ir.h: Likewise. * sel-sched.c: Likewise. * sel-sched.h: Likewise. * sese.c: Likewise. * sese.h: Likewise. * simplify-rtx.c: Likewise. * stack-ptr-mod.c: Likewise. * stmt.c: Likewise. * stor-layout.c: Likewise. * store-motion.c: Likewise. * stringpool.c: Likewise. * stub-objc.c: Likewise. * sync-builtins.def: Likewise. * target-def.h: Likewise. * target.h: Likewise. * targhooks.c: Likewise. * targhooks.h: Likewise. * timevar.c: Likewise. * tlink.c: Likewise. * toplev.c: Likewise. * toplev.h: Likewise. * tracer.c: Likewise. * tree-affine.c: Likewise. * tree-affine.h: Likewise. * tree-browser.def: Likewise. * tree-call-cdce.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-chrec.c: Likewise. * tree-chrec.h: Likewise. * tree-complex.c: Likewise. * tree-data-ref.c: Likewise. * tree-data-ref.h: Likewise. * tree-dfa.c: Likewise. * tree-dump.c: Likewise. * tree-dump.h: Likewise. * tree-eh.c: Likewise. * tree-flow-inline.h: Likewise. * tree-flow.h: Likewise. * tree-if-conv.c: Likewise. * tree-inline.c: Likewise. * tree-into-ssa.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-loop-linear.c: Likewise. * tree-mudflap.c: Likewise. * tree-nested.c: Likewise. * tree-nomudflap.c: Likewise. * tree-nrv.c: Likewise. * tree-object-size.c: Likewise. * tree-optimize.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-parloops.c: Likewise. * tree-pass.h: Likewise. * tree-phinodes.c: Likewise. * tree-predcom.c: Likewise. * tree-pretty-print.c: Likewise. * tree-profile.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-ssa-address.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-coalesce.c: Likewise. * tree-ssa-copy.c: Likewise. * tree-ssa-copyrename.c: Likewise. * tree-ssa-dce.c: Likewise. * tree-ssa-dom.c: Likewise. * tree-ssa-dse.c: Likewise. * tree-ssa-forwprop.c: Likewise. * tree-ssa-ifcombine.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-live.h: Likewise. * tree-ssa-loop-ch.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-loop-unswitch.c: Likewise. * tree-ssa-loop.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-operands.c: Likewise. * tree-ssa-operands.h: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-propagate.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-sink.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa-ter.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-ssa-threadupdate.c: Likewise. * tree-ssa-uncprop.c: Likewise. * tree-ssa.c: Likewise. * tree-ssanames.c: Likewise. * tree-switch-conversion.c: Likewise. * tree-tailcall.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-generic.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vectorizer.c: Likewise. * tree-vectorizer.h: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * tree.def: Likewise. * tree.h: Likewise. * treestruct.def: Likewise. * unwind-compat.c: Likewise. * unwind-dw2-fde-glibc.c: Likewise. * unwind-dw2.c: Likewise. * value-prof.c: Likewise. * value-prof.h: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. * varpool.c: Likewise. * vec.c: Likewise. * vec.h: Likewise. * vmsdbgout.c: Likewise. * web.c: Likewise. * xcoffout.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154645 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index bff027b304c..1bff0bd52ce 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -71,7 +71,7 @@ enum tree_dump_index #define TDF_DIAGNOSTIC (1 << 15) /* A dump to be put in a diagnostic message. */ -#define TDF_VERBOSE (1 << 16) /* A dump that uses the full tree +#define TDF_VERBOSE (1 << 16) /* A dump that uses the full tree dumper to print stmts. */ #define TDF_RHS_ONLY (1 << 17) /* a flag to only print the RHS of a gimple stmt. */ @@ -232,7 +232,7 @@ struct dump_file_info /* To-do flags. */ #define TODO_dump_func (1 << 0) #define TODO_ggc_collect (1 << 1) -#define TODO_verify_ssa (1 << 2) +#define TODO_verify_ssa (1 << 2) #define TODO_verify_flow (1 << 3) #define TODO_verify_stmts (1 << 4) #define TODO_cleanup_cfg (1 << 5) @@ -264,7 +264,7 @@ struct dump_file_info IDF is done. This is used by passes that need the PHI nodes for O_j even if it means that some arguments will come from the default definition of O_j's symbol (e.g., pass_linear_transform). - + WARNING: If you need to use this flag, chances are that your pass may be doing something wrong. Inserting PHI nodes for an old name where not all edges carry a new replacement may lead to silent -- cgit v1.2.1 From 0075369687db7804b3546221f0a4f3868b8f97d4 Mon Sep 17 00:00:00 2001 From: rguenth Date: Mon, 30 Nov 2009 10:36:54 +0000 Subject: 2009-11-30 Richard Guenther * tree-dump.c (dump_option_value_in): Add TDF_NOUID. * tree-pass.h (TDF_NOUID): Likewise. * print-rtl.c: Include tree-pass.h. (print_mem_expr): Pass dump_flags. (print_rtx): Likewise. * print-tree.c: Include tree-pass.h. (print_node_brief): Handle TDF_NOUID. (print_node): Likewise. * tree-pretty-print.c (dump_decl_name): Likewise. (dump_generic_node): Likewise. * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H) dependency. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154775 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 1bff0bd52ce..473176c21c9 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -79,6 +79,7 @@ enum tree_dump_index #define TDF_EH (1 << 19) /* display EH region number holding this gimple statement. */ +#define TDF_NOUID (1 << 20) /* omit UIDs from dumps. */ /* In tree-dump.c */ -- cgit v1.2.1 From c9036234fbf4b8b9c2b26ea3ba46e3bacd6d46fa Mon Sep 17 00:00:00 2001 From: amylaar Date: Tue, 1 Dec 2009 19:12:29 +0000 Subject: 2009-12-01 Grigori Fursin Joern Rennecke * cgraphunit.c (plugin.h): Include. (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START / PLUGIN_ALL_IPA_PASSES_END at start / end of processing. * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include. (enum plugin_event): Define by including plugin.def. Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC. (plugin_event_name): Change type to const char **. (get_event_last, get_named_event_id, unregister_callback): Declare. (register_callback): Change type of event argument to int. (highlev-plugin-common.h): New file. * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and $(HASHTAB_H) (tree-optimize.o passes.o): Depend on $(PLUGIN_H). (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def. (s-header-vars): New rule. (install-plugin): Depend on s-header-vars. Install b-header-vars. * params.c (get_num_compiler_params): New function. * params.h (get_num_compiler_params): Declare. * passes.c (plugin.h): Include. (make_pass_instance): Invoke PLUGIN_NEW_PASS. (do_per_function_toporder, pass_init_dump_file): No longer static. (pass_fini_dump_file): Likewise. (execute_one_pass): Likewise. Invoke PLUGIN_OVERRIDE_GATE and PLUGIN_PASS_EXECUTION. (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and PLUGIN_EARLY_GIMPLE_PASSES_END. * plugin.c (plugin_event_name_init): New array, defined by including plugin.def. (FMT_FOR_PLUGIN_EVENT): Update. (plugin_event_name): Change type to const char ** and initialize to plugin_event_name_init. (event_tab, event_last, event_horizon): New variable. (get_event_last): New function. (plugin_callbacks_init): New array. (plugin_callbacks: Change type to struct callback_info **. Initialize to plugin_callbacks_init. (htab_event_eq, get_named_event_id, unregister_callback): New function. (invoke_plugin_va_callbacks): Likewise. (register_callback): Change type of event argument to int. Handle new events. Allow dynamic events. (invoke_plugin_callbacks): Likewise. Return success status. (plugins_active_p): Allow dynamic callbacks. * plugin.def: New file. * plugin.h (invoke_plugin_callbacks): Update prototype. (invoke_plugin_va_callbacks): Declare. * tree-optimize.c (plugin.h): Include. (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and PLUGIN_ALL_PASSES_END. * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare. (pass_fini_dump_file, do_per_function_toporder): Likewise. * doc/plugin.texi: Document new event types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154877 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 473176c21c9..b997eb126ec 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -566,12 +566,16 @@ extern struct opt_pass *all_passes, *all_small_ipa_passes, *all_lowering_passes, extern struct opt_pass *current_pass; extern struct opt_pass * get_pass_for_id (int); +extern bool execute_one_pass (struct opt_pass *); extern void execute_pass_list (struct opt_pass *); extern void execute_ipa_pass_list (struct opt_pass *); extern void execute_ipa_summary_passes (struct ipa_opt_pass_d *); extern void execute_all_ipa_transforms (void); extern void execute_all_ipa_stmt_fixups (struct cgraph_node *, gimple *); +extern bool pass_init_dump_file (struct opt_pass *); +extern void pass_fini_dump_file (struct opt_pass *); +extern const char *get_current_pass_name (void); extern void print_current_pass (FILE *); extern void debug_pass (void); extern void ipa_write_summaries (void); @@ -591,4 +595,7 @@ extern void register_pass (struct register_pass_info *); directly in jump threading, and avoid peeling them next time. */ extern bool first_pass_instance; +/* Declare for plugins. */ +extern void do_per_function_toporder (void (*) (void *), void *); + #endif /* GCC_TREE_PASS_H */ -- cgit v1.2.1 From c34d15451ad4d9200cc3cdc456fdbb9d7d67b600 Mon Sep 17 00:00:00 2001 From: amylaar Date: Sat, 19 Dec 2009 02:33:03 +0000 Subject: * Makefile.in (PLUGIN_HEADERS): Add more headers. * tree-pass.h (GCC_PASS_LISTS): Define. (PASS_LIST_NO_all_lowering_passes): New enumeration value. (PASS_LIST_NO_all_small_ipa_passes): Likewise. (PASS_LIST_NO_all_regular_ipa_passes): Likewise. (PASS_LIST_NO_all_lto_gen_passes): Likewise. (PASS_LIST_NO_all_passes): Likewise. (PASS_LIST_NUM): Likewise. (gcc_pass_lists): Declare. * passes.c (gcc_pass_lists): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155354 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index b997eb126ec..40cfb0f6891 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -562,6 +562,27 @@ extern struct gimple_opt_pass pass_convert_switch; extern struct opt_pass *all_passes, *all_small_ipa_passes, *all_lowering_passes, *all_regular_ipa_passes, *all_lto_gen_passes; +/* Define a list of pass lists so that both passes.c and plugins can easily + find all the pass lists. */ +#define GCC_PASS_LISTS \ + DEF_PASS_LIST (all_lowering_passes) \ + DEF_PASS_LIST (all_small_ipa_passes) \ + DEF_PASS_LIST (all_regular_ipa_passes) \ + DEF_PASS_LIST (all_lto_gen_passes) \ + DEF_PASS_LIST (all_passes) + +#define DEF_PASS_LIST(LIST) PASS_LIST_NO_##LIST, +enum +{ + GCC_PASS_LISTS + PASS_LIST_NUM +}; +#undef DEF_PASS_LIST + +/* This is used by plugins, and should also be used in + passes.c:register_pass. */ +extern struct opt_pass **gcc_pass_lists[]; + /* Current optimization pass. */ extern struct opt_pass *current_pass; -- cgit v1.2.1 From 7b76dcb9d8a0a1542d23bde7d2b241983f928c6e Mon Sep 17 00:00:00 2001 From: rguenth Date: Wed, 13 Jan 2010 10:07:47 +0000 Subject: 2010-01-13 Richard Guenther PR lto/42678 * tree-pass.h (PROP_gimple_lcx): New. * cfgexpand.c (pass_expand): Require PROP_gimple_lcx. * passes.c (init_optimization_passes): Move pass_lower_complex_O0 before the final cleanup_eh. (dump_properties): Dump PROP_gimple_lcx. * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx. (tree_lower_complex_O0): Remove. (gate_no_optimization): Run if PROP_gimple_lcx is not set. (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run tree_lower_complex, schedule TODO_update_ssa. * lto-streamer-out.c (output_function): Stream the functions properties. * lto-streamer-in.c (input_function): Likewise. (lto_read_body): Do not override them here. * gfortran.dg/lto/20100110-1_0.f90: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155853 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 40cfb0f6891..383a164004c 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -226,6 +226,7 @@ struct dump_file_info #define PROP_rtl (1 << 7) #define PROP_gimple_lomp (1 << 8) /* lowered OpenMP directives */ #define PROP_cfglayout (1 << 9) /* cfglayout mode on RTL */ +#define PROP_gimple_lcx (1 << 10) /* lowered complex */ #define PROP_trees \ (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp) -- cgit v1.2.1 From 7cf0dbf3e5eee1286c76c26a836622c9c9974736 Mon Sep 17 00:00:00 2001 From: steven Date: Fri, 2 Apr 2010 19:54:46 +0000 Subject: * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c, basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h, collect2.h, config/alpha/alpha.c, config/alpha/alpha.md, config/alpha/predicates.md, config/arm/arm.md, config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml, config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c, config/darwin9.h, config/darwin.c, config/darwin.h, config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h, config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c, config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c, config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c, config/mips/mips.md, config/mn10300/mn10300.c, config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md, config/rs6000/aix.h, config/rs6000/dfp.md, config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c, config/rs6000/vector.md, config/rtems.h, config/rx/rx.md, config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h, config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md, config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c, config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in, c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c, diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi, doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi, doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c, fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h, gensupport.c, gimple.h, gimple-iterator.c, graphite.c, graphite-clast-to-gimple.c, graphite-clast-to-gimple.h, graphite-dependences.c, graphite-poly.c, graphite-poly.h, graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c, graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c, intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h, ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c, ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c, loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c, objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk, opt-functions.awk, opth-gen.awk, params.def, passes.c, postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h, rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h, store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c, tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h, tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c, tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c, tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c, unwind-dw2-fde-darwin.c, varpool.c: Update copyright years. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157950 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 383a164004c..cda9e9c0a7d 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -1,5 +1,5 @@ /* Definitions for describing one tree-ssa optimization pass. - Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 + Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. Contributed by Richard Henderson -- cgit v1.2.1 From a29ec3eb5f80f228a12550e1ce7a1448c4550e4e Mon Sep 17 00:00:00 2001 From: spop Date: Tue, 6 Apr 2010 19:20:29 +0000 Subject: Always execute verify_loop_closed_ssa at LNO level. 2010-04-06 Sebastian Pop * passes.c (execute_function_todo): Call verify_loop_closed_ssa for all the passes of the LNO having LOOP_CLOSED_SSA. * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops. * tree-loop-distribution.c (pass_loop_distribution): Same. * tree-pass.h (TODO_verify_loops): Removed. * tree-ssa-loop.c (pass_tree_loop_init): Same. (pass_lim): Same. (pass_tree_unswitch): Same. (pass_predcom): Same. (pass_vectorize): Same. (pass_linear_transform): Same. (pass_graphite_transforms): Same. (pass_iv_canon): Same. (pass_complete_unroll): Same. (pass_complete_unrolli): Same. (pass_parallelize_loops): Same. (pass_loop_prefetch): Same. (pass_iv_optimize): Same. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158020 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 - 1 file changed, 1 deletion(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index cda9e9c0a7d..94726722d25 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -238,7 +238,6 @@ struct dump_file_info #define TODO_verify_flow (1 << 3) #define TODO_verify_stmts (1 << 4) #define TODO_cleanup_cfg (1 << 5) -#define TODO_verify_loops (1 << 6) #define TODO_dump_cgraph (1 << 7) #define TODO_remove_functions (1 << 8) #define TODO_rebuild_frequencies (1 << 9) -- cgit v1.2.1 From 1a981e1a975098bd537556d2b36f275f3bc075c7 Mon Sep 17 00:00:00 2001 From: rguenth Date: Thu, 15 Apr 2010 13:16:44 +0000 Subject: 2010-04-15 Richard Guenther * tree-ssa-structalias.c (struct variable_info): Add is_fn_info flag. (new_var_info): Initialize it. (dump_constraints): Support printing last added constraints. (debug_constraints): Adjust. (dump_constraint_graph): Likewise. (make_heapvar_for): Check for NULL cfun. (get_function_part_constraint): New function. (get_fi_for_callee): Likewise. (find_func_aliases): Properly implement IPA PTA constraints. (process_ipa_clobber): New function. (find_func_clobbers): Likewise. (insert_into_field_list_sorted): Remove. (create_function_info_for): Properly allocate vars for IPA mode. Do not use insert_into_field_list_sorted. (create_variable_info_for): Properly generate constraints for global vars in IPA mode. (dump_solution_for_var): Always dump the solution. (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode. (find_what_var_points_to): Adjust. (pt_solution_set): Change. (pt_solution_ior_into): New function. (pt_solution_empty_p): Export. (pt_solution_includes_global): Adjust. (pt_solution_includes_1): Likewise. (pt_solutions_intersect_1): Likewise. (dump_sa_points_to_info): Check some invariants. (solve_constraints): Move constraint dumping ... (compute_points_to_sets): ... here. (ipa_pta_execute): ... and here. (compute_may_aliases): Do not re-compute points-to info locally if IPA info is available. (ipa_escaped_pt): New global var. (ipa_pta_execute): Properly implement IPA PTA. * tree-into-ssa.c (dump_decl_set): Support dumping decls not in referenced-vars. * tree-flow.h (struct gimple_df): Add ipa_pta flag. * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust. (dump_points_to_solution): Likewise. * tree-dfa.c (dump_variable): Also dump DECL_PT_UID. * tree-inline.c (remap_ssa_name): Copy IPA points-to solution. (remap_gimple_stmt): Reset call clobber/use information if necessary. (copy_decl_to_var): Copy DECL_PT_UID. (copy_result_decl_to_var): Likewise. * tree.c (make_node_stat): Initialize DECL_PT_UID. (copy_node_stat): Copy it. * tree.h (DECL_PT_UID): New macro. (SET_DECL_PT_UID): Likewise. (DECL_PT_UID_SET_P): Likewise. (struct tree_decl_minimal): Add pt_uid member. * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag. (pt_solution_empty_p): Declare. (pt_solution_set): Adjust. (ipa_escaped_pt): Declare. * cfgexpand.c (update_alias_info_with_stack_vars): Adjust. * gimple-pretty-print.c (pp_points_to_solution): New function. (dump_gimple_call): Dump call clobber/use information. * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry. * tree-pass.h (TDF_ALIAS): New dump option. * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to. * doc/invoke.texi (-fipa-pta): Update documentation. * gcc.dg/ipa/ipa-pta-1.c: New testcase. * gcc.dg/ipa/ipa-pta-2.c: Likewise. * gcc.dg/ipa/ipa-pta-3.c: Likewise. * gcc.dg/ipa/ipa-pta-4.c: Likewise. * gcc.dg/ipa/ipa-pta-5.c: Likewise. * gcc.dg/ipa/ipa-pta-6.c: Likewise. * gcc.dg/ipa/ipa-pta-7.c: Likewise. * gcc.dg/ipa/ipa-pta-8.c: Likewise. * gcc.dg/ipa/ipa-pta-9.c: Likewise. * gcc.dg/ipa/ipa-pta-10.c: Likewise. * gcc.dg/ipa/ipa-pta-11.c: Likewise. * gcc.dg/ipa/ipa-pta-12.c: Likewise. * gcc.dg/ipa/ipa-pta-13.c: Likewise. * gcc.dg/torture/ipa-pta-2.c: Likewise. * gcc.dg/torture/ipa-pta-1.c: Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158374 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 94726722d25..019b9332b81 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -78,8 +78,9 @@ enum tree_dump_index #define TDF_ASMNAME (1 << 18) /* display asm names of decls */ #define TDF_EH (1 << 19) /* display EH region number holding this gimple statement. */ - #define TDF_NOUID (1 << 20) /* omit UIDs from dumps. */ +#define TDF_ALIAS (1 << 21) /* display alias information */ + /* In tree-dump.c */ -- cgit v1.2.1 From ddc90d8846c96a8d60e5c145f71985dd9baa2fe7 Mon Sep 17 00:00:00 2001 From: hubicka Date: Wed, 21 Apr 2010 17:44:03 +0000 Subject: * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary; add write_optimization_summary, read_optimization_summary. (ipa_write_summaries_of_cgraph_node_set): Remove. (ipa_write_optimization_summaries): Declare. (ipa_read_optimization_summaries): Declare. * ipa-cp.c (pass_ipa_cp): Update. * ipa-reference.c (pass_ipa_reference): Update. * ipa-pure-const.c (pass_ipa_pure_const): Update. * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish): Update. * ipa-inline.c (pass_ipa_inline): Update. * ipa.c (pass_ipa_whole_program): Update. * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update. * passes.c (ipa_write_summaries_1): Do not test wpa. (ipa_write_optimization_summaries_1): New. (ipa_write_optimization_summaries): New. (ipa_read_summaries): Do not test ltrans. (ipa_read_optimization_summaries_1): New. (ipa_read_optimization_summaries): New. * lto.c (lto_wpa_write_files): Update. (read_cgraph_and_symbols): Be more verbose. (materialize_cgraph): Likewise. (do_whole_program_analysis): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158616 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 019b9332b81..42ef8b20392 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -182,11 +182,15 @@ struct ipa_opt_pass_d /* This hook is used to serialize IPA summaries on disk. */ void (*write_summary) (struct cgraph_node_set_def *); - /* For most ipa passes, the information can only be deserialized in - one chunk. However, function bodies are read function at a time - as needed so both calls are necessary. */ + /* This hook is used to deserialize IPA summaries from disk. */ void (*read_summary) (void); - void (*function_read_summary) (struct cgraph_node *); + + /* This hook is used to serialize IPA optimization summaries on disk. */ + void (*write_optimization_summary) (struct cgraph_node_set_def *); + + /* This hook is used to deserialize IPA summaries from disk. */ + void (*read_optimization_summary) (void); + /* Hook to convert gimple stmt uids into true gimple statements. The second parameter is an array of statements indexed by their uid. */ void (*stmt_fixup) (struct cgraph_node *, gimple *); @@ -601,9 +605,9 @@ extern const char *get_current_pass_name (void); extern void print_current_pass (FILE *); extern void debug_pass (void); extern void ipa_write_summaries (void); -extern void ipa_write_summaries_of_cgraph_node_set ( - struct cgraph_node_set_def *); +extern void ipa_write_optimization_summaries (struct cgraph_node_set_def *); extern void ipa_read_summaries (void); +extern void ipa_read_optimization_summaries (void); extern void register_one_dump_file (struct opt_pass *); extern bool function_called_by_processed_nodes_p (void); extern void register_pass (struct register_pass_info *); -- cgit v1.2.1 From 62be004c68ce53f727b45453c1b12b4ce11f776c Mon Sep 17 00:00:00 2001 From: bernds Date: Thu, 22 Apr 2010 09:30:27 +0000 Subject: gcc/ PR middle-end/29274 * optabs.h (expand_widening_mult): Declare. * tree-pass.h (pass_optimize_widening_mul): Declare. * tree-ssa-math-opts.c (execute_optimize_widening_mul, gate_optimize_widening_mul): New static functions. (pass_optimize_widening_mul): New. * expr.c (expand_expr_real_2) : New case. : Remove support for widening multiplies. * tree.def (WIDEN_MULT_EXPR): Tweak comment. * cfgexpand.c (expand_debug_expr) : Use simplify_gen_unary rather than directly building extensions. * tree-cfg.c (verify_gimple_assign_binary): Add tests for WIDEN_MULT_EXPR. * expmed.c (expand_widening_mult): New function. * passes.c (init_optimization_passes): Add pass_optimize_widening_mul. gcc/testsuite/ PR middle-end/29274 * gcc.target/i386/wmul-1.c: New test. * gcc.target/i386/wmul-2.c: New test. * gcc.target/bfin/wmul-1.c: New test. * gcc.target/bfin/wmul-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158633 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 42ef8b20392..3d7798e4ca4 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -411,6 +411,7 @@ extern struct gimple_opt_pass pass_late_warn_uninitialized; extern struct gimple_opt_pass pass_cse_reciprocals; extern struct gimple_opt_pass pass_cse_sincos; extern struct gimple_opt_pass pass_optimize_bswap; +extern struct gimple_opt_pass pass_optimize_widening_mul; extern struct gimple_opt_pass pass_warn_function_return; extern struct gimple_opt_pass pass_warn_function_noreturn; extern struct gimple_opt_pass pass_cselim; -- cgit v1.2.1 From 4e2db0ad8a2a1ead055c58c5adbe586a817caa25 Mon Sep 17 00:00:00 2001 From: hubicka Date: Tue, 27 Apr 2010 14:56:33 +0000 Subject: * doc/invoke.texi (-fipa-profile): Document. * opts.c (decode_options): Enable ipa-profile at -O1. * timevar.def (TV_IPA_PROFILE): Define. * common.opt (fipa-profile): Add. * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method flag for clones. (cgraph_propagate_frequency): Handle only local ones. * tree-pass.h (pass_ipa_profile): Declare. * ipa-profile.c (gate_profile): Use flag_ipa_profile. (pass_ipa_profile): Use TV_IPA_PROFILE. * ipa.c (ipa_profile): New function. (gate_ipa_profile): Likewise. (pass_ipa_profile): New global variable. * passes.c (pass_ipa_profile): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158788 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 3d7798e4ca4..a82dc83d2a7 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -459,6 +459,7 @@ extern struct simple_ipa_opt_pass pass_ipa_pta; extern struct simple_ipa_opt_pass pass_ipa_struct_reorg; extern struct ipa_opt_pass_d pass_ipa_lto_wpa_fixup; extern struct ipa_opt_pass_d pass_ipa_lto_finish_out; +extern struct ipa_opt_pass_d pass_ipa_profile; extern struct gimple_opt_pass pass_all_optimizations; extern struct gimple_opt_pass pass_cleanup_cfg_post_optimizing; -- cgit v1.2.1 From 0cddb138341aafca38ae8d099c98750b5b34b8b2 Mon Sep 17 00:00:00 2001 From: hubicka Date: Thu, 29 Apr 2010 07:10:38 +0000 Subject: * lto-symtab.c (lto_symtab_entry_def) Add vnode. (lto_varpool_replace_node): New. (lto_symtab_resolve_symbols): Resolve varpool nodes. (lto_symtab_merge_decls_1): Prefer decls with varpool node. (lto_symtab_merge_cgraph_nodes_1): Merge varpools. * cgraph.h (varpool_node_ptr): New type. (varpool_node_ptr): New vector. (varpool_node_set_def): New structure. (varpool_node_set): New type. (varpool_node_set): New vector. (varpool_node_set_element_def): New structure. (varpool_node_set_element, const_varpool_node_set_element): New types. (varpool_node_set_iterator): New type. (varpool_node): Add prev pointers, add used_from_other_partition, in_other_partition. (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add, varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set, varpool_get_node, varpool_remove_node): Declare. (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p, varpool_node_set_size): New inlines. * cgraph.c (dump_cgraph_node): Dump asm names of aliases. * tree-pass.h (varpool_node_set_def): Forward declare. (ipa_opt_pass_d): Summary writting takes vnode sets too. (ipa_write_optimization_summaries): Update prototype. * ipa-cp.c (ipcp_write_summary): Update. * ipa-reference.c (ipa_reference_write_summary): Update. * lto-cgraph.c (lto_output_varpool_node): New static function. (output_varpool): New function. (input_varpool_node): New static function. (input_varpool_1): New function. (input_cgraph): Input varpool. * ipa-pure-const.c (pure_const_write_summary): Update. * lto-streamer-out.c (lto_output): Update, output varpool too. (write_global_stream): Kill WPA hack. (produce_asm_for_decls): Update. (output_alias_pair_p): Handle variables. (output_unreferenced_globals): Output only needed partition of varpool. * ipa-inline.c (inline_write_summary): Update. * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build cgraph. * lto-section-in.c (lto_section_name): Add varpool and jump funcs. * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element, varpool_node_set_new, varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set, debug_varpool_node_set): New functions. * passes.c (rest_of_decl_compilation): when in LTO do not finalize. (execute_one_pass): Process new decls too. (ipa_write_summaries_2): Pass around vsets. (ipa_write_summaries_1): Likewise. (ipa_write_summaries): Build vset; be more selective about cgraph nodes to add. (ipa_write_optimization_summaries_1): Pass around vsets. (ipa_write_optimization_summaries): Likewise. * varpool.c (varpool_get_node): New. (varpool_node): Update doubly linked lists. (varpool_remove_node): New. (dump_varpool_node): More dumping. (varpool_enqueue_needed_node): Update doubly linked lists. (decide_is_variable_needed): Kill ltrans hack. (varpool_finalize_decl): Kill lto hack. (varpool_assemble_decl): Skip decls in other partitions. (varpool_assemble_pending_decls): Update doubly linkes lists. (varpool_empty_needed_queue): Likewise. (varpool_extra_name_alias): Likewise. * lto-streamer.c (lto_get_section_name): Add vars section. * lto-streamer.h (lto_section_type): Update. (output_varpool, input_varpool): Declare. * lto.c (lto_varpool_node_sets): New. (lto_1_to_1_map): Partition varpool too. (globalize_context_t, globalize_cross_file_statics, lto_scan_statics_in_ref_table, lto_scan_statics_in_cgraph_node, lto_scan_statics_in_remaining_global_vars): Remove. (lto_promote_cross_file_statics): Rewrite. (get_filename_for_set): Take vset argument. (lto_wpa_write_files): Pass around vsets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158854 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index a82dc83d2a7..8542aabc79c 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -168,6 +168,7 @@ struct rtl_opt_pass struct varpool_node; struct cgraph_node; struct cgraph_node_set_def; +struct varpool_node_set_def; /* Description of IPA pass with generate summary, write, execute, read and transform stages. */ @@ -180,13 +181,15 @@ struct ipa_opt_pass_d void (*generate_summary) (void); /* This hook is used to serialize IPA summaries on disk. */ - void (*write_summary) (struct cgraph_node_set_def *); + void (*write_summary) (struct cgraph_node_set_def *, + struct varpool_node_set_def *); /* This hook is used to deserialize IPA summaries from disk. */ void (*read_summary) (void); /* This hook is used to serialize IPA optimization summaries on disk. */ - void (*write_optimization_summary) (struct cgraph_node_set_def *); + void (*write_optimization_summary) (struct cgraph_node_set_def *, + struct varpool_node_set_def *); /* This hook is used to deserialize IPA summaries from disk. */ void (*read_optimization_summary) (void); @@ -607,7 +610,8 @@ extern const char *get_current_pass_name (void); extern void print_current_pass (FILE *); extern void debug_pass (void); extern void ipa_write_summaries (void); -extern void ipa_write_optimization_summaries (struct cgraph_node_set_def *); +extern void ipa_write_optimization_summaries (struct cgraph_node_set_def *, + struct varpool_node_set_def *); extern void ipa_read_summaries (void); extern void ipa_read_optimization_summaries (void); extern void register_one_dump_file (struct opt_pass *); -- cgit v1.2.1 From a5b022e7af7b70507d5e5d54eef6cb0621399607 Mon Sep 17 00:00:00 2001 From: tmsriram Date: Wed, 12 May 2010 21:15:19 +0000 Subject: * implicit-zee.c: New file. * tree-pass.h (pass_implicit_zee): Declare. * passes.c (init_optimization_passes): Add zee pass. * common.opt (fzee): New flag. * timevar.def (TV_ZEE): Define. * config/i386/i386.c (optimization_options): Turn on ZEE for level 2 and beyond. * Makefile.in (implicit-zee.o): Add new build file. * gcc.target/i386/zee.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159342 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 8542aabc79c..5ed86b4336b 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -515,6 +515,7 @@ extern struct rtl_opt_pass pass_stack_ptr_mod; extern struct rtl_opt_pass pass_initialize_regs; extern struct rtl_opt_pass pass_combine; extern struct rtl_opt_pass pass_if_after_combine; +extern struct rtl_opt_pass pass_implicit_zee; extern struct rtl_opt_pass pass_partition_blocks; extern struct rtl_opt_pass pass_match_asm_constraints; extern struct rtl_opt_pass pass_regmove; -- cgit v1.2.1 From f608fcb75792e3f08e9bf909fbfcb00a4c503942 Mon Sep 17 00:00:00 2001 From: charlet Date: Tue, 1 Jun 2010 12:57:57 +0000 Subject: * doc/invoke.texi: Mention -fdump-ada-spec. * tree-dump.c (dump_files): Add ada-spec. (FIRST_AUTO_NUMBERED_DUMP): Bump to 8. * tree-pass.h (tree_dump_index): Add TDI_ada. * gcc.c: Add support for -C without -E and for -fdump-ada-spec. (cpp_unique_options): Do not reject -C or -CC when -E isn't present. (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files. * c-decl.c: Include c-ada-spec.h. (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New functions. (c_write_global_declarations): Add handling of -fdump-ada-spec. * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT. * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o. * c-ada-spec.h, c-ada-spec.c: New files. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160100 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 5ed86b4336b..b5971d5433a 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -38,6 +38,7 @@ enum tree_dump_index TDI_nested, /* dump each function after unnesting it */ TDI_vcg, /* create a VCG graph file for each function's flowgraph. */ + TDI_ada, /* dump declarations in Ada syntax. */ TDI_tree_all, /* enable all the GENERIC/GIMPLE dumps. */ TDI_rtl_all, /* enable all the RTL dumps. */ TDI_ipa_all, /* enable all the IPA dumps. */ -- cgit v1.2.1 From 2862cf8840cb7af53bf67b250a95a9ad9b82de83 Mon Sep 17 00:00:00 2001 From: hubicka Date: Fri, 25 Jun 2010 13:13:31 +0000 Subject: * tree-pass.h (pass_split_functions): Declare. * opts.c (decode_options): Enable function splitting at -O2 * timevar.def (TV_IPA_FNSPLIT): New macro. * ipa-split.c: New file. * common.opt (-fpartial-inlining): New flag. * Makefile.in (ipa-split.o): New object file. * passes.c (init_optimization_passes): Add ipa-split. * params.def (max-inline-insns-auto): Reduce max-inline-insns-auto to 40. (partial-inlining-entry-probability): New parameters. * doc/invoke.texi (-fpartial-inlining): New. * testsuite/gcc.dg/tree-ssa/ipa-split.c git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161382 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index b5971d5433a..a4c97b39155 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -442,6 +442,7 @@ extern struct gimple_opt_pass pass_build_cgraph_edges; extern struct gimple_opt_pass pass_local_pure_const; extern struct gimple_opt_pass pass_tracer; extern struct gimple_opt_pass pass_warn_unused_result; +extern struct gimple_opt_pass pass_split_functions; /* IPA Passes */ extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility; -- cgit v1.2.1 From 12e18540e67cec225113893f3744def89a0d2250 Mon Sep 17 00:00:00 2001 From: amylaar Date: Tue, 13 Jul 2010 21:55:57 +0000 Subject: gcc: PR other/44874 * tree-dump.c (dump_options): Add enumerate_locals entry. Add TDF_NOID exclusion to all entry. * tree-dump.h (dump_enumerated_decls): Declare. * tree-pretty-print.c (dump_generic_node): For TDF_NOID, Don't display type uid. (print_declaration): Don't crash on TREE_TYPE (t) == 0. * tree-pass.h (TDF_ENUMERATE_LOCALS): Define. * tree-ssa-live.c: Include gimple.h. (numbered_tree_d): New struct. (numbered_tree): New typedef. (DEF_VEC_O (numbered_tree): New. (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise. (compare_decls_by_uid, dump_enumerated_decls_push): New functions. (dump_enumerated_decls): Likewise. * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing debug info and flag_dump_final_insns, call dump_enumerated_decls. * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls. * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H). gcc/testsuite: PR other/44874 PR debug/44832 * c-c++-common/pr44832.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162156 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-pass.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/tree-pass.h') diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index a4c97b39155..c72d7cfa6da 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -81,6 +81,7 @@ enum tree_dump_index holding this gimple statement. */ #define TDF_NOUID (1 << 20) /* omit UIDs from dumps. */ #define TDF_ALIAS (1 << 21) /* display alias information */ +#define TDF_ENUMERATE_LOCALS (1 << 22) /* Enumerate locals by uid. */ /* In tree-dump.c */ -- cgit v1.2.1