| 2004-05-11 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-cfg.c (delete_tree_cfg): Update call to |
| free_basic_block_vars. |
| |
| 2004-05-10 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-ssa-live.h: Fix typo in #include guard. |
| |
| 2004-05-08 Jeff Sturm <jsturm@one-point.com> |
| |
| * tree-eh.c (lower_catch): Lower catch body in context of |
| catch_region. |
| |
| 2004-05-07 Richard Henderson <rth@redhat.com> |
| |
| * tree-eh.c (tree_could_trap_p): Use get_base_address on references. |
| |
| 2004-05-07 Diego Novillo <dnovillo@redhat.com> |
| |
| * doc/invoke.texi: Remove documentation for -ftree-copyprop. |
| Update documentation for -ftree-pre. |
| |
| 2004-05-06 Richard Henderson <rth@redhat.com> |
| |
| * stmt.c (parse_output_constraint): Don't warn for read-write |
| memory operand. |
| * gimplify.c (gimplify_asm_expr): Force in-out memory operands |
| to minimal lvalues, then expand to non-matching constraints. |
| |
| 2004-05-06 Zack Weinberg <zack@codesourcery.com> |
| |
| * c-decl.c (finish_function): When !targetm.have_ctors_dtors, |
| record static constructors and destructors here... |
| (c_expand_body_1): ... not here. |
| * c-objc-common.c (start_cdtor, finish_cdtor): Collapse |
| together into |
| (build_cdtor): ...here. Update to construct a complete tree |
| for the function. No need to call push_scope, pop_scope, or |
| clear_last_expr, or set current_function_cannot_inline. |
| (c_objc_common_finish_file): Just call build_cdtor for static |
| ctors/dtors, then clear the variables. Do this before calling |
| cgraph_finalize_compilation_unit and cgraph_optimize. |
| |
| 2004-05-06 Richard Henderson <rth@redhat.com> |
| |
| * fold-const.c (fold): Don't build COND_EXPR from comparisons for |
| boolean and integer result types. Handle X ^ X for TRUTH_XOR_EXPR. |
| |
| 2004-05-05 Richard Henderson <rth@redhat.com> |
| |
| * tree-nested.c (create_tmp_var_for): Disallow variable sized types. |
| (convert_nonlocal_reference): Set val_only false for the base of a |
| component or array reference. |
| (convert_local_reference): Likewise. |
| |
| 2004-05-05 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (create_tmp_var): Disallow variable sized objects. |
| (gimplify_modify_expr): Don't memcpy for VA_ARG_EXPR. |
| |
| 2004-05-05 Richard Henderson <rth@redhat.com> |
| |
| * fold-const.c (operand_equal_p): Replace only_const argument with |
| flags. Allow pure functions if OEP_PURE_SAME. |
| (fold, nondestructive_fold_binary_to_constant): Use OEP_ONLY_CONST. |
| * tree-cfg.c (phi_alternatives_equal): Fix operand_equal_p flag type. |
| * tree-ssa-dom.c (avail_expr_eq): Use OEP_PURE_SAME. |
| * tree.h (enum operand_equal_flag): New. |
| (operand_equal_p): Update argument list. |
| |
| 2004-05-05 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-operands.c (get_call_flags): Remove. |
| (get_expr_operands): Use call_expr_flags. |
| * tree-alias-common.c (call_may_clobber): Likewise. |
| (call_may_return): Likewise. |
| |
| 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR c/15062 |
| * c-typeck.c (build_asm_expr): Mark the output operands |
| to an asm addressable, if necessary. |
| |
| 2004-05-05 Steven Bosscher <stevenb@suse.de> |
| |
| * Makefile.in (GTFILES): Remove duplicate basic-block.h. |
| |
| 2004-05-04 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (build_addr_expr_with_type): Set TREE_ADDRESSABLE. |
| (gimplify_modify_expr): Turn variable-width assignment into memcpy. |
| * tree-nested.c (convert_local_reference): Set val_only after default. |
| |
| 2004-05-04 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-cfg.c (tree_cfg2vcg): Rename from tree_cfg2dot. Update all |
| users. |
| Emit flowgraph using VCG syntax. |
| * tree-dump.c (dump_files): Rename -fdump-tree-dot to |
| -fdump-tree-vcg. |
| * tree.h (enum tree_dump_index): Rename TDI_dot to TDI_vcg. |
| * doc/invoke.texi: Update documentation to describe |
| -fdump-tree-vcg. |
| |
| 2004-05-03 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * objc/objc-act.c (build_objc_string_object): |
| Add the fields to the purpose of the list for |
| the constructor. |
| |
| 2004-05-03 Richard Henderson <rth@redhat.com> |
| |
| * c-simplify.c (gimplify_if_stmt): Loop for else-if. |
| |
| 2004-05-03 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR optimization/15245 |
| * tree-ssa-phiopt.c (conditional_replacement): Use fold_convert |
| instead of convert. |
| |
| 2004-05-03 Diego Novillo <dnovillo@redhat.com> |
| |
| * gimplify.c (gimplify_compound_lval): Gimplify non-constant |
| array indices into a temporary variable. |
| |
| 2004-04-30 Richard Henderson <rth@redhat.com> |
| |
| * builtins.c (validate_arglist): Don't reject side effects. |
| (simplify_builtin_strcpy): Do reject side effects in length. |
| |
| 2004-04-30 Jeff Law <law@redhat.com> |
| |
| * tree-outof-ssa.c (eliminate_build): Move code which verifies |
| that all of a PHI's arguments do not have a partition if the |
| result does not have a partition from here to... |
| (rewrite_trees): Here. |
| |
| 2004-04-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-cfg.c (factored_computed_goto_label, |
| factored_computed_goto): Removed. |
| (disband_implicit_edges): Unfactor computed gotos without |
| using them. |
| |
| 2004-04-23 Per Bothner <per@bothner.com> |
| |
| * expr.c (expr_wfl_stack): Remove unused global. |
| |
| Pre-patches for future source_location / location_t merge. |
| * tree.h (EXPR_LOCATION, EXPR_HAS_LOCATION): New macros. |
| * expr.c (expand_expr_real, expand_expr_real_1): Use new macros. |
| * gimple-low.c (lower_stmt): Likewise. |
| * gimplify.c (annotate_all_with_locus): Likewise. |
| * print-tree.c (print_node): Likewise. |
| * tree-inline.c (expand_call_inline): Likewise. |
| * tree-pretty-print.c (tree-pretty-print.c): Likewise. |
| * tree-sra.c (scalarize_structure_assignment, emit_scalar_copies, |
| scalarize_call_expr): Likewise. |
| * tree-ssa-pre.c (code_motion): Likewise. |
| |
| 2004-04-23 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * c-simplify.c (gimplify_decl_stmt) [TYPE_DECL]: |
| Do not check the type. |
| |
| 2004-04-22 Jeff Law <law@redhat.com> |
| |
| * tree-into-ssa.c (rewrite_initialize_block_local_data): Mark all |
| arguments as potentially unused. Do not bother to VARRAY_CLEAR |
| the block_defs. Instead abort if we are presented with a block |
| which has a nonempty block_defs. Wrap entire thing inside |
| #ifdef ENABLE_CHECKING. |
| * tree-ssa-dom.c (dom_opt_initialize_block_local_data): Similarly |
| |
| * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Do not mark |
| arguments to bypassed PHIs as needing to be rewritten. |
| |
| 2004-04-21 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/14978 |
| * tree-nested.c (convert_nonlocal_reference): Set val_only when |
| processing any otherwise unhandled expression. |
| |
| 2004-04-21 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-copy.c (cprop_operand): Break out of cprop_into_stmt. |
| (cprop_into_stmt): Use cprop_operand. Rearrange slightly to avoid |
| switch statement inside a loop. |
| |
| * tree-flow.h (var_ann_d): Add "current_def" field. |
| (register_new_def): Lose last argument (currdefs table). |
| * tree-into-ssa.c (currdefs): Remove. |
| (rewrite_into_ssa): Initialize current_def field on each variable's |
| annotation. Remove initialization/clearing of currdefs. |
| (set_value_for, get_value_for): Kill. |
| (rewrite_initialize_block): Update call to register_new_def. |
| (rewrite_stmt): Similarly. |
| (rewrite_finalize_block): Get/set a _DECL node's current |
| definition from its annotation. |
| (get_reaching_def): Similarly. |
| (register_new_def): Similarly. Lose last argument. |
| * tree-ssa-dom.c (currdefs): Remove. |
| (get_value_for, set_value_for): Simplify. |
| (tree_ssa_dominator_optimize): Initialize current_def on each |
| variable's annotation. Remove initialization/clearing of currdefs. |
| (thread_across_edge): Lose unnecessary argument to register_new_def. |
| (record_equivalences_from_phis): Likewise. |
| (register_definitions_for_stmt): Likewise. |
| (restore_currdefs_to_original_value): Get/set a _DECL node's current |
| definition from its annotation. Lose unnecessary "table" argument. |
| (dom_opt_finalize_block): Corresponding changes. |
| |
| * tree-dfa.c (free_df_for_stmt): Release memory back to the GC |
| system immediately. |
| |
| 2004-04-21 Ben Elliston <bje@au.ibm.com> |
| |
| PR middle-end/14730 |
| * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Discard out of bounds |
| case label values and ranges. Saturate case range values that |
| exceed the minimum or maximum permitted value for the controlling |
| expression type to TYPE_MIN_VALUE or TYPE_MAX_VALUE. |
| |
| 2004-04-20 Jeff Law <law@redhat.com> |
| |
| * tree-into-ssa.c (register_new_def): Avoid pushing useless |
| information onto the block local definition stack. |
| |
| * tree-into-ssa.c (register_new_def): If there is no current |
| reaching definition for SSA_NAME_VAR (DEF), then just push |
| SSA_NAME_VAR (DEF) onto the stack. |
| (rewrite_finalize_block): If we pop a _DECL node from the stack, |
| then the _DECL node has no current reaching definition. |
| * tree-ssa-dom.c (restore_currdefs_to_original_value): Similarly. |
| |
| 2004-04-19 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c: Reinstate all changes from 2004-04-12. |
| (lookup_avail_expr): Do not access a hash table object after |
| it has been freed. |
| |
| 2004-04-19 Daniel Berlin <dberlin@dberlin.org> |
| |
| * doc/passes.texi: Add blurb about PRE. |
| |
| 2004-04-19 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * tree-ssa-phiopt.c (conditional_replacement): |
| Catch some more non-gimple. |
| |
| 2004-04-19 Jan Hubicka <jh@suse.cz> |
| |
| * predict.c (combine_predictions_for_bb): Fix pasto. |
| |
| 2004-04-18 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (estimate_num_insn_1): Deal properly with |
| builtin_constant_p and builtin_expect. |
| |
| 2004-04-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * doc/invoke.texi (tree-ter, tree-lrs): Document options. |
| |
| 2004-04-17 Paul Brook <paul@codesourcery.com> |
| |
| * Makefile.in: Set GMPLIBS and GMPINC. |
| * configure.ac: Add GMPLIBS and GMPINC. |
| * configure: Regenerate. |
| |
| 2004-04-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| * common.opt (ftree-lrs): New common option. |
| * flags.h (flag_tree_live_range_split): New flag. |
| * opts.c (decode_options): Turn on LRS by default. |
| (common_handle_option): Set LRS flag to specified value. |
| * toplev.c (flag_tree_live_range_split): Initialize. |
| (lang_independent_options f_): Add tree-lrs. |
| * tree-outof-ssa.c (rewrite_out_of_ssa): Use LRS flag. |
| * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't coalesce |
| variables if one is a hardware register. Coalesce inlined user vars. |
| (rename_ssa_copies): Scan blocks first, then PHI nodes. |
| |
| 2004-04-15 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * builtins.c (fold_builtin_isascii): Do not return non-gimple |
| code when we are in gimple form. |
| (fold_builtin_isdigit): Do not return non-gimple |
| code when we are in gimple form. |
| |
| * c-simplify.c (gimplify_decl_stmt): Handle TYPE_DECL. |
| |
| 2004-04-14 Paul Brook <paul@codesourcery.com> |
| |
| * Makefile.in (GMPLIBS, GMPINC): Don't set. |
| * configure.ac: Remove checks for GMP. |
| * configure: Regenerate. |
| |
| 2004-04-13 Diego Novillo <dnovillo@redhat.com> |
| |
| * fold-const.c, tree-ssa-ccp.c, tree-ssa-dom.c, |
| tree-ssa.c, tree.c: Replace all uses of TREE_UNSIGNED with |
| TYPE_UNSIGNED or DECL_UNSIGNED. |
| |
| * c-semantics.c (build_stmt): Don't check type nodes for |
| side effects. |
| |
| 2004-04-13 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c: Revert all changes from 2004-04-12. |
| |
| 2004-04-12 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (struct expr_hash_elt): Add new field for hash value. |
| (initialize_hash_element): New LHS argument. Callers changed. |
| Initialize the hash value field. |
| (remove_local_expressions_from_table): Use htab_remove_elt_with_hash. |
| (update_rhs_and_lookup_avail_expr): Similary. |
| (lookup_avail_expr): Use htab_find_slot_with_hash. Simplify slightly |
| and pass LHS to initialize_hash_element. |
| (record_cond): Also use htab_find_slot_with_hash. Initialize the |
| hash table entry with initialize_hash_element. |
| (avail_expr_eq): Use the saved hash value rather than calling into |
| the hash functions again. |
| |
| * tree-ssa-dom.c (tree_ssa_dominator_optimize): Slightly rearrange |
| code to clear tables before each iteration to be clearer. |
| |
| * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Use |
| DEF_OPS and VDEF_OPS instead of STMT_DEF_OPS and STMT_VDEF_OPS. |
| |
| 2004-04-12 Diego Novillo <dnovillo@redhat.com> |
| |
| * flags.h (flag_tree_loop): Remove. Update all users. |
| * opts.c (common_handle_option) <OPT_ftree_loop_optimize>: Remove. |
| * toplev.c (f_options): Remove -ftree-loop-optimize. |
| * tree-optimize.c (init_tree_optimization_passes): Don't |
| schedule pass_loop. |
| * tree-ssa-loop.c (tree_ssa_loop_opt): Remove. |
| (gate_loop): Remove. |
| * doc/invoke.texi: Remove documentation for -ftree-loop-optimize. |
| |
| 2004-04-12 Diego Novillo <dnovillo@redhat.com> |
| |
| * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): Remove. |
| * c-semantics.c (expand_stmt_toplev): Remove. |
| * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove. |
| (LANG_HOOKS_RTL_EXPAND_START): Remove. |
| (LANG_HOOKS_RTL_EXPAND_STMT): Remove. |
| (LANG_HOOKS_RTL_EXPAND_END): Remove. |
| * langhooks.h (struct lang_hooks_for_rtl_expansion): Remove. |
| (struct lang_hooks): Update. |
| * tree-optimize.c (tree_rest_of_compilation): Don't call |
| lang_hooks.rtl_expand.start nor lang_hooks.rtl_expand.end. |
| Call expand_expr_stmt_value instead of |
| lang_hooks.rtl_expand.stmt. |
| * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): Remove. |
| |
| |
| 2004-04-12 Richard Henderson <rth@redhat.com> |
| |
| * c-common.c (c_do_switch_warnings): Use EXPR_LOCUS instead |
| of STMT_LINENO. |
| (c_walk_subtrees): Likewise. |
| (c_estimate_num_insns_1): Remove FILE_STMT. |
| * c-common.def (FILE_STMT): Remove. |
| * c-common.h (FILE_STMT_FILENAME_NODE): Remove. |
| (FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P): Remove. |
| (c_common_stmt_codes): Remove FILE_STMT. |
| * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of STMT_LINENO. |
| * c-parse.in (lineno_stmt, lineno_label): Likewise. |
| * c-pretty-print.c (pp_c_statement): Remove FILE_STMT. |
| * c-semantics.c (add_stmt): Don't emit FILE_STMT. Do set |
| EXPR_LOCUS if not yet set. |
| (finish_stmt_tree): Don't set line for end of function. |
| (build_stmt): Set EXPR_LOCUS instead of STMT_LINENO. |
| (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO. |
| * c-simplify.c (c_gimplify_stmt): Remove FILE_STMT. |
| (gimplify_block): Save and restore entire locus. |
| (stmt_expr_last_stmt): Use EXPR_LOCUS instead of STMT_LINENO. |
| * doc/c-tree.texi (FILE_STMT, FILE_STMT_FILENAME, STMT_LINENO): Remove. |
| |
| 2004-04-12 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (true_exprs, false_exprs): Kill. |
| (struct expr_hash_elt): New structure for the expression hash table. |
| (struct dom_walk_block_data): Kill block local true_exprs and |
| false_exprs. |
| (get_eq_expr_value): One less local varray argument. Fix prototype. |
| Use record_cond rather than record_cond_is_{true,false}. |
| (true_false_expr_hash, true_false_expr_eq): Kill. |
| (record_cond_is_true, record_cond_is_false): Collapse into ... |
| (record_cond): New function. |
| (tree_ssa_dominator_optimize): Kill references to true_exprs and |
| false_exprs. Use "free" as the free function for the avail_exprs |
| hash table. |
| (dom_opt_initialize_block_local_data): No longer initialize |
| block local true/false expressions. |
| (initialize_hash_element): New function. |
| (remove_local_expressions_from_table): Use initialize_hash_element. |
| (update_rhs_and_lookup_avail_expr): Similarly. |
| (dom_opt_finalize_block): Record true/false expressions into the |
| main avail_expr hash table. Unwind main hash table appropriately. |
| Use record_cond rather than record_cond_is_{true,false}. |
| (record_equivalences_from_incoming_edge): Pass block local avail_exprs |
| varray instead of block local true/false varrays to get_eq_expr_value. |
| (dump_dominator_optimization_stats): Update to reflect that the |
| true/false expression hash tables are gone. |
| (lookup_avail_expr): Simplify slightly now that we only have one |
| expression hash table. |
| (avail_expr_hash, avail_expr_eq): Generalize slightly to handle new |
| hash table entry structure and having true/false expression information |
| in the available expression hash table. |
| |
| 2004-04-09 Jeff Law <law@redhat.com> |
| |
| * tree-ssa_dom.c (register_definitions_for_stmt): Accept a statement |
| annotation rather than the statement itself. Callers changed. |
| Use [V]DEF_OPS rather than STMT_[V]DEF_OPS. |
| * tree-ssa-operands.c (get_stmt_operands): Slightly reorganize to |
| avoid unnecessary calls to stmt_ann. |
| * tree-ssa-pre.c (expr_phi_insertion): Get the statement's annotation |
| and use [V]USE_OPS rather than STMT_[V]USE_OPS. |
| (same_e_version_phi_result): Similarly |
| (process_left_occs_and_kills): Similarly for [V]DEF_OPS and |
| STMT_[V]DEF_OPS. |
| * tree-ssa.c (replace_immediate_uses): Similarly. |
| (verify_ssa): Similarly. Also verify that VDEF_OPs uses are dominated |
| by their sets. |
| |
| * tree-into-ssa.c (insert_phi_nodes_for): Use passed in worklist |
| varray instead of allocated one for every variable we rewrite into |
| SSA form. |
| (insert_phi_nodes_1): Pass worklist varray from caller to |
| insert_phi_nodes_for. |
| (insert_phi_nodes): Allocate a worklist for insert_phi_nodes_for |
| and pass it to insert_phi_nodes_1. |
| |
| 2004-04-08 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (nonzero_vars): Turn it into a bitmap. |
| (tree_ssa_dominator_optimize): Update initialization, clearing and |
| freeing of nonzero_vars. |
| (restore_nonzero_vars_to_original_value): New function. |
| (dom_opt_finalize_block): Use it. |
| (record_var_is_nonzero): Only record the variable into the block |
| local nonzero vars array if it did not already have a nonzero property. |
| (lookup_avail_expr): Lookup the nonzero property of an SSA_NAME with |
| a bitmap test. |
| |
| * fold-const.c (fold): Remove attempt to share code which |
| simplifies tests against the highest/lowest value of a |
| range between the main folder and the nondestructive folder. |
| |
| 2004-04-08 Brian Booth <bbooth@redhat.com> |
| Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-into-ssa.c (invalidate_name_tags): New function. |
| Mark aliases of invalidated name tags for renaming. |
| (rewrite_into_ssa): Call invalidate_name_tags. |
| |
| 2004-04-07 Diego Novillo <dnovillo@redhat.com> |
| |
| * gimplify.c (gimplify_call_expr): Remove argument POST_P. |
| Update all callers. |
| Don't use POST_P when gimplifying the call expression. |
| |
| 2004-04-07 Diego Novillo <dnovillo@redhat.com> |
| |
| * doc/tree-ssa.texi: Add documentation for the dominator |
| walker. |
| |
| 2004-04-07 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-outof-ssa.c: Update comments and reformat for legibility. |
| * tree-ssa-copyrename.c: Update comments and reformat for legibility. |
| * tree-ssa-live.c: Update comments and reformat for legibility. |
| * tree-ssa-live.h: Update comments and reformat for legibility. |
| |
| 2004-04-07 Diego Novillo <dnovillo@redhat.com> |
| |
| * gimplify.c (gimplify_call_expr): Don't use POST_P when |
| gimplifying CALL_EXPR arguments. |
| |
| 2004-04-06 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-dfa.c: Update comments and reformat for legibility. |
| (find_vars_r): Remove special casing of MODIFY_EXPR and |
| simplify logic. |
| (compute_reached_uses, compute_reaching_defs, remove_decl, |
| find_decl_location): Remove. |
| (discover_nonconstat_array_refs_r, |
| discover_nonconstant_array_refs): Move ... |
| * tree-outof-ssa.c: ... here. |
| |
| 2004-04-05 Richard Henderson <rth@redhat.com> |
| |
| * tree-simple.c (is_gimple_min_invariant): Disallow &a+i. |
| * tree-ssa-ccp.c (maybe_fold_stmt_addition): Rename from |
| maybe_fold_stmt_plus. Handle MINUS_EXPR. |
| (fold_stmt_r): Pass MINUS_EXPR to it. |
| |
| 2004-04-05 Ben Elliston <bje@au.ibm.com> |
| |
| * Makefile.in (OBJS-common): Remove tree-browser.o. |
| (cc1): Depend on @TREEBROWSER@ and include in list of objects. |
| * configure.ac: Add --enable-tree-browser option. |
| * configure: Rebuild. |
| |
| 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * tree-ssa-ccp.c (fold_stmt_r): Fix whitespace formatting. |
| (set_rhs): Likewise. |
| |
| 2004-04-03 Paolo Bonzini <bonzini@gnu.org> |
| Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-alias-common.c (find_func_aliases): Support |
| assigning to BIT_FIELD_REFs. |
| * tree-cfg.c (verify_expr): Don't allow assign to |
| a register with BIT_FIELD_REF. |
| * tree-dfa.c (get_virtual_var): Add consistency check on |
| the shape of expected VARs. |
| (discover_nonconstant_array_refs_r): Go through BIT_FIELD_REFs. |
| * tree-simple.c: Document that BIT_FIELD_REFs are valid lvalues. |
| * tree-ssa.c (set_is_used): Go through BIT_FIELD_REFs. |
| * tree-ssa-operands.c (get_expr_operands): Mark VA_ARG_EXPR |
| nodes as making volatile references. |
| |
| 2004-04-02 Fariborz Jahanian <fjahanian@apple.com> |
| |
| * c-convert.c (convert): Make convert work when converting |
| to compatible types across translation unit. |
| |
| 2004-04-02 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * Makefile.in (stage2_build): Remove support for |
| rebuilding libbanshee. |
| * configure.ac: Remove support for rebuilding |
| libbanshee. |
| * config.gcc (powerpc-*-darwin*): Do not rebuild |
| libbanshee. |
| |
| 2004-04-01 Kazu Hirata <kazu@cs.umass.edu> |
| |
| * tree-ssa-forwprop.c: Add a comment about forward propagation |
| of TRUTH_NOT_EXPR. |
| |
| 2004-04-01 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-optimize.c (tree_rest_of_compilation): Fix typo in |
| setting of in_gimple_form. |
| |
| 2004-04-01 Jeff Law <law@redhat.com> |
| |
| * fold-const.c (fold_relational_hi_lo): Do not return non-gimple |
| code when we are in gimple form. |
| * tree-optimize.c (tree_rest_of_compilation): Note when we are in |
| gimple form. |
| * tree-ssa-ccp.c (ccp_fold): Tighten tests on return value from |
| nondestructive_fold_{unary,binary}_to_constant. |
| * tree.h (in_gimple_form): Declare. |
| |
| * tree-ssa.c (ssa_remove_edge): Correct looping structure. |
| (ssa_redirect_edge): Similarly |
| |
| 2004-03-30 Brian Booth <bbooth@redhat.com> |
| |
| * tree-pretty-print.c (dump_vops): Add flags argument and |
| propagate it to dump_generic_node calls. |
| (dump_generic_node): Update dump_vops call. |
| |
| 2004-03-29 Diego Novillo <dnovillo@redhat.com> |
| |
| * configure.ac: Emit confirmation messages for libbanshee. |
| * configure: Regenerate. |
| |
| 2004-03-29 Jan Hubicka <jh@suse.cz> |
| |
| PR 14756 |
| * cgraphunit.c (cgraph_decide_inlining): Rewrite handling of |
| always_inline functions. |
| |
| 2004-03-28 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (expand_call_inline): Remove fixme introduced by |
| nested function patch. |
| |
| 2004-03-26 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-ssa-operands.c (get_stmt_operands): Remove always-true |
| predicate. |
| |
| * tree-ssa-alias.c (maybe_create_global_var): Create |
| .GLOBAL_VAR if there are no call-clobbered variables. |
| * tree-ssa-operands.c (get_stmt_operands): Add call-clobbering |
| VDEFs for asm ("":::"memory") if there are call-clobbered |
| variables or if .GLOBAL_VAR has been created. |
| |
| |
| 2004-03-26 Diego Novillo <dnovillo@redhat.com> |
| |
| * passes.c (rest_of_compilation): Re-enable .01.rtl |
| dumps. |
| |
| 2004-03-25 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-pretty-print.c (dump_generic_node) <WITH_RECORD_EXPR>: Remove. |
| * tree-inline.c (estimate_num_insns_1) <WITH_RECORD_EXPR>: Remove. |
| * fold-const.c (fold_relational_hi_lo): Change type of argument |
| 'type_p' to const tree and rename it to 'type'. Update |
| all callers. |
| |
| 2004-03-25 Diego Novillo <dnovillo@redhat.com> |
| |
| * Makefile.in (C_AND_OBJC_OBJS): Remove c-call-graph.o |
| (c-call-graph.o): Remove. |
| * c-call-graph.c: Remove. |
| * c-tree.h (print_call_graph): Remove. |
| (debug_call_graph): Remove. |
| * tree-cfg.c: Update/add comments everywhere. |
| (pre_insert_on_edge): Rename from bsi_insert_on_edge_immediate. |
| * tree-flow.h (build_tree_cfg): Make static. |
| (tree_cfg2dot): Likewise. |
| (verify_stmt): Likewise. |
| * tree-ssa-pre.c (insert_one_operand): Call pre_insert_on_edge. |
| |
| 2004-03-25 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-ssa-alias.c (struct alias_info): Change type of field |
| 'num_references' to varray_type. Update all users. |
| |
| 2004-03-24 Jeff Law <law@redhat.com> |
| |
| * c-mudflap (mflang_flush_calls): Use push_scope/pop_scope instead |
| of pushlevel and poplevel. |
| |
| 2004-03-23 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/14694 |
| * c-common.c (handle_alias_attribute): Mark aliased variables |
| to be TREE_STATIC. |
| |
| 2004-03-23 Jeff Law <law@redhat.com> |
| |
| * tree-into-ssa.c (register_new_def): Lose unnecessary VAR argument, |
| instead derive VAR from DEF argument. |
| (rewrite_initialize_block, rewrite_stmt, rewrite_operand): Corresponding |
| changes. |
| * tree-ssa-dom.c (register_definitions_for_stmt): Corresponding changes. |
| (record_equivalences_from_phis): Likewise. |
| (restore_currdefs_to_original_value): New, extracted from ... |
| (dom_opt_finalize_block): Use restore_currdefs_to_original_value. |
| Restore currdefs after threading across a true edge. |
| (thread_across_edge): Register new defintions when we walk through |
| a PHI node or real statement. |
| * tree-flow.h (register_new_def): Updated. |
| |
| 2004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-ssa-dce.c (find_obviously_necessary_stmts, |
| perform_tree_ssa_dce): Do not remove loops. |
| |
| 2004-03-19 Diego Novillo <dnovillo@redhat.com> |
| |
| PR optimization/14643 |
| * tree-ssa-alias.c (group_aliases_into): Don't add a variable |
| to its own may-alias set. |
| (create_alias_map_for): New. |
| (setup_pointers_and_addressables): Call it. |
| Fix allocation of AI->ADDRESSABLE_VARS and AI->POINTERS. |
| If there are no addressable variables and more than one |
| dereferenced pointers, add type tags to the ADDRESSABLE_VARS |
| array. |
| (get_tmt_for): Add comment about using alias set equality when |
| checking for existing tags. |
| |
| 2004-03-19 Kazu Hirata <kazu@cs.umass.edu> |
| |
| * fold-const.c (fold_relational_const): Remove dead code. |
| |
| 2004-03-19 Dale Johannesen <dalej@apple.com> |
| |
| * tree-ssa-dse.c (dse_optimize_stmt): Redirect uses feeding into |
| a deleted store correctly. |
| |
| 2004-03-19 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Fix typo. |
| Eliminate unnecessary test of VAL. |
| |
| * tree-dfa.c (find_hidden_use_vars): Also look inside the |
| PENDING_SIZES list for hidden uses. |
| * tree-optimize.c (tree_rest_of_compilation): Expand used variables |
| before setting up parameters. |
| * tree-ssa-copyrename.c (rename_ssa_copies): Do nothing for copies |
| where the LHS has a hidden use. |
| |
| 2004-03-18 Diego Novillo <dnovillo@redhat.com> |
| |
| * Makefile.in (TREE_FLOW_H): Reformat. |
| (OBJS-common): Add tree-into-ssa.o and tree-outof-ssa.o. |
| (tree-ssa.o): Remove dependency on domwalk.h and tree-ssa-live.h |
| (tree-into-ssa.o): New. |
| (tree-outof-ssa.o): New. |
| (GTFILES): Remove tree-ssa.c. |
| (gt-tree-ssa.h): Remove. |
| * tree-into-ssa.c: New file. |
| Move all the functions used to rename into SSA from tree-ssa.c. |
| Update/add comments. |
| Remove unused variables and structures. |
| Don't use GGC for memory allocation. |
| * tree-outof-ssa.c: New file. |
| Move all the functions used to rename out of SSA from |
| tree-ssa.c. |
| Update/add comments. |
| * tree-ssa-alias.c (compute_points_to_and_addr_escape): Add |
| bibliographic reference. |
| |
| 2004-03-18 Jeff Law <law@redhat.com> |
| |
| * Makefile.in (tree-tailcall.o): Depend on langhooks.h. |
| * tree-tailcall.c: Include langhooks.h. |
| (find_tail_calls): Use types_compatible_p langhook instead of |
| equality test of TYPE_MAIN_VARIANT. |
| |
| * tree-nested.c (get_chain_decl): Mark the chain decl with |
| TREE_NO_WARNING. |
| |
| 2004-03-18 Devang Patel <dpatel@apple.com> |
| |
| * tree-ssa-live.c (new_tree_live_info): Set num_blocks to |
| last_basic_block instead of n_basic_blocks. |
| (calculate_live_on_entry): Use last_basic_block instead of |
| n_basic_blocks. |
| (calculate_live_on_exit): Same. |
| |
| 2004-03-17 Jeff Law <law@redhat.com> |
| |
| * tree-tailcall.c (find_tail_calls): Tighten test for tail recursion. |
| |
| 2004-03-17 Diego Novillo <dnovillo@redhat.com> |
| |
| PR optimization/14511 |
| * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not |
| ignore read-only variables. |
| (may_alias_p): Fix pointer-to-var calculation when 'var' is an |
| array. |
| |
| 2004-03-17 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa.c (rewrite_into_ssa, compute_global_livein): Fix. |
| |
| 2004-03-17 Paolo Bonzini <bonzini@gnu.org> |
| |
| * builtins.c (expand_builtin_constant_p, |
| purge_builtin_constant_p): Remove. |
| (expand_builtin): Expand __builtin_constant_p to zero. |
| * function.c (struct function): Remove calls_constant_p. |
| (current_function_calls_constant_p): Remove. |
| * passes.c (rest_of_handle_gcse): Do not run |
| purge_builtin_constant_p. |
| * rtl.def (CONSTANT_P_RTX): Die die die. |
| |
| * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX. |
| * expr.c (emit_move_insn): Likewise. |
| * gcse.c (want_to_gcse_p, gcse_constant_p): Likewise. |
| * genrecog.c (validate_pattern): Likewise. |
| * recog.c (immediate_operand): Likewise. |
| * rtl.h (CONSTANT_P): Likewise. |
| * simplify-rtx.c (simplify_rtx): Likewise. |
| * config/alpha/alpha.c (input_operand): Likewise. |
| * config/arm/arm.c (THUMB_LEGITIMATE_CONSTANT_P): Likewise. |
| * config/c4x/c4x.c (const_operand): Likewise. |
| * config/cris/cris.c (cris_gotless_symbol, |
| cris_got_symbol): Likewise. |
| * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Likewise. |
| * config/ia64/ia64.c (gr_reg_or_5bit_operand, |
| gr_reg_or_6bit_operand, gr_reg_or_8bit_operand, |
| gr_reg_or_8bit_adjusted_operand, |
| gr_reg_or_8bit_and_adjusted_operand, |
| gr_reg_or_14bit_operand, gr_reg_or_22bit_operand, |
| shift_count_operand, shift_32bit_count_operand): Likewise. |
| * config/m32r/m32r.c (move_src_operand): Likewise. |
| * config/mips/mips.c (mips_const_insns): Likewise. |
| * config/mmix/mmix.c (mmix_constant_address_p): Likewise. |
| * config/pa/pa.c (move_src_operand): Likewise. |
| * config/rs6000/rs6000.c (input_operand): Likewise. |
| * config/sparc/sparc.c (input_operand): Likewise. |
| * config/v850/v850.c (movsi_source_operand): Likewise. |
| * config/xtensa/xtensa.c (move_operand, |
| xtensa_emit_move_sequence): Likewise. |
| * config/ia64/ia64.h (PREDICATE_CODES): Do not mention CONSTANT_P_RTX. |
| * config/pa/pa.h (PREDICATE_CODES): Likewise. |
| |
| 2004-03-16 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-dump.c (struct dump_option_value_info): Add TDF_UID. |
| * tree.h (TDF_UID): Define. |
| * doc/invoke.texi: Document -ftree-dump-...-uid. |
| * tree-pretty-print.c (debug_generic_expr): Add TDF_UID. |
| (debug_generic_stmt): Likewise. |
| (dump_decl_name): New function. |
| (dump_generic_node): Call it. |
| (print_declaration): Add new argument 'flags'. Update all users. |
| (print_struct_decl): Likewise. |
| * tree-alias-ander.c, tree-cfg.c, tree-dfa.c, tree-mudflap.c, |
| tree-nrv.c, tree-sra.c, tree-ssa-alias.c, tree-ssa-ccp.c, |
| tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-dse.c, |
| tree-ssa-forwprop.c, tree-ssa-operands.c, tree-ssa-pre.c, |
| tree-ssa.c, tree-tail-call.c: Call print_generic_* with |
| 'dump_flags'. |
| |
| 2004-03-16 Dale Johannesen <dalej@apple.com> |
| |
| * Makefile.in (tree-ssa-phiopt.o): add langhooks.h dependency. |
| (tree-nrv.o): Ditto. |
| (tree-ssa-copy.o): Ditto. |
| (tree-ssa-dom.o): Ditto. |
| (tree-ssa-ccp.o): Ditto. |
| * c-common.c: Add #include hashtab.h. |
| (c_type_hash): New. |
| (c_common_get_alias_set): Handle multiple type nodes referring |
| to "the same" type, currently for C90 only. |
| * c-decl.c (current_file_decl): Move to toplev.c. |
| * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to |
| c_types_compatible_p. |
| (c_types_compatible_p): New. |
| * c-tree.h (c_types_compatible_p): New declaration. |
| * c-typeck.c (tagged_types_tu_compatible_p): Allow for |
| compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE. |
| * gimplify.c (canonicalize_addr_expr): Use types_compatible_p langhook. |
| (cpt_same_type): Ditto. |
| * langhooks-def.h (lhd_types_compatible_p): New declaration. |
| LANG_HOOKS_TYPES_COMPATIBLE_P: New. |
| * langhooks.c (lhd_types_compatible_p): New. |
| * langhooks.h (struct lang_hooks): Add types_compatible_p. |
| * stmt.c (tail_recursion_args): Use types_compatible_p langhook. |
| * toplev.c (current_file_decl): New, moved from c-decl.c. |
| * tree-nrv.c: Include langhooks.h. |
| (tree_nrv): Use types_compatible_p langhook. |
| * tree-ssa-ccp.c: Include langhooks.h. |
| (maybe_fold_offset_to_array_ref): Use types_compatible_p langhook. |
| (maybe_fold_offset_to_component_ref): Ditto (2 places). |
| (fold_stmt_r): Make sure rhs of COMPONENT_REF is in lhs type. |
| * tree-ssa-copy.c: Include langhooks.h. |
| (cprop_into_stmt): Use types_compatible_p langhook. |
| * tree-ssa-dom.c: Include langhooks.h. |
| (avail_expr_p): Use types_compatible_p langhook. |
| * tree-ssa-phiopt.c: Include langhooks.h. |
| (conditional_replacement): Use types_compatible_p langhook. |
| * tree-ssa.c (tree_ssa_useless_type_conversion_1): Use |
| types_compatible_p langhook. |
| * tree.h (current_file_decl): New declaration. |
| |
| 2004-03-16 Dale Johannesen <dalej@apple.com> |
| |
| PR optimization/14498 |
| * gimplify.c (copy_if_shared_r): Mark VA_ARGS_EXPRs as volatile. |
| (mark_decls_volatile_r): Moved higher in file (unchanged). |
| |
| 2004-03-16 Daniel Berlin <dberlin@dberlin.org> |
| |
| PR optimization/14562 |
| * tree-ssa-pre.c (generate_expr_as_of_bb): Don't use names_match_p. |
| (generate_vops_as_of_bb): Ditto. |
| |
| 2004-03-12 Diego Novillo <dnovillo@redhat.com> |
| |
| PR optimization/14553 |
| * tree-ssa.c (replace_immediate_uses): Call propagate_value to |
| update operands. |
| |
| 2004-03-12 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-alias-common.c (create_alias_vars): Add #if |
| HAVE_BANSHEE around test for PTA_ANDERSEN. |
| |
| 2004-03-11 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-dfa.c (struct walk_state): Remove fields 'is_store' and |
| 'is_indirect_ref'. Update all users. |
| * tree-flow.h (struct var_ann_d): Remove fields 'is_stored', |
| 'is_dereferenced_store' and 'is_dereferenced_load'. Update |
| all users. |
| * tree-simple.c (get_base_address): Handle BIT_FIELD_REF. |
| * tree-ssa-alias.c (struct alias_info): Add fields |
| 'written_vars', 'dereferenced_ptrs_store' and |
| 'dereferenced_ptrs_load'. |
| (init_alias_info): Initialize them. |
| (delete_alias_info): Free them. |
| (find_ptr_dereference): New. |
| (ptr_is_dereferenced_by): Call it. |
| Add new argument 'is_store'. Set to true if the |
| expression is an indirect store operation. |
| (compute_points_to_and_addr_escape): If the statement |
| makes a store, load or write operation, update the |
| corresponding bitmap. |
| (compute_flow_insensitive_aliasing): Test the |
| 'written_vars' bitmap to determine if alias sets should |
| be computed. |
| (setup_pointers_and_addressables): Always assume that |
| volatile pointers and hidden pointers have been used in a |
| memory store operation. |
| * tree-ssa-operands.c (add_stmt_operand): Do add an |
| operand for may-aliased variables before computing |
| aliases. |
| |
| 2004-03-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-optimize.c (init_tree_optimization_passes): Move |
| pass_tail_recursion and pass_ch after pass_may_alias. |
| * tree-ssa-loop.c (mark_defs_for_rewrite): Mark type tags |
| for rewriting. |
| * tree-ssa.c (mark_def_sites): Process the operand of a |
| VDEF before the result. |
| |
| 2004-03-11 Richard Henderson <rth@redhat.com> |
| |
| PR 14204 |
| * tree-ssa.c (warn_uninit): Don't warn for hard register variables. |
| |
| 2004-03-10 Richard Henderson <rth@redhat.com> |
| |
| * tree-simple.c (get_base_var, get_base_decl): Remove. |
| * tree-simple.h: Likewise. |
| * tree-dfa.c (discover_nonconstant_array_refs_r): Use get_base_address. |
| * tree-ssa-alias.c (ptr_is_dereferenced_by): Likewise. |
| (add_pointed_to_var, is_escape_site): Likewise. |
| * tree-ssa-ccp.c (get_default_value): Expect only SSA_NAME and DECLs. |
| * tree-ssa-operands.c (add_stmt_operand): Likewise. |
| (note_addressable): Use get_base_address. |
| * tree-ssa-dce.c (need_to_preserve_store): Expect only SSA_NAME. |
| * tree-ssa.c (set_is_used): Inline get_base_decl. |
| |
| 2004-03-10 Richard Henderson <rth@redhat.com> |
| |
| * tree-nested.c (convert_nonlocal_reference): Clear TREE_INVARIANT |
| on modified ADDR_EXPRs. |
| |
| 2004-03-10 Andrew Pinski <apinski@apple.com |
| |
| PR c/14475 |
| * c-decl.c (check_bitfield_type_and_width): Check for null |
| lang_type_specific when check the precision of an enum. |
| |
| 2004-03-09 Andrew Pinski <apinski@apple.com> |
| |
| * Makefile.in (tree-ssa-forwprop.o): Fix the dependences. |
| |
| 2004-03-09 Jeff Law <law@redhat.com> |
| |
| * tree-flow-inline.h (may_propagate_copy): Do not allow propagation of |
| a constant for a virtual operand. |
| |
| 2004-03-08 Richard Henderson <rth@redhat.com> |
| |
| * calls.c (initialize_argument_information): Add |
| parameter may_tail_call. Set to false for invisible |
| pass-by-reference arguments that require stack |
| allocation. |
| Update all users. |
| |
| 2004-03-07 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c: (get_eq_expr_value): Fix typo when comparing a |
| boolean against a constant. |
| * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Do not |
| record the same SSA_NAME more than once. Only record the SSA_NAME |
| tested, not the COND_EXPR. |
| (substitute_single_use_vars): Substitute booleans which are |
| set from a TRUTH_NOT_EXPR even if they have more than one use site. |
| |
| 2004-03-05 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dce.c (remove_dead_stmt): Clear PENDING_STMT after |
| redirect_edge_and_branch call. |
| |
| * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Also |
| record COND_EXPRs with single use vars defined by SSA_NAME + CONST |
| expressions. |
| (substitute_single_use_vars): Corresponding changes to rewrite |
| COND_EXPRs using single use vars defined by SSA_NAME + CONST |
| expressions. |
| |
| 2004-03-05 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * config/s390/s390.c (s390_expand_movstr): Do not use |
| expand_exit_loop_top_cond, manually copy loop header. |
| (s390_expand_clrstr): Likewise. |
| (s390_expand_cmpmem): Likewise. |
| |
| 2004-03-04 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-ssa-alias.c (compute_flow_sensitive_aliasing): If |
| a name tag has been marked call-clobbered, also mark the |
| corresponding type tag. |
| |
| 2004-03-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-ssa-loop-live.c (coalesce_tpa_members): Update the root |
| variable of the partition. |
| |
| 2004-03-04 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dce.c (remove_dead_stmt): Redirect an existing edge |
| rather than deleting the old ones and creating a new one when |
| removing a dead conditional. |
| |
| * fold-const.c (fold): When rebuilding the expression after a |
| call to fold_relational_hi_lo, make sure to convert the type of |
| the second argument to the type of the first. |
| |
| 2004-03-04 Diego Novillo <dnovillo@redhat.com> |
| |
| * cgraphunit.c (cgraph_optimize): Do not do memory release |
| check if there have been errors. |
| |
| 2004-03-03 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-phiopt.c (conditional_replacement): Clear EDGE_TRUE_VALUE |
| and EDGE_FALSE_VALUE on the remaining edge after eliminating a PHI. |
| |
| 2004-03-03 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-ssa-copyrename.c (gate_copyrename): Really check it in. |
| * tree-ssa.c (create_temp): Use DECL_ARTIFICIAL from original decl. |
| |
| 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-tailcall.c (struct tailcall): Remove return_block and return_bsi |
| fields, add m and a fields. |
| (m_acc, a_acc): New. |
| (find_tail_calls): Find tail calls on whose results simple operations |
| are performed. |
| (independent_on_stmt_p, process_assignment, |
| propagate_through_phis, adjust_accumulator_values, |
| adjust_return_value): New. |
| (eliminate_tail_call): Update the accumulators if needed. |
| (optimize_tail_call): Do not create phis. |
| (tree_optimize_tail_calls): Create phis and accumulators as needed. |
| Adjust return values. |
| |
| 2004-03-02 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-ssa-operands.c (get_expr_operands): Mark CALL_EXPRs |
| with has_volatile_ops if aliases haven't been computed yet. |
| (add_stmt_operand): Use 'true' instead of '1'. |
| |
| 2004-03-02 Diego Novillo <dnovillo@redhat.com> |
| |
| PR optimization/14266 |
| * tree-ssa-alias.c (create_global_var): Mark GLOBAL_VAR for |
| renaming. |
| |
| 2004-03-01 Richard Henderson <rth@redhat.com> |
| |
| * tree.c (associative_tree_code): Remove MINUS_EXPR, LSHIFT_EXPR, |
| RSHIFT_EXPR. |
| * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Use |
| is_gimple_min_invariant and is_gimple_var. Handle minus_expr |
| specially. |
| |
| 2004-03-01 Richard Henderson <rth@redhat.com> |
| |
| * cfgbuild.c (rtl_make_eh_edge): Rename from make_eh_edge. |
| * basic-block.h, except.c: Update decl and uses. |
| |
| 2004-03-01 Frank Ch. Eigler <fche@redhat.com> |
| |
| * doc/passes.texi: Add information about mudflap. |
| |
| 2004-03-01 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR middle-end/13066 |
| * fold-const (fold): Call fold_convert when building |
| a TRUTH_*_EXPR tree. |
| |
| 2004-03-01 Andrew MacLeod <amacleod@redhat.com> |
| |
| * common.opt : Add tree-copyrename option. Remove duplicate tree-sra. |
| * flags.h (flag_tree_copyrename): Declare. |
| * opts.c (decode_options): Turn copyrename on by default at -O. |
| (common_handle_option): Handle -ftree-copyrename. |
| * toplev.c (flag_tree_copyrename): Declare. |
| * tree-ssa-copyrename.c (gate_copyrename): New. Check flag. |
| (pass_rename_ssa_copies): Initialize with gated routine. |
| (lang_independent_options f_): Add tree-copyrename. |
| * doc/invoke.texi: Add -fdump-tree-copyrename and -ftree-copyrename. |
| * doc/passes.texi: Add blurb for copy renaming. |
| |
| 2004-03-01 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (true_false_expr_hash): Update comments slightly. |
| (true_false_expr_eq): Update comments slightly. Avoid using |
| operand_equal_p, instead check the code and operands directly. |
| |
| 2004-03-01 Andrew MacLeod <amacleod@redhat.com> |
| |
| * Makefile.in (tree-ssa-copyrename.o): New object. |
| * timevar.def (TV_TREE_COPY_RENAME): New time variable. |
| * tree-optimize.c (init_tree_optimization_passes): Add copy rename |
| pass. |
| * tree-pass.h (pass_rename_ssa_copies): New pass structure. |
| * tree-sra.c (lookup_scalar): Copy DECL_ARITIFICIAL flag from base. |
| * tree-ssa-copyrename.c : New file. |
| (copy_rename_partition_coalesce): Coalesce partitions for renaming. |
| (rename_ssa_copies): Find renamable copies. |
| (pass_rename_ssa_copies): Initialize. |
| * tree-ssa-live.c (register_ssa_partition): Move to tree-ssa-live.h. |
| * tree-ssa-live.h (register_ssa_partition): Moved from tree-ssa-live.c. |
| |
| 2004-02-29 David Edelsohn <edelsohn@gnu.org> |
| |
| * doloop.c (doloop_optimize): Increment n_iterations if loop->top |
| present. |
| |
| 2004-02-29 Diego Novillo <dnovillo@redhat.com> |
| |
| * gimple-low.c (pass_remove_useless_vars): Add TODO_dump_func. |
| |
| 2004-02-27 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/14310 |
| * explow.c (emit_stack_save): Remove savearea mode check. |
| |
| 2004-02-27 Richard Henderson <rth@redhat.com> |
| |
| * builtins.c (simplify_builtin_strcmp): Don't export. Remove |
| length parameters. Remove conversion to memcmp. |
| (simplify_builtin_strncmp): Likewise. |
| * expr.h: Don't declare them. |
| * tree-ssa-ccp.c (ccp_fold_builtin): Don't call them. |
| |
| 2004-02-27 Dale Johannesen <dalej@apple.com> |
| |
| * tree-cfg.c (cleanup_control_expr_graph): Prevent edge |
| probability from overflowing due to roundoff errors. |
| |
| 2004-02-27 Jeff Law <law@redhat.com> |
| |
| * tree-cfg.c (verify_expr): Do not walk down into types. |
| Expand checking to verify that unary/binary operators have |
| gimple operands. |
| * tree-ssa-ccp.c (ccp_fold_builtin, case BUILT_IN_STRLEN): Do not |
| create non-gimple code. Similarly for BUILTIN_IN_STRCPY and |
| BUILT_IN_STRNCPY. |
| * tree-ssa-phiopt.c (conditional_replacement): Do not create |
| non-gimple code. |
| * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. |
| |
| * tree-simple.c (is_gimple_min_invariant): Subtraction of a |
| constant from a constant pointer is a gimple invariant as well. |
| * tree-ssa-operands.c (get_expr_operands): Handle subtraction |
| of a constant from a constant pointer too. |
| |
| * fold-const.c (fold): Tighten test for optimizing an equality |
| comparison of the address of two variables. |
| |
| * tree-inline.c (setup_one_parameter): Improve test for when we |
| need to gimplify the initialization statements. |
| |
| 2004-02-27 Diego Novillo <dnovillo@redhat.com> |
| |
| PR optimization/14312 |
| * tree-pretty-print.c (dump_generic_node): Mark tail calls. |
| * tree-ssa-alias.c (compute_may_aliases): Restore call to |
| dump_referenced_vars. |
| (compute_points_to_and_addr_escape): If the address of a |
| variable V is stored into a non-pointer variable, mark V as |
| call-clobbered. |
| * tree-tailcall.c (suitable_for_tail_opt_p): Check for |
| call-clobbered instead of TREE_ADDRESSABLE. |
| Ignore memory tags. |
| (optimize_tail_call): Add newline to dump output. |
| |
| 2004-02-27 Diego Novillo <dnovillo@redhat.com> |
| |
| PR optimization/13347 |
| * tree-sra.c (scalarize_structure_assignment): Use STRIP_NOPS |
| instead of STRIP_USELESS_TYPE_CONVERSION to remove type casts |
| from RHS of the assignment. |
| |
| * tree-ssa.c (tree_ssa_useless_type_conversion_1): Reformat |
| and rephrase comments. |
| * tree.h (STRIP_USELESS_TYPE_CONVERSION): Reformat comment. |
| |
| 2004-02-26 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-cfg.c (tree_redirect_edge_and_branch_1): Allow to redirect |
| RETURN_EXPR branches. |
| |
| 2004-02-26 Jeff Law <law@redhat.com> |
| |
| * tree-nrv.c (tree_nrv): Only perform NRV optimization when the |
| return value lives in memory. |
| |
| * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): If an |
| operand is unsigned, then we can eliminate more ABS expressions |
| and turned div/mod expression into shift/and expressions. |
| |
| * fold-const.c (fold): An equality comparison of the address of |
| two non-weak variables has known compile-time result. |
| |
| 2004-02-26 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * tree-ssa-phiopt.c (conditional_replacement): |
| s/tree_dump_flags/dump_flags/. |
| |
| * tree-ssa-phiopt.c (tree_ssa_phiopt): Split into ... |
| (conditional_replacement): Here. |
| |
| 2004-02-26 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-ssa.c (find_replaceable_in_bb): Don't repalce expressions in |
| volatile statements. |
| |
| 2004-02-25 Richard Henderson <rth@redhat.com> |
| |
| PR opt/14288 |
| * gimplify.c (gimple_push_cleanup): Add VAR argument. Set |
| TREE_NO_WARNING if in a conditional context. |
| (gimplify_target_expr): Pass new argument. |
| * tree-sra.c (lookup_scalar): Copy TREE_NO_WARNING to replacement. |
| |
| 2004-02-24 Kazu Hirata <kazu@cs.umass.edu> |
| |
| * doc/invoke.texi: Replace -fdump-tree-all-ssa with |
| -fdump-tree-all. |
| |
| 2004-02-24 Kazu Hirata <kazu@cs.umass.edu> |
| |
| PR target/14285 |
| * config/arm/arm.c (arm_compute_func_type): Replace |
| "current_function_needs_context" with "cfun->static_chain_decl |
| != NULL". |
| (arm_compute_initial_elimination_offset): Likewise. |
| * config/h8300/h8300.c (h8300_emit_stack_adjustment): |
| Likewise. |
| * config/sh/sh.c (output_stack_adjust): Likewise. |
| (sh5_schedule_saves): Likewise. |
| * config/xtensa/xtensa.c (compute_frame_size): Likewise. |
| |
| 2004-02-24 Richard Henderson <rth@redhat.com> |
| |
| * c-simplify.c (c_genericize): s/dump_flags/local_dump_flags/. |
| * predict.c, tree-alias-ander.c, tree-cfg.c, tree-nrv.c, |
| tree-optimize.c, tree-pass.h, tree-sra.c, tree-ssa-alias.c, |
| tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c, |
| tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-loop.c, |
| tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa.c, tree-tailcall.c: |
| s/tree_dump_flags/dump_flags/. |
| |
| 2004-02-24 Richard Henderson <rth@redhat.com> |
| |
| * predict.c, tree-alias-ander.c, tree-cfg.c, tree-mudflap.c, |
| tree-nrv.c, tree-optimize.c, tree-pass.h, tree-profile.c, tree-sra.c, |
| tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, |
| tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-loop.c, |
| tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa.c, |
| tree-tailcall.c: s/tree_dump_file/dump_file/g. |
| |
| 2004-02-24 Diego Novillo <dnovillo@redhat.com> |
| |
| * doc/tree-ssa.texi: Fix formatting mark ups. |
| |
| 2004-02-24 Jeff Law <law@redhat.com> |
| |
| * gimple-low.c (remove_useless_vars): Now static. |
| (pass_remove_useless_vars): New. |
| * tree-flow.h (remove_useless_vars): Remove prototype. |
| * tree-nrv.c (struct nrv_data): Remove visited hashtable. |
| (finalize_nrv_r): Do not descend into types. No need to update |
| the visited hashtable. |
| (tree_nrv): No need to allocate/free the visited hashtable. |
| Clear the used flag on the variable's annotation. |
| * tree-optimize.c (init_tree_optimizatio_passes): Link in |
| pass_remove_useless_vars. |
| * tree-pass.h (pass_remove_useless_vars): Declare. |
| * tree-ssa.c (rewrite_out_of_ssa): Do not remove useless vars here. |
| |
| * Makefile.in (OBJS-common): Add tree-nrv.o. |
| (tree-nrv.o): Add dependencies. |
| * timevar.def (TV_TREE_NRV): New timevar. |
| * tree-nrv.c: New file implementing NRV on generic trees. |
| * tree-optimize.c (init_tree_optimization_passes): Link in |
| tree_nrv optimization pass. |
| * tree-pass.h (tree_nrv): Declare. |
| * doc/invoke.texi: Add -fdump-tree-nrv documentation. |
| |
| 2004-02-24 Sebastian Pop <sebastian.pop@cri.ensmp.fr> |
| |
| * tree-flow.h (walk_use_def_chains_fn): Return a boolean. |
| True for stopping the use-def walk, false otherwise. |
| * tree-ssa-alias.c (collect_points_to_info_r): Same. |
| Always return false, and never stopping the def-use walk as before. |
| * tree-ssa.c (walk_use_def_chains_1): Stop when the result of the |
| callback function is true. |
| * doc/tree-ssa.texi: Document the behavior of the callback |
| function for walk_use_def_chains. |
| |
| 2004-02-24 Richard Henderson <rth@redhat.com> |
| |
| * doc/passes.texi: Rewrite. |
| |
| 2004-02-23 Diego Novillo <dnovillo@redhat.com> |
| |
| * Makefile.in (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi |
| * tree-ssa-alias.c (compute_may_aliases): Update documentation. |
| * doc/gccint.texi: Add node for Tree SSA documentation. |
| Include tree-ssa.texi. |
| * doc/tree-ssa.texi: New file. |
| |
| 2004-02-23 Dale Johannesen <dalej@apple.com> |
| |
| * config/rs6000/rs6000.md: Roll in changes from mainline: |
| (movdf_softfloat64): Add POWER form of nop. |
| (movsf_hardfloat): Ditto, and accept CTR-to-CTR copy. |
| (movdf_hardfloat64): Ditto. |
| |
| 2004-02-23 Jeff Law <law@redhat.com> |
| |
| * ggc-page.c (struct page_entry): New field PREV. |
| (ggc_alloc): Update PREV field appropriately. |
| (sweep_pages): Likewise. |
| (ggc_free): Likewise. Use PREV field rather than loop to |
| improve ggc_free performance. |
| |
| * Makefile.in (OBJC-common): Add tree-ssa-copy.o. |
| (tree-ssa-copy.o): Add dependencies. |
| * tree-flow.h (propagate_value, replace_exp): Prototype. |
| (cprop_into_stmt, cprop_into_successor_phis): Likewise. |
| * tree-ssa-copy.c: New file, most functions copied from tree-ssa-dom.c |
| (cprop_into_stmt): Handle pointer & reference types better. |
| * tree-ssa-dom.c (opt_stats_d): Kill uninteresting stats. |
| (dump_dominator_optimization_stats): Corresponding changes. |
| (cprop_into_stmt): Moved into tree-ssa-copy.c. |
| (propagate_value): Likewise. |
| (cprop_into_phis): Simplify using code fromi tree-ssa-copy.c. |
| (optimize_stmt): Pass additional argument to cprop_into_stmt. |
| * tree-ssa-pre.c (generate_expr_as_of_bb): Use replace_exp. |
| (generate_vops_as_of_bb): Similarly. |
| |
| 2004-02-21 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (decide_is_function_needed): Nested functions of extern |
| inline functions don't need to be output. |
| (expand_function): Re-enable sanity check. |
| |
| 2004-02-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-ssa-loop.c (do_while_loop_p): New function. |
| (copy_loop_headers): Do not peel do-while loops. |
| |
| 2004-02-21 Jan Hubicka <jh@suse.cz> |
| |
| * tree-cfg.c (cleanup_control_expr_graph): Update profile. |
| |
| * tree-cfg.c (disband_implicit_edges): Set fallthru edges correctly. |
| |
| * cfg.c (dump_flow_info): Work on trees too. |
| |
| * tree-pretty-print.c (dump_generic_bb_stuff): Do not touch bb |
| annotations when not allocated. |
| |
| 2004-02-21 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (cprop_into_stmt): Look at the type's main variant |
| to determine if the two operands of a copy have equivalent types. |
| |
| 2004-02-20 Jeff Law <law@redhat.com> |
| |
| * tree-flow-inline.h (may_propagate_copy): Do not perform ABNORMAL_PHI |
| and DECL_HARD_REGISTER tests on virtual operands. |
| * tree-flow.h (propagate_copy): Kill prototype. |
| (propagate_value): New prototype. |
| * tree-ssa-dom.c (propagate_copy): Now static. |
| (propagate_value): No longer static. |
| |
| 2004-02-20 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/14218 |
| * c-simplify.c (mark_labels_r): Move to ... |
| * gimplify.c (force_labels_r): ... here, and rename. |
| (gimplify_init_constructor): Invoke it. |
| * tree-simple.h (force_labels_r): Declare. |
| |
| 2004-02-20 Richard Henderson <rth@redhat.com> |
| |
| PR opt/14194 |
| * tree-ssa-ccp.c (substitute_and_fold): Also mark new vars |
| if fold_stmt was successful. |
| |
| 2004-02-20 Diego Novillo <dnovillo@redhat.com> |
| |
| * doc/invoke.texi: Add documentation for parameters |
| global-var-threshold and max-aliased-vops. |
| * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Reformat help message. |
| (PARAM_MAX_ALIASED_VOPS): Rename from PARAM_MAX_ALIAS_SET_SIZE. |
| * params.h (MAX_ALIASED_VOPS): Rename from MAX_ALIAS_SET_SIZE. |
| Update all users. |
| * tree-ssa-alias.c (struct alias_map_d): Document fields. |
| Add fields total_alias_vops, grouped_p and may_aliases. |
| (struct alias_info): Change fields addressable_vars and |
| pointers to malloc'd arrays. Update all users. |
| Add fields num_references and total_alias_vops. |
| (compute_may_aliases): Add more comments. |
| (init_alias_info): Initialize new fields in struct alias_info. |
| (delete_alias_info): Corresponding changes. |
| (compute_points_to_and_addr_escape): Count references to |
| potentially aliased variables and pointer dereferences. |
| (compute_flow_insensitive_aliasing): Remove old grouping |
| heuristic. |
| Count the number of virtual operands induced by all the alias |
| sets created and call group_aliases if the number exceeds the |
| threshold set by --param max-aliased-vops. |
| (total_alias_vops_cmp): New. |
| (group_aliases_into): New. |
| (group_aliases): New. |
| * tree-ssa-operands.c (get_expr_operands): Change dump file |
| message when no flow-sensitive alias information is available. |
| (add_stmt_operand): Reformat comment. |
| * tree-ssa.c (init_tree_ssa): Don't call bitmap_clear. |
| |
| * tree-simple.c (get_base_decl): Fix typo in comment. |
| |
| * tree-pretty-print.c (print_call_name): Handle matrices of |
| function pointers. |
| |
| 2004-02-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * Makefile.in (tree-ssa-loop.o): Add tree-inline.h dependency. |
| * basic-block.h (struct reorder_block_def): Moved from cfglayout.h. |
| (alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): New. |
| * bb-reorder.c (copy_bb): Use cfghooks for bb duplication. |
| * cfg.c (rbi_pool): New variable. |
| (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New functions. |
| * cfghooks.c (can_duplicate_block_p, duplicate_block): New functions. |
| * cfghooks.h (struct cfg_hooks): Add can_duplicate_block_p and |
| duplicate_block hooks. |
| (can_duplicate_block_p, duplicate_block): Declare. |
| * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed. |
| (fixup_reorder_chain): Use initialize_bb_rbi. |
| (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized. |
| (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions. |
| (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication. |
| * cfglayout.h (typedef struct reorder_block_def): Moved to |
| basic_block.h. |
| (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration |
| removed. |
| * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi. |
| (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p |
| and duplicate_block fields. |
| * common.opt (ftree-ch): Add. |
| * flags.h (flag_tree_ch): Declare. |
| * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test, |
| copy_loop_headers): Removed. |
| * loop-unswitch.c (unswitch_loop): Use cfghooks for bb duplication. |
| * opts.c (decode_options): Enable flag_tree_ch at -O1. |
| (common_handle_option): Handle -ftree_ch. |
| * rtl.h (copy_loop_headers): Declaration removed. |
| * timevar.def (TV_TREE_CH): New. |
| * toplev.c (flag_tree_ch): New. |
| (rest_of_compilation): Do not call copy_loop_headers. |
| * tracer.c (tail_duplicate): Use cfghooks for bb duplication. |
| * tree-cfg.c (build_tree_cfg): Call alloc_rbi_pool. |
| (create_bb): Call initialize_bb_rbi. |
| (delete_tree_cfg): Call free_rbi_pool. |
| (tree_duplicate_bb): Hookize. |
| (tree_can_duplicate_bb_p): New. |
| (tree_cfg_hooks): Fill in can_duplicate_block_p and duplicate_block |
| fields. |
| * tree-flow.h (tree_duplicate_bb): Declaration removed. |
| * tree-optimize.c (init_tree_optimization_passes): Add pass_ch. |
| * tree-pass.h (pass_ch): Declare. |
| * tree-ssa-loop.c: Include tree-inline.h. |
| (call_expr_p, should_duplicate_loop_header_p, mark_defs_for_rewrite, |
| duplicate_blocks, copy_loop_headers, gate_ch): New functions. |
| (pass_ch): New. |
| * doc/invoke.texi (-fdump-tree-ch, -ftree-ch): Document. |
| |
| 2004-02-19 David Edelsohn <edelsohn@gnu.org> |
| |
| * config/rs6000/aix.h (MFWRAP_SPEC): Define. |
| (MFLIB_SPEC): Define. |
| |
| 2004-02-19 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-phiopt.c (tree_ssa_phiopt): TRUTH_NOT_EXPR is valid |
| gimple code. |
| |
| 2004-02-19 Steven Bosscher <stevenb@suse.de> |
| |
| * tree-cfg.c (cleanup_dead_labels): New function to remove |
| redundant labels. |
| |
| Remove the RTL inliner. |
| * calls.c (try_to_integrate): Remove. |
| (expand_call): Do not try to expand calls inline. |
| * dbxout.c (dbxout_symbol_location): Don't mention integrate.c |
| in comments. |
| * expmed.c (extract_fixed_bit_field): Always propagate the |
| target for the shift if it is a REG. |
| * expr.c (emit_move_insn_1): Don't generate inline warnings. |
| (expand_expr_real_1): Don't look at inline_function_decl. |
| Don't output inlined functions here. |
| * expr.h (expand_inline_function): Remove prototype. |
| * emit-rtl.c (copy_most_rtx): Don't copy the integrated flag. |
| Copy the new return_val flag. |
| * final.c (final): Don't look at RTX_INTEGRATED_P. |
| * cfgrtl.c (create_basic_block_structure): Likewise. |
| * haifa-sched.c (priority): Likewise. |
| (restore_line_notes): Likewise. |
| * function.c (inline_function_decl): Remove. |
| (put_var_into_stack): Don't use it. |
| (fix_lexical_addr): Likewise. |
| * function.c (inline_function_decl): Remove extern declaration. |
| * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag |
| instead of the integrated flag. |
| * integrate.c (INTEGRATE_THRESHOLD): Remove. |
| (setup_initial_hard_reg_value_integration): Likewise. |
| (initialize_for_inline): Likewise. |
| (note_modified_parmregs): Likewise. |
| (integrate_parm_decls): Likewise. |
| (process_reg_param): Likewise. |
| (save_parm_insns): Likewise. |
| (copy_insn_list): Likewise. |
| (copy_insn_notes): Likewise. |
| (compare_blocks): Likewise. |
| (find_block): Likewise. |
| (inlining): Likewise. |
| (function_cannot_inline_p): Likewise. |
| (parmdecl_map): Likewise. |
| (in_nonparam_insns): Likewise. |
| (save_for_inline): Likewise. |
| (FIXED_BASE_PLUS): Likewise. |
| (expand_inline_function): Likewise. |
| (copy_rtx_and_substitute): Don't look at map->integrating, |
| map->inline_target, and inlining, since we are never copying |
| for integrating. |
| Don't abort on RTX_INTEGRATED_P. |
| (old_fun): Remove. |
| (output_inline_function): Remove. |
| * integrate.h (struct inline_map): Remove fields integrating, |
| block_map, leaf_reg_map, inline_target, and local_return_label. |
| * print-rtl.c (print_rtx): Don't print the integrated flag. |
| Print the return_val flag. |
| * rtl.h (struct rtx_def): Replace the integrated flag with the |
| return_val flag. |
| (RTX_INTEGRATED_P): Remove. |
| (notice_rtl_inlining_of_deferred_constant): Remove prototype. |
| * stmt.c (force_label_rtx): Don't look at inline_function_decl. |
| * toplev.c (rest_of_handle_inlining): Remove. |
| (rest_of_compilation): Don't call it, and never jump to exit. |
| Call convert_from_eh_region_ranges. |
| (wrapup_global_declarations): Don't output nested inlined functions. |
| * tree.h (function_cannot_inline_p): Remove prototype. |
| (save_for_inline): Ditto. |
| (output_inline_function): Ditto. |
| * unroll.c (unroll_loop): Don't clear map->inline_target. |
| * varasm.c (notice_rtl_inlining_of_deferred_constant): Remove. |
| |
| * system.h: Poison INTEGRATE_THRESHOLD. |
| * config/avr/avr.h: Remove define. |
| * config/ip2k/ip2k.h: Likewise. |
| |
| * unwind-sjlj.c (uw_install_context): Make a proper static inline |
| function. |
| |
| * doc/rtl.texi: Remove references to the integrated flag. |
| * doc/tm.texi: Remove documentation of INTEGRATE_THRESHOLD. |
| |
| 2004-02-17 Andrew Macleod <amacleod@redhat.com> |
| |
| * tree-ssa-live.c (coalesce_tpa_members): Don't coalesce partitions |
| which are not in the same TPA group. |
| * tree-ssa.c (rewrite_out_of_ssa): Coalesce via list first. |
| |
| 2004-02-17 Brian Booth <bbooth@redhat.com> |
| |
| * tree-ssa-ccp.c (substitute_and_fold): Update stmt after |
| calling fold_stmt. |
| |
| 2004-02-16 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * config/rs6000/rs6000.c (output_function_profiler): Check |
| cfun->static_chain_decl instead of current_function_needs_context. |
| |
| 2004-02-16 Jeff Law <law@redhat.com> |
| |
| * tree-ssa.dse.c (dse_optimize_stmt): Dump info when we delete |
| stores. |
| |
| * tree-ssa-dse.c: Update comments. |
| |
| * Makefile.in (OBJS-common): Add tree-ssa-dse.o |
| (tree-ssa-dse.o): Add dependencies. |
| * common.opt (ftree-dse): New option. |
| * flags.h (flag_tree_dse): New. |
| (flag_tree_dom): Fix comments. |
| * opts.c (decode_options): Turn on flag_tree_dse. |
| (common_handle_option): Handle OPT_ftree_dse. |
| * timevar.def (TV_TREE_PHIOPT): Update text. |
| (TV_TREE_DSE): New timevar. |
| * toplev.c (flag_tree_dse): New. |
| (flag_tree_dom): Fix comments. |
| (lang_independent_options): Add -ftree-dse. |
| * tree-dfa.c (redirect_immediate_use): New function. |
| (redirect_immediate_uses): New function. |
| * tree-flow.h (stmt_ann_d): Add UID field. |
| (redirect_immediate_uses): Declare. |
| * tree-optimize.c (init_tree_optimization_passes): Link in DSE pass. |
| * tree-pass.h (pass_dse): Declare. |
| * tree-ssa-dse.c: New file implementing DSE. |
| * doc/invoke.texi: Document new option. |
| |
| 2004-02-16 Richard Henderson <rth@redhat.com> |
| |
| * tree-nested.c: New file. |
| * Makefile.in (OBJS-common, GTFILES, tree-nested.o): Add it. |
| * builtin-types.def (BT_FN_VOID_PTR_PTR, BT_FN_VOID_PTR_PTR_PTR): New. |
| * builtins.c (expand_builtin_nonlocal_goto): New. |
| (expand_builtin_apply): Fix prepare_call_address args. |
| (round_trampoline_addr): Move from function.c. |
| (expand_builtin_init_trampoline): New. |
| (expand_builtin_adjust_trampoline): New. |
| (expand_builtin): Invoke them. |
| (build_function_call_expr): Add CALL_EXPR chain operand. |
| * builtins.def (BUILT_IN_INIT_TRAMPOLINE, |
| BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO): New. |
| * c-decl.c (finish_function): Call lower_nested_functions. |
| (c_expand_decl): Don't declare_nonlocal_label. |
| * calls.c (prepare_call_address): Replace fndecl arg with a |
| precomputed static chain value. |
| (expand_call): Precompute the static chain value. Use |
| update_nonlocal_goto_save_area. |
| * cgraph.c (cgraph_mark_reachable_node): Don't force nested |
| functions to be reachable. |
| (cgraph_clone_node): Don't abort cloning functions containing |
| nested functions. |
| * cgraphunit.c (cgraph_assemble_pending_functions): Don't do |
| anything special for nested functions. |
| (cgraph_mark_functions_to_output): Likewise. |
| (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise. |
| (cgraph_optimize): Likewise. |
| (cgraph_finalize_function): Don't zap DECL_SAVED_INSNS. |
| (cgraph_expand_function): Allow functions to not be emitted. |
| * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c. |
| * dwarf2out.c (gen_subprogram_die): Generate DW_AT_static_link. |
| * emit-rtl.c (maybe_set_first_label_num): New. |
| * explow.c (update_nonlocal_goto_save_area): New. |
| (allocate_dynamic_stack_space): Use it. |
| * expr.c (expand_expr_real_1) <LABEL_DECL>: Don't force_label_rtx. |
| <COND_EXPR>: Ignore the possibility of non-local labels. |
| <ADDR_EXPR>: Don't do trampoline_address. |
| * expr.h (lookup_static_chain): Remove. |
| (prepare_call_address): Update 2nd arg. |
| (update_nonlocal_goto_save_area): Declare. |
| * final.c (profile_function): Update static chain test. |
| * function.c (TRAMPOLINE_ALIGNMENT): Move to defaults.h. |
| (trampolines_created): Move to varasm.c. |
| (free_after_compilation): Update for removed fields. |
| (allocate_struct_function): Likewise. |
| (delete_handlers, lookup_static_chain): Remove. |
| (fix_lexical_addr): Don't consider non-local variable refs. |
| (trampoline_address): Remove. |
| (round_trampoline_addr): Move to builtins.c. |
| (adjust_trampoline_addr): Remove. |
| (expand_function_start): Update for changes to static chain |
| and nonlocal goto handling. |
| (initial_trampoline): Move to varasm.c. |
| (expand_function_end): Don't build trampolines or kill |
| unreferenced nonlocal goto labels. |
| * function.h (struct function): Remove x_nonlocal_labels, |
| x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level, |
| x_context_display, x_trampoline_list, needs_context. |
| Add static_chain_decl, nonlocal_goto_save_area. |
| * gimple-low.c (record_vars): Don't record functions. |
| * gimplify.c (declare_tmp_vars): Export. |
| (create_artificial_label): Set type. |
| (gimplify_expr): Don't consider nonlocal gotos. |
| * integrate.c (expand_inline_function): Kill lookup_static_chain ref. |
| * jump.c (any_uncondjump_p): Reject nonlocal goto. |
| * rtl.h (maybe_set_first_label_num): Declare. |
| * stmt.c (label_rtx): Set LABEL_PRESERVE_P appropriately. |
| (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL. |
| (declare_nonlocal_label): Remove. |
| (expand_goto): Don't handle nonlocal gotos. |
| (expand_nl_handler_label): Remove. |
| (expand_nl_goto_receivers): Remove. |
| (expand_end_bindings): Don't expand_nl_goto_receivers. Use |
| update_nonlocal_goto_save_area. |
| * tree-cfg.c (make_edges): Handle abnormal edges out of block |
| falling through to EXIT. |
| (make_ctrl_stmt_edges): Don't check GOTO_EXPR for nonlocal goto. |
| Handle computed goto with no destinations. |
| (tree_can_merge_blocks_p): Don't merge blocks with nonlocal labels. |
| (remove_useless_stmts_label, stmt_starts_bb_p): Likewise. |
| (tree_forwarder_block_p): Likewise. |
| (nonlocal_goto_p): Remove. |
| (tree_verify_flow_info): Update to match. |
| * tree-dump.c (dump_files): Add tree-nested. |
| * tree-flow.h (nonlocal_goto_p): Remove. |
| * tree-inline.c (setup_one_parameter): Split out from ... |
| (initialize_inlined_parameters): ... here. Handle static chain. |
| (inline_forbidden_p_1): Update nonlocal goto check. |
| (expand_call_inline): Disable mysterious cgraph abort. |
| * tree-optimize.c (tree_rest_of_compilation): Save DECL_SAVED_INSNS. |
| * tree-pretty-print.c (dump_generic_node): Print static chain |
| and nonlocal label. |
| * tree-simple.h (declare_tmp_vars): Declare. |
| (lower_nested_functions): Declare. |
| * tree-ssa-dom.c (propagate_value): Avoid sharing problems. |
| * tree-ssa-operands.c (get_expr_operands): Walk static chain |
| field of call_expr. |
| * tree.def (CALL_EXPR): Add static chain operand. |
| * tree.h (NONLOCAL_LABEL): Remove. |
| (TDI_nested): New. |
| * varasm.c (TRAMPOLINE_ALIGNMENT): Remove. |
| (initial_trampoline): Move from function.c. |
| (assemble_trampoline_template): Set and return it. |
| (trampolines_created): Move from function.c. |
| |
| 2004-02-16 Steven Bosscher <stevenb@suse.de> |
| |
| * tree-flow.h (cleanup_control_expr_graph): Don't declare here. |
| * tree-cfg.c (cleanup_control_expr_graph): Make static. |
| (find_edge_taken_cond_expr): Return an edge if the true and false |
| edges of a branch lead to the same basic block. |
| |
| 2004-02-13 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-phinodes.c (resize_phi_node): Do not use ggc_realloc to |
| allocate a new PHI node. |
| |
| 2004-02-12 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-flow.h (kill_redundant_phi_nodes): Remove declaration. |
| * tree-optimize.c (init_tree_optimization_passes): Add |
| pass_redundant_phi after DOM and CCP. |
| (execute_todo): Do not call kill_redundant_phi_nodes. |
| * tree-pass.h (TODO_redundant_phi): Remove. |
| Update all users. |
| Adjust values for all the other TODO_* entries. |
| (pass_redundant_phi): Declare. |
| * tree-ssa.c (replace_immediate_uses): Call mark_new_vars_to_rename |
| if a pointer was replaced. |
| (kill_redundant_phi_nodes): Make static. |
| (pass_redundant_phi): Define. |
| |
| 2004-02-12 Dale Johannesen <dalej@apple.com> |
| |
| * Makefile.in (OBJS-common): Add rtl-profile.o, tree-profile.o. |
| (profile.o): Add tree-flow.h dependency. |
| (rtl-profile.o): New rule. |
| (tree-profile.o): New rule. |
| (GTFILES): Add tree-profile.c, rtl-profile.c. |
| * basic-block.h (flow_call_edges_add): Remove. |
| * cfganal.c (need_fake_edge_p): Move to cfgrtl.c. |
| (flow_call_edges_add): Move to cfgrtl.c. |
| * cfghooks.c: (block_ends_with_call_p): New. |
| (block_ends_with_condjump_p): New. |
| (flow_call_edges_add): New. |
| * cfghooks.h: (struct cfg_hooks): add block_ends_with_call_p, |
| block_ends_with_condjump_p, flow_call_edges_add. |
| (block_ends_with_call_p): New declaration. |
| (block_ends_with_condjump_p): New declaration. |
| (flow_call_edges_add): New declaration. |
| * cfgrtl.c (rtl_block_ends_with_call_p): New. |
| (rtl_block_ends_with_condjump_p): New. |
| (need_fake_edge_p): Moved from cfganal.c. |
| (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add). |
| (rtl_cfg_hooks): Add rtl_block_ends_with_call_p, |
| rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add. |
| (cfg_layout_rtl_cfg_hooks): Ditto. |
| * common.opt (ftree-based-profiling): New. |
| * coverage.c (tree_ctr_tables): New. |
| (coverage_counter_alloc): Use it. |
| (build_ctr_info_value): Ditto. |
| (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref. |
| (tree_coverage_counter_ref): New. |
| * coverage.h (coverage_counter_ref): Remove declaration. |
| (rtl_coverage_counter_ref): New declaration. |
| (tree_coverage_counter_ref): New declaration. |
| * opts.c (OPT_ftree_based_profiling): New. |
| * profile.c: Include cfghooks.h, tree-flow.h. |
| (profile_hooks): New. |
| (profile_dump_file): New. |
| (instrument_edges): Use hooks instead of RTL-specific code. |
| (instrument_values): Ditto. |
| (get_exec_counts): Ditto. |
| (compute_branch_probabilities): Ditto. |
| (compute_value_histograms): Ditto. |
| (branch_prob): Ditto. |
| (find_spanning_tree): Ditto. |
| (end_branch_prob): Ditto. |
| (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler). |
| (gen_interval_profiler): Ditto (rtl_gen_interval_profiler). |
| (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler). |
| (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler). |
| (tree_register_profile_hooks): New. |
| (rtl_register_profile_hooks): New. |
| * rtl-profile.c: New file. |
| * rtl.h (init_branch_prob): Move declaration to value-prof.h. |
| (end_branch_prob): Ditto. |
| (branch_prob): Ditto. |
| * toplev.c (flag_tree_based_profiling): New. |
| (f_options): Add -ftree-based-profiling. |
| (compile_file): Register rtl-based CFG and profiling hooks. |
| (rest_of_compilation): Do rtl-based profiling only when |
| !flag_tree_based_profiling. Register rtl-based profiling hooks. |
| (process_options): Sorry for -ftree-based-profiling plus |
| -ftest-coverage or -fprofile-values. |
| * toplev.h (flag_tree_based_profiling): New. |
| * tree-cfg.c (tree_block_ends_with_call_p): New. |
| (tree_block_ends_with_condjump_p): New. |
| (need_fake_edge_p): New. |
| (tree_flow_call_edges_add): New (largely from flow_call_edges_add |
| in cfganal.c). |
| (tree_cfg_hooks): Add tree_block_ends_with_call_p, |
| tree_block_ends_with_condjump_p, tree_flow_call_edges_add. |
| * tree-optimize.c (init_tree_optimization_passes): |
| Add pass_tree_profile. |
| * tree-pass.h: Ditto. |
| * tree-profile.c: New file. |
| * value-prof.c (value_prof_hooks): New. |
| (find_values_to_profile): Rename to rtl_find_values_to_profile. |
| Move rtl-specific bits in from branch_prob. |
| (value_profile_transformations): Rename to |
| rtl_value_profile_transformations. |
| (struct value_prof_hooks): New. |
| (rtl_value_prof_hooks): New. |
| (rtl_register_value_prof_hooks): New. |
| (tree_find_values_to_profile): New stub. |
| (tree_value_profile_transformations): New stub. |
| (tree_value_prof_hooks): New stub. |
| (tree_register_value_prof_hooks): New stub. |
| (find_values_to_profile): New. |
| (value_profile_transformations): New. |
| * value-prof.h: Add multiple inclusion guard. |
| (struct histogram_value): Change rtx fields to void *. |
| (rtl_register_value_prof_hooks): New declaration. |
| (tree_register_value_prof_hooks): New declaration. |
| (find_values_to_profile): New declaration. |
| (free_profiled_values): New declaration. |
| (value_profile_transformations): New declaration. |
| (struct profile_hooks): New declaration. |
| (init_branch_prob): Declaration moved from rtl.h. |
| (branch_prob): Declaration moved from rtl.h. |
| (end_branch_prob): Declaration mooved from rtl.h. |
| (tree_register_profile_hooks): New declaration. |
| (rtl_register_profile_hooks): New declaration. |
| (tree_profile_hooks): New declaration. |
| (rtl_profile_hooks): New declaration. |
| * doc/invoke.texi: Document -ftree-based-profiling. |
| |
| 2004-02-12 Jeff Law <law@redhat.com> |
| |
| * domwalk.c (walk_dominator_tree): Move statement walking from |
| clients into here. Walk statements in forward or backward order |
| as requested by the client. Walk either the dominator tree or |
| the post-dominator tree as requested by the client. |
| * domwalk.h (dom_walk_data): Add two fields to control direction of |
| statement walk and dominator vs post-dominator tree walk. Add |
| BSI argument to the per-statement callbacks. |
| * tree-ssa-dom.c (optimize_stmt): Update prototype so that it can |
| be directly used as a callback for the dominator tree walker. |
| Update stmts_to_rescan here. |
| (tree_ssa_dominator_optimize): Initialize new fields in the dominator |
| walker structure. Use optimize_stmt instead of dom_opt_walk_stmts |
| for statement callback. |
| (dom_opt_walk_stmts): Kill. No longer used. |
| * tree-ssa.c (mark_def_sites): Update prototype so that it can be |
| called as the per-statement callback. No longer walk statements here. |
| (mark_def_sites_initialize_block): New. |
| (rewrite_stmt): Update prototype so that it can be called as the |
| per-statement callback. |
| (rewrite_walk_stmts): Kill. No longer used. |
| (rewrite_into_ssa): Initialize new fields in the dominator walker |
| structure. Use rewrite_stmt instead of rewrite_walk_stmts. Add |
| mark_def_sites_initialize_block callback. |
| |
| 2004-02-12 Steven Bosscher <stevenb@suse.de> |
| |
| * doc/cfg.texi: New file. |
| * doc/ggcint.texi: Include it. Add a new chapter. |
| |
| 2004-02-11 Jeff Law <law@redhat.com> |
| |
| * Makefile.in (OBJS-common): Add tree-ssa-forwprop.o |
| (tree-ssa-forwprop.o): Add dependencies. |
| * timevar.def (TV_TREE_FORWPROP): New timevar. |
| * tree-optimize.c (init_tree_optimization_passes): Link in |
| the forward propagation pass. |
| * tree-pass.h (pass_forwprop): Declare. |
| * tree-ssa-forwprop.c: New file with forward propagation pass. |
| * doc/invoke.texi: Document dump for forward propagation pass. |
| |
| 2004-02-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-ssa.c (rewrite_out_of_ssa): Don't use coalesce list until new |
| bug resolved. |
| |
| 2004-02-11 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-ssa-live.c (compare_pairs): New. Coalesce list cost function. |
| (sort_coalesce_list): Use qsort() to sort list by cost. |
| (coalesce_tpa_members): Use correct partition representatives. Add more |
| debug information. Allow coalesce by list, root_var, or both. |
| (tpa_dump): Show partition index. |
| * tree-ssa-live.h (SSANORM_COALESCE_PARTITIONS): New flag. |
| (SSANORM_USE_COALESCE_LIST): New flag. |
| * tree-ssa.c (create_temp): Don't mark as used when created. |
| (coalesce_ssa_name): Create coalesce list if requested. Add more |
| debug output. |
| (assign_vars): Add additional debug info. |
| (remove_ssa_form): Perform TER after assign_vars(). |
| (rewrite_vars_out_of_ssa): Pass coalesce partitions flag to |
| remove_ssa_form. |
| (rewrite_out_of_ssa): Add coalesce list flag to remove_ssa_form call. |
| |
| 2004-02-10 Jeff Law <law@redhat.com> |
| |
| * Makefile.in (OBJS-common): Add tree-ssa-phiopt.o |
| (tree-ssa-phiopt.o): Add dependencies. |
| * timevar.def (TV_TREE_PHIOPT): New timevar. |
| * tree-cfg.c (extract_true_false_edges_from_block): Moved here from |
| tree-ssa-dom.c. |
| (tree_verify_flow_info): Use extract_true_false_edges_from_block. |
| * tree-flow.h (extract_true_false_edges_from_block): Declare. |
| * tree-ssa-dom.c (extract_true_false_edges_from_block): Moved into |
| tree-cfg.c. |
| (get_eq_expr_value): Improve type check. |
| * tree-optimize.c (init_tree_optimization_passes): Link in |
| phiopt pass. |
| * tree-pass.h (pass_phiopt): Declare. |
| * tree-ssa-phiopt.c: New file with PHI node optimization pass. |
| * doc/invoke.texi: Document dump for PHI node optimization. |
| |
| 2004-02-10 Richard Henderson <rth@redhat.com> |
| |
| * tree-sra.c (lookup_scalar): Handle unnamed fields. |
| |
| 2004-02-10 Diego Novillo <dnovillo@redhat.com> |
| |
| * Makefile.in (OBJS-common): Add tree-ssa-alias.o. |
| (tree-ssa-alias.o): New rule. |
| (tree-ssa-operands.o): Add dependency on $(TIMEVAR_H) and tree-pass.h |
| (gt-tree-dfa.h): Remove. |
| * timevar.def (TV_TREE_OPS): Rename from unused entry TV_TREE_DFA. |
| * tree-ssa-alias.c: New file. |
| * tree-dfa.c (struct alias_stats_d, alias_stats, dump_alias_stats, |
| may_alias_p, add_may_alias, global_var, aliases_computed_p, |
| compute_may_aliases): Move to tree-ssa-alias.c. |
| (struct walk_state): Remove fields 'is_asm_expr' and 'num_calls'. |
| Update all users. |
| (compute_alias_sets, create_memory_tags, may_access_global_mem_p, |
| get_memory_tag_for, promote_call_clobbered_vars, |
| find_addressable_vars): Remove. |
| (call_clobbered_vars): Move to tree-ssa-alias.c and convert to |
| bitmap. |
| (find_referenced_vars): Move logic to create .GLOBAL_VAR to |
| tree-ssa-alias.c. |
| (create_ssa_name_ann): New. |
| (dump_variable): Rearrange. |
| (dump_dfa_stats): Do not show the number of call clobbered |
| variables. |
| (find_vars_r): Do not try to determine if an assignment my access |
| global memory. |
| (add_referenced_var): Remove hacks to establish global memory |
| dependencies. |
| If the variable needs to live in memory mark it call-clobbered. |
| * tree-flow-inline.h (ssa_name_ann): New. |
| (get_ssa_name_ann): New. |
| (set_may_alias_global_mem): Remove. |
| (may_alias_global_mem_p): Remove. |
| (set_may_point_to_global_mem): Remove. |
| (may_point_to_global_mem_p): Remove. |
| (is_call_clobbered): New |
| (mark_call_clobbered): New |
| (mark_non_addressable): New |
| * tree-flow.h (enum tree_ann_type): Add SSA_NAME_ANN. |
| (enum mem_tag_kind): Declare. |
| (struct var_ann_d): Remove fields 'is_call_clobbered', |
| 'may_alias_global_mem' and 'may_point_to_global_mem'. |
| Replace bitfield 'mem_tag' with enum bitfield 'mem_tag_kind'. |
| Rename field 'mem_tag' to 'type_mem_tag'. |
| (struct stmt_ann_d): Change type of field 'addresses_taken' to a |
| bitmap. Update all users. |
| (struct ssa_name_ann_d): Declare. |
| (union tree_ann_d): Add field 'ssa_name'. |
| (ssa_name_ann_t): New type. |
| (struct bb_ann_d): Add field 'has_escape_site'. |
| (num_call_clobbered_vars): Remove. |
| (call_clobbered_var): Remove. |
| (call_clobbered_vars): Change to bitmap. |
| (dump_points_to_info): Declare. |
| (debug_points_to_info): Declare. |
| (walk_use_def_chains_fn): New type. |
| (walk_use_def_chains): Declare. |
| (is_call_clobbered): Declare. |
| (mark_call_clobbered): Declare. |
| * tree-simple.c (needs_to_live_in_memory): Move to tree.c. |
| (is_gimple_non_addressable): Update comment. |
| (is_gimple_call_clobbered): Remove. |
| (get_call_expr_in): New. |
| (get_base_var): Rename from get_base_symbol. Update all callers. |
| Don't strip SSA_NAME wrappers. |
| (get_base_decl): New. |
| (get_base_address): New. |
| * tree-simple.h (is_gimple_call_clobbered): Remove. |
| (needs_to_live_in_memory): Remove. |
| (get_base_decl): Declare. |
| (get_base_var): Declare. |
| (get_base_address): Declare. |
| * tree-ssa-dce.c (need_to_preserve_store): Reduce to calling |
| needs_to_live_in_memory. |
| * tree-ssa-operands.c: Include tree-pass.h and timevar.h |
| (get_stmt_operands): Push/pop TV_TREE_OPS time var. |
| Call mark_call_clobbered for asms that store to memory. |
| (get_expr_operands): When adding operands for INDIRECT_REF |
| expressions, use flow-sensitive aliasing, if available. |
| Assume that malloc-like function calls won't clobber. |
| (add_call_clobber_ops): |
| (add_call_read_ops): |
| * tree-ssa.c (rewrite_into_ssa): If any variable in vars_to_rename |
| is a pointer, invalidate all name memory tags. |
| (create_temp): Call is_call_clobbered and mark_call_clobbered. |
| (walk_use_def_chains_1): New. |
| (walk_use_def_chains): New. |
| |
| * tree.c (needs_to_live_in_memory): New. |
| * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Define. |
| (struct tree_decl): Add bitfield 'needs_to_live_in_memory'. |
| Update unused bits comment. |
| (needs_to_live_in_memory): Declare. |
| |
| * tree-simple.h (get_call_expr_in): Declare. |
| * tree-sra.c (scalarize_stmt): Call get_call_expr_in when handling |
| function calls. |
| * tree-ssa-ccp.c (likely_value): Likewise. |
| |
| * params.def (PARAM_MAX_CLOBBERED_VARS_GLOBAL_VAR): Remove. |
| (PARAM_MAX_CALLS_GLOBAL_VAR): Remove. |
| (PARAM_GLOBAL_VAR_THRESHOLD): Define. |
| (PARAM_MAX_ALIAS_SET_SIZE): Define. |
| Update all users. |
| * params.h (MAX_CALLS_FOR_GLOBAL_VAR): Remove. |
| (MAX_CLOBBERED_VARS_FOR_GLOBAL_VAR): Remove. |
| (GLOBAL_VAR_THRESHOLD): Define. |
| (MAX_ALIAS_SET_SIZE): Define. |
| |
| 2004-02-09 Richard Henderson <rth@redhat.com> |
| |
| * langhooks.h (lang_hooks_for_functions): Add missing_noreturn_ok_p. |
| * langhooks-def.h, c-lang.c, objc/objc-lang.c |
| (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): New. |
| * c-objc-common.c (c_missing_noreturn_ok_p): Return bool. |
| (c_objc_common_init): Don't set lang_missing_noreturn_ok_p. |
| * c-tree.h (c_missing_noreturn_ok_p): Update decl. |
| * flow.c (lang_missing_noreturn_ok_p): Remove. |
| |
| * flow.c (check_function_return_warnings): Move to tree-cfg.c. |
| * toplev.c (rest_of_compilation): Don't call it. |
| * tree-cfg.c (execute_warn_function_return): Move from flow.c, |
| rename, update for tree vs rtl. |
| (pass_warn_function_return): New. |
| * tree-pass.h (pass_warn_function_return): Declare it. |
| * tree-optimize.c (init_tree_optimization_passes): Run it. |
| |
| * function.h (struct function): Remove x_clobber_return_insn. |
| * function.c (free_after_compilation): Don't set it. |
| (expand_function_end): Likewise. |
| |
| 2004-02-09 Richard Henderson <rth@redhat.com> |
| |
| Revert: |
| 2004-02-06 Richard Henderson <rth@redhat.com> |
| * tree-ssa-dom.c (record_equivalences_from_phis): Use |
| record_const_or_copy. |
| (record_equivalences_from_stmt): Likewise. Replace |
| block_avail_exprs_p and block_nonzero_vars_p args with bd. |
| |
| 2004-02-09 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (get_eq_expr_value): Improve handling of boolean |
| conditions. |
| |
| * domwalk.c (walk_dominator_tree): Completely lose PARENT argument. |
| Callers updated. No longer pass PARENT to callbacks. |
| * domwalk.h (struct dom_walk_data): Corresponding changes. |
| * tree-ssa-dom.c: Likewise. |
| * tree-ssa.c: Likewise. |
| |
| * domwalk.c (walk_dominator_tree): Change last argument to be the |
| parent block in the dominator tree rather than the last statement |
| in the parent block in the dominator tree. Similarly in all the |
| callbacks. |
| * domwalk.h (struct dom_walk_data): Update callback prototypes. |
| * tree-ssa-dom.c: Corresponding changes. |
| * tree-ssa.c: Likewise. |
| |
| * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Break out |
| of tree_ssa_dominator_optimize. If the out-of-ssa pass creates |
| new variables, then invalidate some requested jump threads. |
| |
| 2004-02-08 Richard Henderson <rth@redhat.com> |
| |
| * flow.c (regno_uninitialized): Remove. |
| * output.h (regno_uninitialized): Remove. |
| * function.c (setjmp_vars_warning): Rename from |
| uninitialized_vars_warning, remove uninitialized vars warning. |
| * toplev.c (rest_of_handle_life): Update to match. |
| * tree.h (setjmp_vars_warning): Likewise. |
| |
| * tree-sra.c (lookup_scalar): Set DECL_NAME to something descriptive. |
| |
| * tree-ssa.c (warn_uninit): New. |
| (warn_uninitialized_var, warn_uninitialized_phi): New. |
| (execute_early_warn_uninitialized): New. |
| (execute_late_warn_uninitialized): New. |
| (gate_warn_uninitialized): New. |
| (pass_early_warn_uninitialized): New. |
| (pass_late_warn_uninitialized): New. |
| * tree-pass.h (pass_early_warn_uninitialized): New. |
| (pass_late_warn_uninitialized): New. |
| * tree-optimize.c (init_tree_optimization_passes): Add them. |
| |
| 2004-02-08 Richard Henderson <rth@redhat.com> |
| |
| * cppexp.c (append_digit): Rearrange unsignedp/overflow setting. |
| (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise. |
| * ra-rewrite.c (rewrite_program2): Zero info. |
| * reload.c (decompose): Zero val. |
| * tree-ssa-ccp.c (visit_phi_node): Zero phi_val.const_val. |
| |
| 2004-02-07 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (save_body): Clone the parm decl correctly. |
| |
| * cgraph.c: Add introductionary comment. |
| (cgraph_remove_node): Release DECL_SAVED_INSNS too. |
| * cgraphunit.c: Likewise. |
| (cgraph_finalize_function): Release DECL_SAVED_INSNS of external function. |
| (decl_expand_function): Release DECL_SAVED_INSNS/body/tree. |
| (cgraph_remove_unreachable_nodes): Likewise; guard cgraph verification. |
| |
| 2004-02-06 Richard Henderson <rth@redhat.com> |
| |
| * common.opt (fdisable-tree-ssa): Remove. |
| * flags.h (flag_disable_tree_ssa): Remove. |
| * toplev.c (flag_disable_tree_ssa): Remove. |
| (f_options): Don't set it. |
| * opts.c (common_handle_option): Likewise. |
| * doc/invoke.texi (fdisable-tree-ssa): Remove. |
| |
| 2004-02-06 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-dom.c (record_equivalences_from_phis): Use |
| record_const_or_copy. |
| (record_equivalences_from_stmt): Likewise. Replace |
| block_avail_exprs_p and block_nonzero_vars_p args with bd. |
| |
| 2004-02-06 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR middle-end/13127 |
| * tree-inline.c (declare_return_variable): Set the no warning bit |
| on the variable created for the return value. |
| |
| 2004-02-06 Richard Henderson <rth@redhat.com> |
| |
| * tree-pretty-print.c (dump_generic_node): Render NON_LVALUE_EXPR. |
| |
| * tree-ssa-dom.c (local_fold): New. |
| (thread_across_edge, simplify_rhs_and_lookup_avail_expr, |
| find_equivalent_equality_comparison): Use it. |
| |
| 2004-02-06 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR c/13863 |
| * c-common.c (c_decl_uninit_1): Remove. |
| (c_decl_uninit): Remove. |
| * c-common.h (c_decl_uninit): Remove prototype. |
| * c-lang.c (LANG_HOOKS_DECL_UNINIT): Delete. |
| * objc/objc-lang.c (LANG_HOOKS_DECL_UNINIT): Delete. |
| * c-simplify.c (gimplify_decl_stmt): Set TREE_NO_WARNING |
| on the decl where the initial is itself. |
| * function.c (uninitialized_vars_warning): Remove old comment |
| and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING |
| and do not call the langhook. |
| * langhooks-def.h (LANG_HOOKS_DECL_UNINIT): Remove. |
| (LANG_HOOKS_INITIALIZER): Remove usage of LANG_HOOKS_DECL_UNINIT. |
| * langhooks.c (lhd_decl_uninit): Remove. |
| * langhooks.h (lhd_decl_uninit): Remove prototype. |
| |
| 2004-02-05 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-dom.c (record_const_or_copy_1): New. |
| (record_const_or_copy): New. |
| (thread_across_edge): Use it. |
| (dom_opt_finalize_block): Likewise. Tidy. |
| (record_equality): Split out from ... |
| (record_equivalences_from_incoming_edge): ... here. |
| |
| 2004-02-05 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Allow |
| mixing PLUS and MINUS when folding operations. |
| |
| 2004-02-05 Andrew Macleod <amacleod@redhat.com> |
| |
| * tree-pretty-print.c (dump_bb_header): Allow TDF_SLIM printing. |
| (dump_bb_end): Allow TDF_SLIM printing. |
| (dump_generic_bb_buff): Add flags parameter to dump_bb_end. |
| |
| 2004-02-05 Jan Hubicka <jh@suse.cz> |
| |
| * alias.c (find_base_term, get_addr): Do not dereference NULL |
| pointer when all VALUE's locations has been invalidated. |
| (rtx_equal_for_memref_p): Simplify checking of VALUEs. |
| |
| 2004-02-04 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-alias-ander.c (andersen_init): Reorder/Redo code so that we |
| actually free the memory in intraprocedural mode. |
| (andersen_cleanup): Ditto. |
| |
| 2004-02-04 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-ccp.c (get_value, visit_phi_node, |
| visit_assignment, dump_lattice_value): Tidy. |
| (evaluate_stmt): Don't do debug dump here. |
| (def_to_undefined): Merge into set_lattice_value. |
| (def_to_varying): Likewise, but retain as a wrapper. |
| (set_lattice_value): Tidy. Emit correct debug info. |
| (replace_uses_in): Remove strlen hacks. |
| (execute_fold_all_builtins): Fix DECL_BUILT_IN comparison. |
| Force folding of BUILT_IN_CONSTANT_P. |
| |
| 2004-02-04 Richard Henderson <rth@redhat.com> |
| |
| * builtins.c (fold_builtin_expect): New. |
| (fold_builtin_1): Call it. |
| |
| 2004-02-04 Jeff Law <law@redhat.com> |
| |
| * jump.c (duplicate_loop_exit_test): Allow copying of the loop |
| exit test even if we do not find the LOOP_END note. |
| |
| * domwalk.c: Update comments. |
| |
| 2004-02-04 Brian Booth <bbooth@redhat.com> |
| |
| PR opt/13755 |
| * tree-dfa.c (compute_alias_sets): set rename flag for variables |
| aliased by GLOBAL_VAR. |
| |
| 2004-02-04 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): New. |
| (eliminate_redundant_computations): Call it. |
| |
| 2004-02-03 Richard Henderson <rth@redhat.com> |
| |
| PR opt/13869 |
| * tree-cfg.c (cfg_remove_useless_stmts_bb): Correct handling of |
| boolean variables in COND_EXPR_COND. |
| |
| 2004-02-03 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/13325 |
| * builtins.c (fold_builtin_1): Rename from fold_builtin. |
| (fold_builtin): New. |
| * c-simplify.c (gimplify_expr_stmt): Check TREE_NO_WARNING. |
| * stmt.c (expand_expr_stmt_value): Likewise. |
| * tree.h (struct tree_common): Add nowarning_flag. |
| (TREE_NO_WARNING): New. |
| (TREE_NO_UNUSED_WARNING): Remove. |
| * c-typeck.c (build_unary_op): Use TREE_NO_WARNING instead. |
| * stmt.c (warn_if_unused_value): Likewise. |
| |
| 2004-02-03 Steven Bosscher <stevenb@suse.de> |
| |
| * tree-ssa-dce.c: Partial rewrite. The old DCE is now called |
| `conservative'. The more aggressive algorithm uses control |
| dependence and is called `aggressive' or cd-dce. |
| * timevar.def (TV_TREE_DCE): Rename. |
| (TV_TREE_CD_DCE, TV_CONTROL_DEPENDENCES): New timevars. |
| * tree-pass.h: Declare extern pass_cd_dce. |
| * tree-optimize.c (init_tree_optimization_passes): Replace |
| the final DCE pass with a CD-DCE pass. |
| |
| 2004-02-01 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (cgraph_mark_inline_edge): Fix insertion to |
| cgraph_inline_hash. |
| |
| 2004-01-30 Frank Ch. Eigler <fche@redhat.com> |
| |
| * common.opt: Add support for -fmudflapth, -fmudflapir. |
| * invoke.texi: Document them. |
| * opts.c: Ditto. |
| * flags.h: Add new flags flag_mudflap_threads, _ignore_reads. |
| * toplev.c: Initialize new flags. Remove redundant code from |
| lang_independent_options[]. |
| * tree-mudflap.c (*): Support new flag_mudflap_threads encoding. |
| (mf_xform_derefs_1): Support flag_mudflap_ignore_reads option. |
| * c-mudflap.c (mflang_flush_calls): Mark static ctor TREE_USED. |
| |
| 2004-01-30 Ian Lance Taylor <ian@wasabisystems.com> |
| |
| * gengtype-yacc.y (bitfieldlen): Add empty action. |
| |
| 2004-01-30 Diego Novillo <dnovillo@redhat.com> |
| |
| * configure.ac: Move configuration for libbanshee and |
| libgmp from configure.in. |
| |
| 2004-01-30 Richard Henderson <rth@redhat.com> |
| |
| PR opt/13524 |
| * gengtype-yacc.y (struct_fields): Accept unnamed bitfields. |
| (bitfieldlen): Split from ... |
| (bitfieldopt): ... here. |
| * gimplify.c (mark_not_gimple): Remove. |
| (gimplify_call_expr): Don't ignore BUILT_IN_MD. |
| * tree-dfa.c (struct walk_state): Remove is_not_gimple. |
| (find_referenced_vars): Don't look for TREE_NOT_GIMPLE. |
| (find_vars_r, add_referenced_var): Likewise. |
| * tree-ssa-operands.c (get_stmt_operands, get_expr_operands): Likewise. |
| * tree-simple.h (mark_not_gimple): Remove. |
| * tree.h (struct tree_common): Remove not_gimple_flag. |
| (TREE_NOT_GIMPLE): Remove. |
| |
| 2004-01-29 Jason Merrill <jason@redhat.com> |
| |
| PR c++/13865 |
| * c-simplify.c (gimplify_for_stmt): Reorganize to fix cleanups. |
| |
| 2004-01-29 Richard Henderson <rth@redhat.com> |
| |
| PR c++/13543 |
| * tree-inline.c (initialize_inlined_parameters): Register the |
| substitute reference also. |
| |
| 2004-01-29 Richard Henderson <rth@redhat.com> |
| |
| * tree-inline.c (gimple_expand_calls_inline): Look inside |
| RETURN_EXPR. |
| |
| * tree-pretty-print.c (dump_generic_node): If TDF_DETAILS, dump |
| both name and uid. |
| |
| 2004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * cfg.c (unlink_block): Reset prev_bb and next_bb. |
| |
| 2004-01-29 Jeff Law <law@redhat.com> |
| Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-ssa-live.h (tpa_next_partition): Correctly handle compressed |
| elements. |
| * tree-ssa.c (coalesce_ssa_name): New argument, flags. Callers |
| updated. Test SSANORM_COMBINE_TEMPS in flags rather than |
| flag_tree_combine_temps. |
| (coalesce_vars): Either operand of a copy might not have a |
| partition when rewriting a subset of the variables out of SSA form. |
| (rewrite_vars_out_of_ssa): Honor -ftree-combine-temps by passing |
| in SSANORM_COMBINE_TEMPS in flags argument to remove_sas_form.. |
| |
| 2004-01-29 Dale Johannesen <dalej@apple.com> |
| |
| * Makefile.in (OBJS-common): Move tree-nomudflap.o... |
| (OBJS-archive): ...to here, and remove duplicate tree-optimize.o. |
| |
| 2004-01-28 Richard Henderson <rth@redhat.com> |
| |
| PR middle-end/13898 |
| * gimplify.c (gimplify_init_constructor): Invoke |
| lhd_set_decl_assembler_name on the now-static variable. |
| |
| 2004-01-28 Richard Henderson <rth@redhat.com> |
| |
| PR opt/13798 |
| * expr.c (is_zeros_p): Remove. Change all callers to use |
| initializer_zerop. |
| (categorize_ctor_elements_1, categorize_ctor_elements): New. |
| (count_type_elements): New. |
| (mostly_zeros_p): Use them. |
| * gimplify.c (tmp_var_id_num): Split out from create_tmp_var_raw. |
| (create_tmp_var_name): Likewise. |
| (gimplify_init_constructor): Drop constructors to readonly memory |
| as indicated by categorize_ctor_elements and can_move_by_pieces. |
| * tree.c (initializer_zerop): Handle VECTOR_CST. Don't check |
| AGGREGATE_TYPE_P for CONSTRUCTOR. |
| * tree.h (categorize_ctor_elements): Declare. |
| (count_type_elements): Declare. |
| * Makefile.in (gimplify.o): Update dependencies. |
| (GTFILES): Add gimplify.c. |
| |
| 2004-01-27 Frank Ch. Eigler <fche@redhat.com> |
| |
| * tree-mudflap.c (mx_register_decls): Support VLAs. |
| (mf_xform_derefs_1): Disable checking shortcut for VLAs. |
| * c-simplify.c (gimplify_decl_stmt): Add mudflap xref comment. |
| * gimplify.c (gimplify_bind_expr): Ditto. |
| |
| 2004-01-27 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c: Add more comments describing SSAPRE and |
| the various functions. |
| (generate_expr_as_of_bb): Use PRED, a basic block argument, instead of |
| j, the index of that bb. |
| (generate_vops_as_of_bb): Ditto. |
| (insert_occ_in_preorder_dt_order): Rename to |
| create_and_insert_occ_in_preorder_dt_order. |
| |
| 2004-01-27 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (rename_1): Add some more comments. |
| |
| 2004-01-25 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR c/13748 |
| * c-decl.c (finish_function): Do not pass |
| the function on to optimizers if there was an error. |
| |
| 2004-01-23 Richard Henderson <rth@redhat.com> |
| |
| PR opt/12941 |
| * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value. |
| (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0) |
| if SHIFT_COUNT_TRUNCATED is set. |
| |
| 2004-01-21 Richard Henderson <rth@redhat.com> |
| |
| PR c/11267 |
| * c-decl.c (c_finalize): New. |
| (finish_function): Use it. Genericize and finalize only non-nested |
| functions. Register nested functions with cgraph. |
| * c-simplify.c: Include cgraph.h. |
| (c_genericize): Genericize nested functions. |
| * gimplify.c (gimplify_expr): Use DECL_SAVED_INSNS to access |
| the struct function for the context. |
| * Makefile.in (c-simplify.o): Update dependencies. |
| |
| 2004-01-21 Steven Bosscher <stevenb@suse.de> |
| |
| PR opt/13767 |
| * tree-cfg.c (simple_goto_p): Remove NONLOCAL_LABEL check. |
| |
| 2004-01-21 Dale Johannesen <dalej@apple.com> |
| |
| * tree-dfa.c: Fix comment. |
| |
| 2004-01-21 Richard Henderson <rth@redhat.com> |
| |
| PR opt/13681 |
| * tree-ssa-operands.c (get_expr_operands): Handle (&x + c). |
| |
| * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Handle |
| flexible array members and lookalikes. |
| |
| 2004-01-21 Dale Johannesen <dalej@apple.com> |
| |
| * tree-ssa-dom.c (cprop_into_stmt): Add convert call |
| to prevent type mismatches. |
| |
| 2004-01-21 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (load_modified_phi_result): PARM_DECL is okay |
| to not have a defbb. |
| (rename_1): Add a comment. |
| |
| 2004-01-21 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (find_equivalent_equality_comparison): Treat |
| CONVERT_EXPRs just like NOP_EXPRs. |
| (record_equivalences_from_stmt): Similarly. |
| (thread_across_edge): Fix formatting goof. |
| |
| * tree-ssa-dom.c (thread_across_edge): Remove bogus restriction |
| which prevents threading around to the top of a loop. |
| |
| * tree-ssa-dom.c (thread_across_edge): Handle SWITCH_EXPRs in the |
| target block in addition to COND_EXPRs. |
| |
| * tree-ssa-dom.c (thread_across_edge): Create equivalences for |
| PHIs before looking at the statements in the destination |
| block. |
| |
| 2004-01-20 Roger Sayle <roger@eyesopen.com> |
| |
| * fold-const.c (fold_convert): Rename to fold_convert_const. |
| (fold_convert_const): Change arguments to take a tree_code, |
| a type and the operand/expression to be converted. Return |
| NULL_TREE if no simplification is possible. Add support for |
| FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR. |
| (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR. |
| Adjust call to fold_convert to match new fold_convert_const. |
| Avoid modifying the tree passed to fold in-place. |
| (nondestructive_fold_unary_to_constant): Likewise, simplify |
| call to fold_convert to match new fold_convert_const. |
| |
| 2004-01-20 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-alias-ander.c (andersen_op_assign): Update |
| prototype. Make this handle &x in the operands using |
| the addrargs parameter. |
| (andersen_init): Turn off ip_partial until variables |
| aliasing variables in other functions is resolved. |
| (andersen_add_var): Use newly renamed alias_var_new_with_aterm. |
| Fix comment. |
| (andersen_add_var_same): Ditto. |
| (andersen_function_call): Use ip_partial, not flag_unit_at_a_time. |
| * tree-alias-common.c (get_values_from_constructor): Add bitmap |
| and int * arguments. Used to mark operands that we are taking |
| address of. |
| (get_alias_var_decl): We should never see FIELD_DECL's right now. |
| (intra_function_call): Reverse ordering for slightly faster |
| projection merging. |
| (find_op_of_decl): New function. |
| (find_func_aliases): Use it. |
| Comment x = foo.y case. |
| Move get_alias_var_decl of arguments so we only call it if |
| necessary. |
| Handle address of arguments in operations. |
| (create_fun_alias_var): tvar->var. |
| Set context of fakeargs. |
| Set context of fakedecls. |
| Set DECL_PTA_ALIASVAR of RETURN_DECL's. |
| (create_fun_alias_var_ptf): tvar->var. |
| Set context of fakedecls. |
| (create_alias_vars): Only create alias vars for globals |
| with DECL_INITIAL's. |
| * tree-alias-common.h (struct tree_alias_ops): |
| Update op_assign arguments. |
| (may_alias): Fix comment. |
| (same_points_to_set): Ditto. |
| (empty_points_to_set): Ditto. |
| * tree-alias-type.h: Rename alias_tvar_new_with_aterm |
| -> alias_var_new_with_aterm. |
| * tree-alias-type.c: Ditto. |
| |
| 2004-01-20 Richard Henderson <rth@redhat.com> |
| |
| * tree-sra.c (get_scalar_for_field): Validate field. |
| (create_scalar_copies): Iterate over rhs fields too. |
| |
| 2004-01-19 Dale Johannesen <dalej@apple.com> |
| |
| * params.def: Add PARAM_MAX_CALLS_GLOBAL_VAR and |
| PARAM_MAX_CLOBBERED_VARS_GLOBAL_VAR. |
| params.h: Ditto. |
| tree-dfa.c: Use them. |
| doc/invoke.texi: Document them. |
| |
| 2004-01-19 Jeff Law <law@redhat.com> |
| |
| * tree-ssa.c (insert_phi_nodes_for): Always use fully pruned |
| SSA form. |
| |
| * tree-flow.h: Update copyright dates. |
| (register_new_def): Declare. |
| * tree-ssa-dom.c: Update copyright dates. |
| Add tracking of current definition of each program variable just |
| like we do when rewriting into SSA form. |
| (get_value_for, set_value_for): Handle either an SSA_NAME or |
| regular variable. |
| (tree_ssa_dominator_optimize): Initialize and update CURRDEFS. |
| If we thread through a block with real statements, the destination |
| of those statements must be rewritten too. |
| (thread_across_edge): Skip nop statements at the start of a |
| block. |
| (dom_opt_initialize_block_local_data): Clear block_defs |
| appropriately. |
| (record_equivalences_from_phis): Accept walk_data structure. |
| Call register_new_def appropriately. |
| (optimize_stmt): Call register_new_defs_for_stmt. |
| (dom_opt_finalize_block): Restore CURRDEFS appropriately. |
| (register_new_definitions_for_stmt): New. |
| * tree-ssa.c: Update copyright dates. |
| (register_new_def): No longer static. Accept additional argument |
| for the table to hold the new definition. Callers updated. |
| |
| * gimplify.c: Update copyright dates. |
| * tree-cfg.c: Likewise. |
| * tree.h: Likewise. |
| |
| * tree-iterator.c, tree-iterator.c: Use GCC rather than GNU CC. |
| * tree-ssa-pre.c, tree-ssa-live.h: Likewise. |
| |
| 2004-01-19 Daniel Berlin <dberlin@dberlin.org> |
| |
| * timevar.def (TV_TREE_SPLIT_EDGES): New timevar. |
| * tree-ssa-pre.c (split_critical_edges): Move from here |
| (pass_pre): Add PROP_no_crit_edges as required. |
| * tree-cfg.c (split_critical_edges): to here. |
| (pass_split_crit_edges): New pass. |
| * tree-optimize.c (tree_optimization_passes): Add NEXT_PASS |
| (split_crit_edges). |
| * tree-pass.h: Add PROP_no_crit_edges. |
| (pass_split_crit_edges): Declared. |
| |
| 2004-01-19 Frank Ch. Eigler <fche@redhat.com> |
| |
| * tree-mudflap.c (mf_build_check_statement_for): Tolerate |
| incoming locus NULL pointer. |
| |
| 2004-01-18 Richard Henderson <rth@redhat.com> |
| |
| * builtins.c (simplify_builtin_strcpy): Export. Take strlen argument. |
| (simplify_builtin_strncpy, simplify_builtin_strcmp): Similarly. |
| (simplify_builtin_strncmp): Similarly. |
| (simplify_builtin): Update to match. |
| * expr.h (simplify_builtin_strcmp, simplify_builtin_strncmp, |
| simplify_builtin_strcpy, simplify_builtin_strncpy): Declare. |
| * tree-pass.h (pass_fold_builtins): New. |
| * tree-optimize.c (init_tree_optimization_passes): Add it. |
| * tree-ssa-ccp.c (ccp_fold_builtin): Handle BUILT_IN_STRCPY, |
| BUILT_IN_STRNCPY, BUILT_IN_STRCMP, BUILT_IN_STRNCMP. |
| (get_strlen): Don't cast to size_t. |
| (execute_fold_all_builtins, pass_fold_builtins): New. |
| |
| 2004-01-19 Jan Hubicka <jh@suse.cz> |
| |
| PR opt/13729 |
| * cgraphunit.c (cgraph_finalize_compilation_unit): Fix memory leak. |
| (cgraph_remove_unreachable_nodes): Do not mix analyzed and |
| DECL_SAVED_TREE flags. |
| |
| 2004-01-18 Richard Henderson <rth@redhat.com> |
| |
| * tree-sra.c (REALPART_INDEX, IMAGPART_INDEX): Remove. |
| (sra_candidates, needs_copy_in): Use a bitmap. Update all users. |
| (struct sra_elt, sra_elt_hash, sra_elt_eq): New. |
| (sra_map_size): Remove. |
| (sra_map): Use a htab_t. |
| (lookup_scalar): Update to match. |
| (get_scalar_for_field, get_scalar_for_complex_part): Likewise. |
| (scalarize_structure_assignment): Use annotate_all_with_locus. |
| (csc_build_component_ref): Remove index argument. |
| (csc_build_complex_part): Take tree_code, not index. |
| (create_scalar_copies): Don't collect indicies. |
| (emit_scalar_copies): New. |
| (scalarize_modify_expr, scalarize_tree_list): Use it. |
| (scalarize_return_expr): Likewise. |
| (scalarize_structures): Simplify needs_copy_in iteration. |
| (scalarize_call_expr): Use annotate_all_with_locus. |
| (dump_sra_map_trav): Split from ... |
| (dump_sra_map): ... here. Update for hash table. |
| (tree_sra): Update for new datastructures. |
| |
| 2004-01-18 Richard Henderson <rth@redhat.com> |
| |
| * tree-cfg.c (dump_function_to_file): Move ";; Function" header ... |
| * tree-optimize.c (execute_one_pass): ... here. |
| |
| 2004-01-17 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-alias-common.c: s@_typevar@_var@g, s@_TVAR@_VAR@g, |
| s@_TYPEVAR@_VAR@g |
| * tree-alias-common.h: Ditto |
| * tree.h: Ditto |
| * tree-alias-ander.c: Ditto |
| * tree-alias-type.c: Ditto |
| * tree-alias-type.h: Ditto |
| |
| 2004-01-17 Richard Henderson <rth@redhat.com> |
| |
| * tree-complex.c (gimplify_val): Copy TREE_BLOCK. |
| |
| * tree-complex.c (gimplify_val): New. |
| (extract_component, do_binop, do_unop): Use it. |
| |
| 2004-01-17 Richard Henderson <rth@redhat.com> |
| |
| * tree-complex.c (expand_complex_operations_1): Fix RETURN_EXPR |
| thinko in last change. |
| |
| 2004-01-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * cfghooks.c (split_block): Don't redirect edges. |
| * cfgrtl.c (rtl_split_block): Do it here. |
| * tree-cfg.c (tree_split_block): Ditto. |
| |
| 2004-01-17 Richard Henderson <rth@redhat.com> |
| |
| * tree-cfg.c (verify_expr): Tidy. Check COND_EXPR for boolean |
| condition. |
| |
| 2004-01-17 Jan Hubicka <jh@suse.cz> |
| |
| PR optimization/11761 |
| * Makefile.in: Remove tree-simple.c from GTYized files. |
| * tree-dfa.c (find_addressable_vars): Parse nontrivial ADDR_EXPRs. |
| (discover_nonconstant_array_refs_r): New static function. |
| (discover_nonconstant_array_refs): New global function. |
| * tree-flow.h (discover_nonconstant_array_refs): Declare. |
| * tree-simple.c (types_checked, types_in_memory): Kill. |
| (struct_needs_to_live_in_memory): Kill. |
| (needs_to_live_in_memory): aggregates are safe. |
| * tree-ssa.c (rewrite_out_of_ssa): Call the new function. |
| |
| 2004-01-17 Richard Henderson <rth@redhat.com> |
| |
| PR opt/13718 |
| * tree-complex.c (expand_complex_comparison): Handle COND_EXPR. |
| (expand_complex_operations_1): Likewise. |
| |
| 2004-01-17 Richard Henderson <rth@redhat.com> |
| |
| * tree-sra.c (scalarize_tree_list): Take bitmap argument to |
| avoid emitting duplicates. Update all callers. |
| |
| 2004-01-17 Richard Henderson <rth@redhat.com> |
| |
| PR opt/13718 |
| * tree-complex.c (expand_complex_comparison): New. |
| (expand_complex_operations_1): Handle EQ_EXPR and NE_EXPR. |
| |
| 2004-01-16 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-alias-common.c (get_alias_var): Handle BIT_FIELD_REF. |
| (find_func_aliases): Ditto. |
| Update for fact that basic component_refs are no longer |
| is_gimple_variable. |
| (create_fun_alias_var): Set DECL_CONTEXT on our faked declarations. |
| (pass_del_pta): PTA dumps info on delete, so it needs a name. |
| |
| 2004-01-16 Steven Bosscher <stevenb@suse.de> |
| |
| * tree-optimize.c (init_tree_optimization_passes): Run DCE |
| before the first dominator optimization pass. |
| |
| 2004-01-15 Brian Booth <bbooth@redhat.com> |
| Richard Henderson <rth@redhat.com> |
| |
| * tree-sra.c (REALPART_INDEX, IMAGPART_INDEX): New. |
| (sra_map_size): New. |
| (make_temp): New. |
| (mark_all_vdefs): New. |
| (is_sra_candidate_decl): New. |
| (is_sra_candidate_ref): New. |
| (lookup_scalar): Use sra_map_size, make_temp. |
| (get_scalar_for_field): Rename from get_scalar_for. |
| (get_scalar_for_complex_part): New. |
| (can_be_scalarized_p): Handle COMPLEX_TYPE. |
| (scalarize_component_ref): Handle REAL/IMAGPART_EXPR. |
| (scalarize_structure_assignment): Tidy. |
| (find_candidates_for_sra): Handle COMPLEX_TYPE, return bool. |
| (csc_assign, csc_build_component_ref): Split out from ... |
| (create_scalar_copies): ... here. Handle COMPLEX_TYPE. |
| (csc_build_complex_part): New. |
| (scalarize_modify_expr): Use is_sra_candidate_foo. |
| (scalarize_tree_list): Likewise. |
| (scalarize_return_expr): Likewise. |
| (dump_sra_map): Split out from ... |
| (tree_sra): ... here. Tidy. |
| |
| 2004-01-15 Frank Ch. Eigler <fche@redhat.com> |
| |
| * tree-mudflap.c (mf_xform_derefs): Accept void return statements. |
| |
| 2004-01-15 Andrew MacLeod <amacleod@redhat.com> |
| Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (remove_local_expressions_from_table): New function |
| extracted from dom_opt_finalize_block. |
| (restore_vars_to_originalvalue): Likewise. |
| (extract_true_false_edges_from_block): Likewise. |
| (thread_across_edge): Handle if (cond) too. |
| (dom_opt_finalize_block): Use new functions. Handle if (cond). |
| |
| * tree-ssa-dom.c (thread_across_edge): Accept dom_walk argument. |
| Record temporary equivalences created by PHIs and temporarily |
| const/copy propagate into conditionals. |
| (dom_opt_finalize_block): Thread across an edge to a dominated block |
| if the dominated block has PHIs. Remove temporary equivalenecs |
| created by PHIs in thread_across_edge. Update code to restore the |
| various hash tables to use the actual varray rather than a local |
| copy of the varray. |
| (simplify_rhs_and_lookup_avail_expr): Set the condition's code |
| before settings its operands. |
| |
| * tree-ssa.c (create_temp): Use add_referenced_var rather than |
| an incomplete inline of its behavior. Also make sure to |
| set is_dereferenced_{load,store}, is_call_clobbered and is_stored. |
| |
| * tree-ssa-live.c (build_tree_conflict_graph): Correctly handle |
| case where the result of a PHI is unused. |
| |
| 2004-01-15 Diego Novillo <dnovillo@redhat.com> |
| |
| * cfghooks.c (predicted_by_p): Add missing return. |
| |
| 2004-01-15 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-dom.c (optimize_stmt): Dump new statement if |
| folding succeeded. |
| |
| 2004-01-15 Kazu Hirata <kazu@cs.umass.edu> |
| |
| * tree-cfg.c: Fix comment typos. |
| * tree-eh.c: Likewise. |
| * tree-inline.c: Likewise. |
| * tree-optimize.c: Likewise. |
| * tree-ssa.c: Likewise. |
| * tree-ssa-dom.c: Likewise. |
| * tree-ssa-operands.c: Likewise. |
| * tree-ssa-pre.c: Likewise. |
| * tree-tailcall.c: Likewise. |
| |
| 2004-01-14 Jan Hubicka <jh@suse.cz> |
| |
| * basic-block.h: Include predict.h |
| (tree_predicted_by_p, rtl_predicted_by_p, rtl_predict_edge, |
| predict_edge_def): Declare. |
| * cfghooks.h (cfg_hooks): add predict_edge and predicted_by_p |
| (predict_edge, predicted_by_p): Declare. |
| * cfghooks.c (predict_edge, predicted_by_p): Declare. |
| * cfgrtl (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add new hooks. |
| * cse.c (struct cse_basic_block_data): Rename enum values to not |
| conflict with profile.h; update all uses. |
| * predict.c: Include tree-flow.h, ggc.h, tree-dump.h |
| (predicted_by_p): Rename to ... |
| (rtl_predicted_by_p): .. this one; make global |
| (tree_predicted_by_p): New. |
| (dump_prediction): Add FILE argument. |
| (predict_edge): Rename to ... |
| (rtl_predict_edge): .. this one. |
| (tree_predict_edge): New. |
| (combine_predictions_for_insn): Update calls of predict_edge. |
| (predict_loops): Break out from ... |
| (estimate_probability): ... here; update comments; move updating |
| of unknown probabilities from ... |
| (estimate_bb_frequencies): ... here. |
| (combine_predictions_for_bb): New. |
| (tree_predict_by_opcode): New. |
| (tree_estimate_probability): New. |
| * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE, |
| PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors. |
| * predict.h: Add include guard. |
| (predict_edge, predict_edge_def): Move prototypes to basic_block.h |
| * tree-cfg.c (tree_cfg_hooks): Add prediction hooks. |
| * tree-dump.c (dump_files): Add profile. |
| * tree-flow.h (struct edge_prediction): New structure. |
| (struct bb_ann_d): Add field predictions. |
| (tree_estimate_probability): Declare. |
| * tree-optimize.c (optimize_function_tree): Call tree_estimate_probability. |
| * tree.h (tree_dump_index): Add TDI_profile. |
| * tree-pass.h (pass_profile): Declare. |
| |
| 2004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * basic-block.h (find_basic_blocks, cleanup_cfg, |
| delete_unreachable_blocks, merge_seq_blocks): Declare. |
| * cfgcleanup.c (merge_seq_blocks): New. |
| * output.h (find_basic_blocks, cleanup_cfg, delete_unreachable_blocks): |
| Declarations moved to basic-block.h. |
| * tree-cfg.c (tree_merge_blocks, tree_can_merge_blocks_p): New. |
| (cleanup_tree_cfg): Call merge_seq_blocks. |
| (tree_cfg_hooks): Add tree_can_merge_blocks_p and tree_merge_blocks. |
| |
| 2004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-cfg.c (tree_make_forwarder_block): Fix. |
| |
| 2004-01-14 Richard Henderson <rth@redhat.com> |
| |
| * tree-complex.c: New file. |
| * Makefile.in (OBJS-common): Add it. |
| * tree-pass.h (pass_lower_complex): New. |
| * tree-optimize.c (init_tree_optimization_passes): Add it. |
| |
| 2004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * Makefile.in (tree-ssa-loop.o): Add cfgloop.h dependency. |
| (cfghooks.o): Add TIMEVAR_H and toplev.h dependency. |
| * basic-block.h (struct edge_def): Use ir_type instead testing of |
| cfg_hooks directly. |
| (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb, verify_flow_info): |
| Declaration removed. |
| * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c. |
| * cfgcleanup.c (try_simplify_condjump): Changed due to change of |
| tidy_fallthru_edge. |
| * cfghooks.c: Include timevar.h and toplev.h. |
| (cfg_hooks): Made static. |
| (tree_register_cfg_hooks, ir_type): New. |
| (verify_flow_info, dump_bb): Moved from cfg.c. |
| (redirect_edge_and_branch, redirect_edge_and_branch_force, |
| split_block, split_block_after_labels, move_block_after, |
| delete_basic_block, split_edge, create_basic_block, |
| create_empty_bb, can_merge_blocks_p, merge_blocks, |
| make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges): New. |
| * cfghooks.h (struct cfg_hooks): Modified. |
| (redirect_edge_and_branch, redirect_edge_and_branch_force, split_block, |
| delete_basic_block, split_edge, create_basic_block, can_merge_blocks_p, |
| merge_blocks, make_forwarder_block): Changed into functions. |
| (loop_optimizer_init, loop_optimizer_finalize): Removed. |
| (HEADER_BLOCK, LATCH_EDGE): Moved into cfgloop.c. |
| (tidy_fallthru_edge, tidy_fallthru_edges, create_empty_bb, |
| verify_flow_info, dump_bb, ir_type): Declare. |
| (cfg_layout_rtl_cfg_hooks): Declare. |
| * cfglayout.c (copy_bbs): Don't call add_to_dominance_info. |
| * cfgloop.c (HEADER_BLOCK, LATCH_EDGE): Moved from cfghooks.h. |
| (update_latch_info, mfb_keep_just, mfb_keep_nonlatch): New functions. |
| (canonicalize_loop_headers): Use new semantics of make_forwarder_block. |
| * cfgloop.h (rtl_loop_optimizer_init, rtl_loop_optimizer_finalize): |
| Removed. |
| (loop_optimizer_init, loop_optimizer_finalize): Declare. |
| * cfgloopmanip.c (split_loop_bb): Don't update dominators. |
| (remove_bbs): Don't call remove_bbs. |
| (create_preheader): Use make_forwarder_block. |
| (mfb_keep_just, mfb_update_loops): New static functions. |
| * cfgrtl.c (cfg_layout_split_block, rtl_split_block, |
| rtl_make_forwarder_block, rtl_create_basic_block, |
| rtl_delete_block, rtl_split_block, rtl_merge_blocks, |
| tidy_fallthru_edge, rtl_split_edge, cfg_layout_merge_blocks, |
| cfg_layout_split_edge): Parts not specific to rtl moved to cfghooks.c |
| (tidy_fallthru_edges): Moved to cfghooks.c. |
| (rtl_move_block_after): New. |
| (redirect_edge_with_latch_update, update_cfg_after_block_merging): |
| Removed. |
| (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Modified. |
| * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1, |
| find_if_case_2): Don't update dominators. |
| * loop-init.c (rtl_loop_optimizer_init, rtl_loop_optimizer_finalize): |
| Replaced by rtl_loop_optimizer_init and rtl_loop_optimizer_finalize. |
| * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info. |
| * toplev.c (rest_of_handle_loop2): Enter cfglayout mode here. |
| * tree-cfg.c (create_bb): Modified to suit create_basic_block hook. |
| (tree_redirect_edge_and_branch_1): Merged into |
| tree_redirect_edge_and_branch. |
| (create_blocks_annotations): Removed. |
| (tree_loop_optimizer_init, tree_loop_optimizer_finalize): Removed. |
| (tree_make_forwarder_block, remove_bb, tree_split_edge, |
| tree_redirect_edge_and_branch, tree_split_block, |
| tree_move_block_after): Partially moved to cfghooks.c. |
| (tree_duplicate_bb): New. |
| (PENDING_STMT): Moved to tree-flow.h. |
| (tree_register_cfg_hooks): Moved to cfghooks.c. |
| (build_tree_cfg): Don't call create_blocks_annotations. |
| (factor_computed_gotos, make_blocks): Use create_empty_bb. |
| (cleanup_tree_cfg): Use delete_unreachable_blocks. |
| (remove_unreachable_blocks, insert_bb_before): Removed. |
| (remove_phi_nodes_and_edges_for_unreachable_block): Modified. |
| (tree_find_edge_insert_loc, thread_jumps): Use cfg hooks. |
| (bsi_commit_edge_inserts): Update_annotations argument removed. |
| (tree_cfg_hooks): Modified. |
| * tree-flow.h (PENDING_STMT): Moved from tree-cfg.c. |
| (insert_bb_before, remove_unreachable_blocks, |
| remove_phi_nodes_and_edges_for_unreachable_block, tree_split_edge): |
| Declaration removed. |
| (bsi_commit_edge_inserts): Declaration changed. |
| (tree_duplicate_bb): Declare. |
| * tree-sra.c (scalarize_structures): Changed due to |
| bsi_commit_edge_inserts change. |
| * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use |
| delete_unreachable_blocks. |
| * tree-ssa-loop.c: Include cfgloop.h. |
| * tree-ssa-pre.c (split_critical_edges, tree_perform_ssapre): Use cfg |
| hooks. |
| * tree-ssa.c (rewrite_trees, rewrite_vars_out_of_ssa): Changed due to |
| bsi_commit_edge_inserts change. |
| (ssa_redirect_edge): Record the phi arguments on the redirected edge. |
| * tree-tailcall.c (eliminate_tail_call): Clean stored phi arguments. |
| |
| 2004-01-13 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (gimplify_lhs_complex_part_expr): Remove. |
| (gimplify_modify_expr): Don't call it. |
| |
| * tree-alias-common.c (HAVE_BANSHEE): Make sure it's defined. |
| (pass_build_pta): Set name. |
| |
| 2004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-tailcall.c (eliminate_tail_call): Add phi nodes for the call |
| vdefs. |
| (find_tail_calls): Ignore returns with virtual operands. |
| |
| 2004-01-12 Richard Henderson <rth@redhat.com> |
| |
| * tree-pass.h: New file. |
| * gimple-low.c: Include tree-pass.h. |
| (lower_function_body): Make static, take no arguments. Set |
| dont_emit_block_notes and call reset_block_changes here. |
| (pass_lower_cf): New. |
| * toplev.c (general_init): Call init_tree_optimization_passes. |
| * toplev.h (init_tree_optimization_passes): Declare. |
| * tree-alias-ander.c: Include tree-pass.h. |
| (tree_dump_file, tree_dump_flags): Remove. |
| (andersen_init): Don't dump_begin. |
| (andersen_cleanup): Don't dump_end. |
| * tree-alias-common.c: Include tree-pass.h, timevar.h. |
| (currptadecl): Remove. |
| (create_alias_vars): Make static, take no args. Tidy ifdefs. |
| (delete_alias_vars): Likewise. Protect vs PTA_ANDERSEN. |
| (pass_build_pta, pass_del_pta): New. |
| * tree-alias-common.h (create_alias_vars): Delete decl. |
| (delete_alias_vars): Likewise. |
| * tree-cfg.c: Include tree-pass.h. |
| (tree_dump_file, tree_dump_flags): Remove. |
| (build_tree_cfg): Don't timevar, do init_flow. Ensure one bb. |
| Don't dump the function here. |
| (execute_build_cfg, pass_build_cfg): New. |
| (remove_useless_stmts): Make static, take no arguments. |
| (pass_remove_useless_stmts): New. |
| (remove_bb): Don't open the dump file. |
| * tree-dfa.c: Include tree-pass.h. |
| (tree_dump_file, tree_dump_flags): Remove. |
| (find_referenced_vars): Make static, take no args. Do init_tree_ssa. |
| (compute_may_aliases): Similarly. Don't timevar or open dump file. |
| Don't delete_alias_vars here. |
| (pass_referenced_vars, pass_may_alias): New. |
| * tree-dump.c (dump_files): Remove optimization dumps. |
| (extra_dump_files, extra_dump_files_in_use): New. |
| (extra_dump_files_alloced): New. |
| (dump_register): New. |
| (get_dump_file_info): New. |
| (dump_begin, dump_enabled_p, dump_flag_name): Use it. |
| (dump_enable_all): Handle extra_dump_files. |
| (dump_switch_p_1): Split out from dump_switch_p. |
| (dump_switch_p): Handle extra_dump_files. |
| * tree-dump.h (dump_register): Declare. |
| * tree-eh.c: Include tree-pass.h |
| (lower_eh_constructs): Make static, take no args. Don't timevar, |
| don't dump function. |
| (pass_lower_eh): New. |
| * tree-flow.h (remove_useless_stmts, find_referenced_vars, |
| compute_may_aliases, lower_function_body, rewrite_out_of_ssa, |
| tree_ssa_ccp, tree_ssa_dominator_optimize, tree_ssa_dce, |
| tree_ssa_loop_opt, lower_eh_constructs, tree_sra): Remove. |
| (rewrite_into_ssa): Update decl. |
| * tree-mudflap.c: Include tree-pass.h. |
| (mudflap_function_decls): Make static, take no args, don't process |
| functions with mf_marked_p. |
| (mudflap_function_ops): Likewise. |
| (gate_mudflap, pass_mudflap_1, pass_mudflap_2): New. |
| (mudflap_enqueue_decl): Don't open dump file. |
| (mudflap_enqueue_constant): Likewise. |
| * tree-nomudflap.c: Include tree-pass.h. |
| (mudflap_c_function_decls, mudflap_c_function_ops): Remove. |
| (pass_mudflap_1, pass_mudflap_2): New. |
| * tree-optimize.c: Include tree-pass.h. |
| (optimize_function_tree): Remove. |
| (tree_dump_file, tree_dump_flags, vars_to_rename): New. |
| (all_passes): New. |
| (execute_gimple, pass_gimple): New. |
| (execute_rebuild_bind, pass_rebuild_bind): New. |
| (gate_all_optimizations, pass_all_optimizations): New. |
| (execute_del_cfg, pass_del_cfg): New. |
| (register_one_dump_file, register_dump_files): New. |
| (dup_pass_1, init_tree_optimization_passes): New. |
| (current_properties, last_verified): New. |
| (execute_todo, execute_one_pass, execute_pass_list): New. |
| (tree_rest_of_compilation): Remove -O0 passes. |
| * tree-sra.c: Include tree-pass.h, flags.h. |
| (tree_dump_file, tree_dump_flags, vars_to_rename): Remove. |
| (tree_sra): Make static, take no args. Don't timevar or dump file. |
| (gate_sra, pass_sra): New. |
| * tree-ssa-ccp.c: Include tree-pass.h, flags.h. |
| (tree_dump_file, tree_dump_flags): New. |
| (tree_ssa_ccp): Make static, take no args. Don't timevar or dump file. |
| (gate_ccp, pass_ccp): New. |
| (substitute_and_fold): Take no args. |
| * tree-ssa-dce.c: Include tree-pass.h, flags.h. |
| (tree_dump_file, tree_dump_flags): New. |
| (tree_ssa_dce): Make static, take no args. Don't open dump file. |
| (gate_dce, pass_dce): New. |
| * tree-ssa-dom.c: Include tree-pass.h, flags.h. |
| (tree_dump_file, tree_dump_flags, vars_to_rename): Remove. |
| (tree_ssa_dominator_optimize): Make static, take no args, don't |
| timevar, don't dump file. |
| (gate_dominator, pass_dominator): New. |
| * tree-ssa-loop.c: Include tree-pass.h, flags.h. |
| (tree_dump_file, tree_dump_flags): Remove. |
| (tree_ssa_loop_opt): Make static, take no args, don't open dump file. |
| (gate_loop, pass_loop): New. |
| * tree-ssa-pre.c: Include tree-pass.h, flags.h. |
| (tree_dump_file, tree_dump_flags): Remove. |
| (execute_pre): Rename from tree_perform_ssapre, make static, |
| take no args, don't timevar, don't open dump file, don't allocate |
| vars_to_rename. |
| (gate_pre, pass_pre): New. |
| * tree-ssa.c: Include tree-pass.h. |
| (tree_dump_file, tree_dump_flags, vars_to_rename): Remove. |
| (rewrite_into_ssa): Take no arguments, don't open dump file. |
| (rewrite_out_of_ssa): Make static, take no args, don't timevar, |
| don't open dump file. Disable TER if mudflap. |
| (pass_build_ssa, pass_del_ssa): New. |
| * tree-tailcall.c: Include tree-pass.h, flags.h. |
| (tree_dump_file, tree_dump_flags): Remove. |
| (tree_optimize_tail_calls_1): Rename from tree_optimize_tail_calls. |
| Make static, take only opt_tailcalls, don't dump file. |
| (execute_tail_recursion, gate_tail_calls, execute_tail_calls): New. |
| (pass_tail_recursion, pass_tail_calls): New. |
| * tree.h (enum tree_dump_index): Remove optimization dumps. |
| * Makefile.in (tree-alias-ander.o, tree-alias-common.o, tree-ssa.o, |
| tree-ssa-dom.o, tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o, |
| tree-dfa.o, tree-eh.o, tree-ssa-loop.o, tree-optimize.o, gimple-low.o, |
| tree-mudflap.o, tree-ssa-dce.o, tree-ssa-ccp.o, tree-sra.o: Update |
| dependencies. |
| |
| 2004-01-12 Frank Ch. Eigler <fche@redhat.com> |
| |
| * tree-mudflap.c (mf_xform_derefs): Restore instrumentation of |
| RETURN_EXPRs. |
| |
| 2004-01-11 Jan Hubicka <jh@suse.cz> |
| |
| * tree-cfg.c (remove_usless_stmts_cond): Fold statement. |
| (remove_useless_stmts_1): Fold trees we know how to fold. |
| |
| 2004-01-09 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (gimplify_constructor): Merge into ... |
| (gimplify_init_constructor): ... here. Handle COMPLEX_TYPE and |
| VECTOR_TYPE. |
| (gimplify_lhs_complex_part_expr): New. |
| (gimplify_modify_expr): Call it. |
| * tree-simple.c (is_gimple_rhs): Accept COMPLEX_EXPR. |
| * c-pretty-print.c (pp_c_initializer): Accept any type CONSTRUCTOR. |
| (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and |
| COMPLEX_TYPE. |
| |
| 2004-01-09 Steven Bosscher <stevenb@suse.de> |
| |
| PR optimization/13599 |
| * tree-cfg.c (remove_useless_stmts_cond): Clear last-goto |
| before returning. |
| |
| 2004-01-09 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (gimplify_asm_expr): Fix ordering of ASM_INPUTS. |
| |
| 2004-01-09 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.h (cgraph_clone_inlined_nodes): Declare. |
| * cgraphunit.c (cgrpah_clone_inlined_nodes): Make global. |
| (cgraph_mark_inline_edge): Sanity check that size is positive. |
| (cgraph_decide_inlining): Fix typo. |
| * tree-optimize.c (tree_rest_of_compilation): Fix node duplication |
| code. |
| |
| 2004-01-09 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (estimate_num_insns_1): Fix. |
| |
| 2004-01-09 Richard Henderson <rth@redhat.com> |
| |
| * tree-alias-ander.c, tree-cfg.c, tree-dfa.c, tree-mudflap.c, |
| tree-sra.c, tree-ssa-ccp.c, tree-ssa-dce.c, tree-ssa-dom.c, |
| tree-ssa-loop.c, tree-ssa-pre.c, tree-ssa.c, tree-tailcall.c: Rename |
| dump_file and dump_flags to tree_dump_file/flags. |
| |
| 2004-01-08 Frank Ch. Eigler <fche@redhat.com> |
| |
| * tree-mudflap.c (mf_build_string): Properly mf_mark string. |
| (mf_varname_tree): Remove redundant marking. |
| * tree-optimize.c (tree_rest_of_compilation): Skip mudflap processing |
| of mf_marked functions. |
| * c-mudflap.c (mflang_flush_calls): mf_mark synthetic function. |
| |
| 2004-01-07 Diego Novillo <dnovillo@redhat.com> |
| |
| * Makefile.in (OBJS-common): Remove tree-must-alias.o |
| (tree-must-alias.o): Remove. |
| * common.opt (ftree-must-alias): Remove. |
| * flags.h (flag_tree_must_alias): Remove. Update all users. |
| * timevar.def (TV_TREE_MUST_ALIAS): Remove. |
| * toplev.c (f_options): Remove entry for -ftree-must-alias. |
| * tree-alias-common.c (local_alias_vars): Add GTY marker. |
| (local_alias_varnums): Likewise. |
| * tree-dfa.c (aliases_computed_p): Declare. |
| (dump_variable): Show variable UID and dereferenced bits. |
| (compute_may_aliases): Add arguments 'vars_to_rename' and 'phase'. |
| Do not call create_alias_vars. |
| Call promote_call_clobbered_vars |
| Do debugging dumps. |
| Set 'aliases_computed_p' to true before returning. |
| (create_memory_tags): Call may_be_aliased. |
| Mark new memory tags for renaming. |
| (compute_alias_sets): Don't do debugging dumps. |
| (find_variable_in): Move from tree-must-alias.c |
| (remove_element_from): Likewise. |
| (find_addressable_vars): Likewise |
| (promote_call_clobbered_vars): New. |
| (get_memory_tag_for): Mark the tag volatile if the pointed-to type |
| is volatile. |
| * tree-dump.c (dump_files): Remove entry for tree-mustalias. |
| Add entries for tree-ssa7, tree-dom3 and tree-dce3. |
| * tree-flow-inline.h (may_be_aliased): New. |
| * tree-flow.h (may_be_aliased): Declare. |
| (aliases_computed_p): Declare. |
| (tree_compute_must_alias): Remove. |
| * tree-must-alias.c: Remove. |
| * tree-optimize.c: Include tree-alias-common.h. |
| (optimize_function_tree): Call create_alias_vars before going into |
| SSA form. |
| Do not compute aliases until after the first DOM and DCE passes. |
| Run DOM and DCE once more after computing may-aliases. |
| * tree-ssa-dom.c (propagate_copy): Merge the dereferenced bit flags |
| when copy propagating pointers. |
| * tree-ssa-operands.c (get_stmt_operands): Assume that the |
| statement has no volatile operands. |
| (get_expr_operands): When processing an INDIRECT_REF expressions, |
| mark the statement as having volatile operands if aliases have not |
| been computed. |
| (add_stmt_operand): If the variable may be aliased and aliasing has |
| not been computed yet, mark the statement as having volatile |
| operands. |
| * tree-ssa.c (init_tree_ssa): Set aliases_computed_p to false. |
| (delete_tree_ssa): Likewise. |
| * tree.h (tree_dump_index): Remove TDI_mustalias. |
| Add TDI_dom_3, TDI_ssa_7 and TDI_dce_3. |
| * doc/invoke.texi: Remove must-alias documentation. |
| |
| 2004-01-07 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dce.c (find_useful_stmts): Do not consider PHIs for |
| virtual operands inherently necessary. |
| |
| 2004-01-07 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-dfa.c (free_df_for_stmt, free_df): New functions. |
| (compute_immediate_uses_for_stmt): Record uses in VDEFs. |
| * tree-flow.h (free_df, kill_redundant_phi_nodes): Declare. |
| * tree-optimize.c (optimize_function_tree): Call |
| kill_redundant_phi_nodes. |
| * tree-ssa-ccp.c (finalize): Call free_df. |
| * tree-ssa.c (replace_immediate_uses, raise_value, |
| kill_redundant_phi_nodes): New functions. |
| |
| 2004-01-06 Jeff Law <law@redhat.com> |
| |
| * tree.h (FUNCTION_RECEIVES_NONLOCAL_GOTO): Kill. |
| * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt): Use |
| current_function_has_nonlocal_label instead of |
| FUNCTION_RECEIVES_NONLOCAL_GOTO. |
| * gimplify.c (gimplify_expr): Set has_nonlocal_label in the |
| appropriate function's struct function rather than setting |
| a bit in the FUNCTION_DECL. |
| |
| 2004-01-06 Jan Hubicka <jh@suse.cz> |
| |
| * expr.c (string_constant): Recognize array_ref. |
| |
| 2004-01-06 Richard Henderson <rth@redhat.com> |
| |
| * builtins.c (builtin_save_expr): New. |
| (expand_builtin_mathfn, expand_builtin_mathfn_2, |
| expand_builtin_strcmp, expand_builtin_strncmp, |
| expand_builtin_strcat, fold_builtin_cabs): Use it. |
| |
| 2004-01-06 Jan Hubicka <jh@suse.cz> |
| |
| * fold-const.c (fold): Do not rebuild comparison when nothing |
| changed. |
| |
| 2004-01-05 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-ccp.c (ccp_fold_builtin): Return early for builtins |
| taking no arugment. |
| |
| 2004-01-05 Steven Bosscher <steven@gcc.gnu.org> |
| |
| * tree-ssa-dce.c: Clean up whitespace. |
| |
| * tree-cfg.c (tree_verify_flow_info): Fix complaint about |
| missing or wrong labels in the targets of a conditional branch. |
| |
| 2004-01-05 Richard Henderson <rth@redhat.com> |
| |
| * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Check |
| for signed zeros before recording value. |
| * Makefile.in (tree-ssa-dom.o): Depend on real.h. |
| |
| 2004-01-05 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (cprop_into_stmt): Remove hack which prevented |
| copy propagation into statements with virtual operands, but no |
| real operands. |
| |
| * tree-ssa-dom.c (tree_ssa_dominator_optimize): Correctly handle |
| the case where an edge we wish to redirect is split by the out of SSA |
| code. |
| |
| 2004-01-05 Richard Henderson <rth@redhat.com> |
| |
| * c-tree.h (struct lang_type): Add enum_min, enum_max. |
| * c-decl.c (finish_enum): Set them. Set TYPE_MIN/MAX_VALUE to |
| the limits of the compatible type, not to the enumerators. |
| (check_bitfield_type_and_width): Use them. |
| (finish_struct): Clear allocated struct lang_type. |
| * gimplify.c (gimplify_switch_expr): Remove special handling of |
| outer cast in a switch. |
| * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Likewise. |
| |
| 2004-01-05 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-ssa-pre.c (added_phis): Removed. |
| Remove gt-tree-ssa-pre.h. |
| (process_left_occs_and_kills): ASM_EXPR's block load pre. |
| |
| * Makefile.in (GTFILES): Don't process tree-ssa-pre.c. |
| gt-tree-ssa-pre.h isn't a gtfile anymore. |
| |
| 2004-01-05 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * config.gcc (powerpc-*-darwin*): Make libbanshee rebuild |
| on PPC darwin. |
| |
| 2004-01-05 Richard Henderson <rth@redhat.com> |
| |
| * gimplify.c (gimplify_expr): Move check for error_mark inside |
| the main loop. |
| |
| 2004-01-04 Jan Hubicka <jh@suse.cz> |
| |
| * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency. |
| * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed |
| * cgraph.h (cgraph_edge): Replace inline_call by inline_failed |
| (cgraph_inline_p): Add extra argument reason. |
| * cgraphunit.c: Minor formating fixes. |
| cgraph_first_inlined_callee): New functions. |
| (record_call_1): Record builtins too. |
| (cgraph_analyze_function): Update inline_failed messages. |
| (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into, |
| cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed. |
| (cgraph_check_inline_limits): Likewise; Add argument reason. |
| (cgraph_set_inline_failed): New static function. |
| (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set |
| reasons. |
| (cgraph_inline_p): Add new argument reason. |
| * tree-inline.c (expand_call_inline): Update warning. |
| |
| 2004-01-04 Andreas Jaeger <aj@suse.de> |
| |
| * common.opt: Re-order some options in ASCII collating orders. |
| |
| 2004-01-03 Richard Henderson <rth@redhat.com> |
| |
| * toplev.c (rest_of_compilation): Fixup merge error wrt |
| check_function_return_warnings. |
| |
| * tree.h (FUNCTION_RECEIVES_NONLOCAL_GOTO): Use unsigned_flag. |
| |
| 2004-01-02 Jan Hubicka <jh@suse.cz> |
| |
| * c-decl.c (duplicate_decls): Output DIE of extern inline function |
| only when it can be inlined. |
| * c-objc-common.c (c_disregard_inline_limits): When not inlining |
| extern inline functions do not disregard. |
| * cgraphunit.c (cgraph_analyze_function): When not inlining do not set |
| inline. |
| (cgraph_decide_inlining): Limit work done when not inlining. |
| (cgrpah_decide_inlining_incrementally): Likewise. |
| * tree-optimize.c (tree_rest_of_compilation): Do not call |
| optimize_inline_calls |
| when there is nothing to inline. |
| |
| 2004-01-01 Richard Henderson <rth@redhat.com> |
| |
| * c-common.c (c_expand_expr): Don't handle STMT_EXPR. |
| * c-objc-common.c (c_objc_common_finish_file): Use expand_expr. |
| * c-semantics.c (lang_expand_stmt, lang_expand_decl_stmt, |
| expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt, |
| genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, |
| genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt, |
| genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt, |
| genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt, |
| genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt, |
| genrtl_cleanup_stmt, expand_stmt, find_reachable_label, |
| find_reachable_label_1, expand_unreachable_if_stmt, |
| expand_unreachable_stmt): Remove. |
| * c-common.h: Update. |
| |
| 2003-12-31 Richard Henderson <rth@redhat.com> |
| |
| * c-mudflap.c (mflang_register_call): Remove. |
| (mflang_flush_calls): Use start_function/finish_function. |
| * tree-mudflap.c (mf_init_extern_trees): Tidy. |
| (mf_decl_cache_locals): Fix chaining for empty body. |
| (deferred_static_decl_labels): Remove. |
| (deferred_static_decls_init): Remove. |
| (mudflap_register_call): New. |
| (mudflap_enqueue_decl): Use it. Remove label argument. |
| (mudflap_enqueue_constant): Likewise. |
| (mudflap_finish_file): Update to match. |
| * tree-mudflap.h (mudflap_enqueue_decl): Remove label argument. |
| (mudflap_enqueue_constant): Likewise. |
| (mflang_register_call): Remove. |
| * tree-nomudflap.c (mudflap_enqueue_decl): Remove label argument. |
| (mudflap_enqueue_constant): Likewise. |
| * tree-optimize.c (tree_ssa_finish): Don't create NULL bodies. |
| * varasm.c (make_decl_rtl): Update mudflap_enqueue_decl call. |
| (output_constant_def_contents): Similarly for mudflap_enqueue_constant. |
| |
| 2003-12-26 Sebastian Pop <s.pop@laposte.net> |
| |
| * tree-cfg.c (print_loop, print_pred_bbs, print_succ_bbs, |
| debug_loop_ir, print_loop_ir): New. |
| * tree-flow.h (debug_loop_ir, print_loop_ir): Declare. |
| |
| 2003-12-23 Jeff Law <law@redhat.com> |
| |
| * tree-cfg.c (tree_find_edge_insert_loc): Do not use the target |
| block as an insertion location if the target block has PHI nodes. |
| |
| 2003-12-23 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (cgraph_mark_inline): Accept argument edge; return |
| next edge not redirected. |
| (cgraph_recursive_inlining_p): Simplify. |
| (cgraph_decide_inlining*): Update calls of cgraph_mark_inline. |
| |
| 2003-12-22 Toon Moene <toon@moene.indiv.nluug.nl> |
| |
| * tree-alias-common.c (find_func_aliases): Do not call |
| intra_function_call for languages assuring no aliasing between |
| arguments (by themselves) and global memory. |
| |
| 2003-12-21 Jan Hubicka <jh@suse.cz> |
| |
| * tree-ssa-ccp.c (fold_stmt): Return when there is no RHS |
| (get_rhs): Return for RETURN_EXPR with no operand. |
| |
| 2003-12-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-cfg.c (tree_make_forwarder_block): Use split_block. |
| (tree_split_block): New. |
| (tree_cfg_hooks): Add tree_split_block. |
| (tree_loop_optimizer_init): Enable force_single_succ_latches. |
| * cfgloopmanip.c (loop_split_edge_with): Don't update dominators. |
| * cfgrtl.c (rtl_split_edge, cfg_layout_split_edge): Update dominators. |
| |
| 2003-12-19 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-dfa.c (alias_stats_d): New structure. |
| (alias_stats): New variable. |
| (create_memory_tags): Zero out alias_stats. |
| (dump_alias_stats): New function. |
| (compute_alias_sets): Call it if TDF_STATS is set. |
| (may_alias_p): Collect the various statistics. |
| |
| 2003-12-19 Diego Novillo <dnovillo@redhat.com> |
| |
| * gimple-low.c (expand_var_p): Always expand volatiles. |
| * tree-dfa.c (find_referenced_vars): Move up in the file. |
| (create_memory_tags): New local function. |
| (compute_may_aliases): Call it. |
| (add_referenced_var): Move code to create memory tags and create |
| aliasing arrays to create_memory_tags. |
| (get_memory_tag_for): Don't mark memory tags volatile. Mark them |
| addressable. |
| * tree-flow.h (var_ann_d): Add bitfields is_dereferenced_store and |
| is_dereferenced_load. |
| (add_call_clobbered_var): Remove. |
| * tree-ssa-operands.c (check_optype_freelist): Mark arguments |
| unused. |
| (add_optype_freelist): Likewise. |
| (add_stmt_operand): Don't add operands for volatile variables. |
| |
| 2003-12-19 Kazu Hirata <kazu@cs.umass.edu> |
| |
| * dominance.c: Fix comment typos. |
| * et-forest.c: Likewise. |
| * et-forest.h: Likewise. |
| * tree-cfg.c: Likewise. |
| * tree-eh.c: Likewise. |
| * tree-mudflap.c: Likewise. |
| * tree-optimize.c: Likewise. |
| * tree-pretty-print.c: Likewise. |
| * tree-ssa-ccp.c: Likewise. |
| * tree-ssa-dom.c: Likewise. |
| * tree-ssa.c: Likewise. |
| * tree-tailcall.c: Likewise. |
| * tree.def: Likewise. |
| * tree.h: Likewise. |
| |
| 2003-12-18 Jason Merrill <jason@redhat.com> |
| |
| PR c++/12453 |
| * c-simplify.c (stmt_expr_last_stmt): Split out from... |
| (gimplify_stmt_expr): Here. |
| * c-common.h: Declare it. |
| |
| 2003-12-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * et-forest.h (et_forest_create, et_forest_delete, |
| et_forest_add_node, et_forest_add_edge, et_forest_remove_node, |
| et_forest_remove_edge, et_forest_parent, |
| et_forest_common_ancestor, et_forest_node_value, |
| et_forest_enumerate_sons): Declarations removed. |
| (struct et_node): New. |
| (et_new_tree, et_free_tree, et_set_father, et_split, et_nca, |
| et_below): Declare. |
| * et-forest.c (struct et_forest_occurrence, struct et_forest, |
| struct et_forest_node): Removed. |
| (et_forest_create, et_forest_delete, |
| et_forest_add_node, et_forest_add_edge, et_forest_remove_node, |
| et_forest_remove_edge, et_forest_parent, |
| et_forest_common_ancestor, et_forest_node_value, |
| et_forest_enumerate_sons, splay, remove_all_occurrences, |
| find_leftmost_node, find_rightmost_node, calculate_value): Removed. |
| (struct et_occ): New. |
| (et_nodes, et_occurences): New. |
| (set_depth, set_depth_add, set_prev, set_next, et_recomp_min, |
| et_check_occ_sanity, et_check_sanity, et_check_tree_sanity, |
| record_path_before_1, record_path_before, check_path_after_1, |
| check_path_after, et_splay, et_new_occ, et_new_tree, |
| et_free_tree, et_set_father, et_split, et_nca, et_below): New. |
| * basic-block.h (struct basic_block_def): New field dom. |
| (struct dominance_info): Type removed. |
| (calculate_dominance_info, free_dominance_info, |
| nearest_common_dominator, set_immediate_dominator, |
| get_immediate_dominator, dominated_by_p, get_dominated_by, |
| add_to_dominance_info, delete_from_dominance_info, |
| recount_dominator, redirect_immediate_dominators, |
| iterate_fix_dominators, verify_dominators): Declarations |
| changed. |
| (enum dom_state): New. |
| (dom_computed): New variable. |
| (first_dom_son, next_dom_son): Declare. |
| * dominance.c (struct dominance_info): Removed. |
| (BB_NODE, SET_BB_NODE): Removed. |
| (calculate_dominance_info, free_dominance_info, |
| nearest_common_dominator, set_immediate_dominator, |
| get_immediate_dominator, dominated_by_p, get_dominated_by, |
| add_to_dominance_info, delete_from_dominance_info, |
| recount_dominator, redirect_immediate_dominators, |
| iterate_fix_dominators, verify_dominators, |
| debug_dominance_info): Work over new datastructure. Access |
| dominance datastructures through CFG. |
| (assign_dfs_numbers, compute_dom_fast_query, first_dom_son, |
| next_dom_son): New. |
| * tree-cfg.c (pdom_info): Variable removed. |
| (create_bb): Add the block to the dominance information. |
| (cleanup_tree_cfg): Let updating of the dominance on the |
| individual passes. |
| (remove_bb): Don't handle pdom. |
| (cleanup_control_expr_graph, tree_make_forwarder_block, |
| thread_jumps): Invalidate the dominators. |
| (tree_split_edge): Update the dominators. |
| (compute_dominance_frontiers_1, compute_dominance_frontiers, |
| tree_verify_flow_info, tree_loop_optimizer_init): Use the new |
| interface to dominators. |
| * domwalk.c (walk_dominator_tree): Do not use dom_children. |
| * tree-flow-inline.h (add_dom_child, remove_dom_child, |
| clear_dom_children, dom_children): Removed. |
| * tree-flow.h (struct bb_ann_d): Dom_children field removed. |
| (add_dom_child, dom_children, build_dominator_tree): Declaration |
| removed. |
| (compute_dominance_frontiers): Declaration changed. |
| * tree-optimize.c (optimize_function_tree): Free dominance |
| information in the end. |
| * tree-ssa-dom.c (tree_ssa_dominator_optimize, |
| dom_opt_finalize_block): Do not use dom_children. |
| * tree-ssa-pre.c (fast_a_dominates_b, build_dfs_id_array_1, |
| build_dfs_id_array): Removed. |
| (pre_idom, dfs_id, dfs_id_last): Variables removed. |
| (build_dfn_array): Do not use dom_children. |
| (eref_compare, load_modified_phi_result, rename_1, reaching_def, |
| finalize_1, collect_expressions, tree_perform_ssapre): Use the |
| new interface to the dominance information. |
| * tree-ssa.c (struct mark_def_sites_global_data): Idom field |
| removed. |
| (set_livein_block, verify_use, verify_phi_args, |
| rewrite_into_ssa, mark_def_sites, verify_ssa): Use the new |
| interface to the dominance information. |
| (build_dominator_tree): Removed. |
| * tree-tailcall.c (tree_optimize_tail_calls): Invalidate |
| dominance information. |
| * bt-load.c (dom): Variable removed. |
| (augment_live_range, combine_btr_defs, migrate_btr_def, |
| migrate_btr_defs, branch_target_load_optimize): Updated for the |
| new interface for dominance information. |
| * cfglayout.c (copy_bbs): Removed loops argument. Updated for |
| the new interface for dominance information. |
| * cfglayout.h (copy_bbs): Declaration changed. |
| * cfgloop.c (flow_loop_pre_header_find, flow_loops_cfg_dump, |
| flow_loop_scan, canonicalize_loop_headers, flow_loops_find): Updated |
| for the new interface for dominance information. |
| (flow_loop_scan): Loops argument removed. |
| (flow_loops_free): Don't release dominators. |
| * cfgloop.h (struct cfg): Dom field removed. |
| (flow_loop_scan, loop_split_edge_with, simple_loop_p, |
| just_once_each_iteration_p, split_loop_bb): Declaration changed. |
| * cfgloopanal.c (simple_loop_exit_p, simple_increment, |
| just_once_each_iteration_p, simple_loop_p): Remove loops argument. |
| Updated for the new interface for dominance information. |
| * cfgloopmanip.c (remove_bbs, find_path, create_preheader, |
| split_loop_bb, loopify, duplicate_loop_to_header_edge, |
| force_single_succ_latches, loop_split_edge_with): Ditto. |
| (create_loop_notes): Free the dominators. |
| * gcse.c (dominators): Variable removed. |
| (free_code_hoist_mem, compute_code_hoist_data, hoist_code): |
| Updated for the new interface for dominance information. |
| * ifcvt.c (post_dominators): Variable removed. |
| (mark_loop_exit_edges, merge_if_block, find_if_header, |
| find_cond_trap, find_if_case_1, find_if_case_2, if_convert): |
| Updated for the new interface for dominance information. |
| * loop-init.c (rtl_loop_optimizer_init, |
| rtl_loop_optimizer_finalize): Ditto. |
| * loop-unroll.c (decide_peel_simple, decide_peel_once_rolling, |
| decide_peel_completely, decide_unroll_stupid, |
| decide_unroll_constant_iterations, |
| decide_unroll_runtime_iterations): Loops argument removed. |
| Updated for the new interface for dominance information. |
| (unroll_and_peel_loops, peel_loops_completely, |
| unroll_loop_runtime_iterations): Updated for the new interface for |
| dominance information. |
| * loop-unswitch.c (may_unswitch_on_p, unswitch_loops, |
| unswitch_single_loop, unswitch_loop): Updated for the new |
| interface for dominance information. |
| * predict.c (process_note_predictions, process_note_prediction, |
| estimate_probability, note_prediction_to_br_prob): Ditto. |
| * sched-rgn.c (find_rgns, init_regions): Ditto. |
| * toplev.c (rest_of_handle_branch_prob): Free the dominators. |
| |
| 2003-12-18 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (edges_to_redirect, redirection_targets): Merged |
| into a single varray "redirection_edges". |
| (tree_ssa_dominator_optimize): Twiddle initialization, finalization |
| and accessors to redirection information based on combining varrays. |
| Get the threading destination from the saved edge rather than from a |
| saved block. Mark variables appearing in PHIs at the jump thread |
| destination to be taken out of SSA form. |
| (thread_across_edge): Save the edge into the destination block |
| rather than the destination block itself. Twiddle based on |
| combining varrays of jump threading information. |
| * tree-flow.h (tree_block_forwards_to): Returns an edge rather than |
| a block. |
| * tree-cfg.c (tree_block_forwards_to): Return the edge leading to |
| the target block rather than the target block itself. |
| |
| 2003-12-18 Daniel Berlin <dberlin@dberlin.org> |
| |
| * tree-dfa.c (get_memory_tag_for): Don't put things with different |
| points-to sets in the same memory tag. |
| |
| 2003-12-18 Jan Hubicka <jh@suse.cz> |
| |
| * c-common.c (handle_nonnull_attribute, check_function_nonnull): |
| Initialize arg_num. |
| * c-format.c (handle_format_attribute): Initialize format_num. |
| * rtlanal.c (get_related_value): Initialize get_jump_table_offset |
| |
| 2003-12-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * stmt.c (expand_start_loop, expand_loop_continue_here, |
| expand_end_loop): Don't create loop notes. |
| |
| 2003-12-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| Jeff Law <law@redhat.com> |
| |
| * tree-cfg.c (tree_node_shared_p): Explicitly allow sharing of |
| CST nodes. |
| * tree-simple.c (is_gimple_rhs): Allow CST nodes. |
| (is_gimple_min_invariant): Reject constants with TREE_OVERFLOW set. |
| * tree-ssa-ccp (visit_assignment): Test is_gimple_min_invariant |
| after munging bitfields. |
| * tree-ssa-dom.c (record_equivalences_from_stmt): Similarly. |
| |
| 2003-12-17 Jan Hubicka <jh@suse.cz> |
| |
| Based on patch by Dale Johannesen |
| * expr.c (MOVE_RATIO, CLEAR_RATIO): Move to ... |
| * expr.h (MOVE_RATIO, CLEAR_RATIO): ... here |
| |
| 2003-12-17 Jan Hubicka <jh@suse.cz> |
| |
| * Makefile.in (sibcall.o): Kill. |
| (tree-tailcall.o): Add except.h dependency |
| * sibcall.c: Kill. |
| (purge_reg_equiv_notes, purge_mem_unchanging_flag): Move to ... |
| * calls.c (purge_reg_equiv_notes, purge_mem_unchanging_flag) ... here. |
| (expand_call): Do not produce placeholders; do not deal with tail |
| recursion; set tail_call_emit. |
| (fixup_tail_calls): New. |
| * expr.h (fixup_tail_calls): Declare. |
| * toplev.c (rest_of_handle_sibling_calls): Kill. |
| (rest_of_compialtion): Do not use rest_of_handle_sibling_calls; |
| call fixup_tail_calls. |
| * tree-dump.c (dump_files): Add tail2 |
| * tree-flow.h (tree_optimize_tail_calls): Update prototype. |
| * tree-optimize.c (optimize_function_tree): Do tail optimization twice. |
| * tree-tailcall.c: Inlucde except.h |
| (suitable_for_tail_call_opt_p): New. |
| (optimize_tail_call): Add opt_tailcalls argument; optimize tailcalls. |
| (tree_optimize_tail_calls): Add opt_tailcalls/pass arguments. |
| * tree.h (CALL_EXPR_TAILCALL): New. |
| (tree_dump_index): Add tail2 |
| * function.h (struct function): Add tail_call_emit field. |
| |
| 2003-12-17 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (estimate_num_insns_1): Check that all nodes are |
| known; add missing nodes; fix MODIFY_EXPR |
| |
| 2003-12-16 Jason Merrill <jason@redhat.com> |
| |
| PR middle-end/12920 |
| * stor-layout.c (layout_type): Just return if type is |
| error_mark_node. |
| * c-decl.c (grokdeclarator): Immediately layout an |
| ARRAY_TYPE used in a pointer-to-array declarator. |
| |
| 2003-12-16 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-dfa.c (may_alias_p): If VAR and PTR are pointers with the |
| same alias set, return false. |
| (get_memory_tag_for): Group based on alias set classes, not on |
| conflicting alias sets. |
| * tree-must-alias.c (promote_var): Don't bring aliases over when |
| all the may-aliases of a non-promotable variable are promoted. |
| |
| 2003-12-16 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-flow-inline.h (free_vuse, free_vdefs): Moved to |
| tree-ssa-operands.c |
| (get_def_ops, get_use_ops, get_vdef_ops, get_vuse_ops): Use the new |
| more direct structure pointer. |
| (get_use_op_ptr, get_def_op_ptr): Cast is no longer necessary. |
| * tree-flow.h (struct stmt_ann_d): Replace operands and voperands |
| pointers with pointers directly to the operand types. |
| * tree-ssa-dom.c (cprop_into_stmt): Use new stmt based interface to |
| free virtual operands. Check virtual bases of both VUSE and VDEF. |
| * tree-ssa-operands.c (struct voperands_d): Declare here, used only |
| for previous_vops during stmt operand construction. |
| (struct vecmanage_d, vecmanage_add_segmen, vecmanage_add_special, |
| vecmanage_init, vecmanage_tree_ptr_init, vecmanage_fini, check_free, |
| vecmanage_new_vector, vecmanage_new_tree_ptr_vector, |
| vecmanage_free_vector): Remove. |
| (allocate_ssa_op_vec, free_ssa_op_vec, allocate_ssa_virtual_op_vec, |
| allocate_operands_t, allocate_voperands_t): Remove. |
| (finalize_new_ssa_operands, inalize_new_ssa_virtual_operand): Remove. |
| (struct freelist_d): New. List of free operand structures. |
| (check_optype_freelist): New. Choose memory from freelist, if available. |
| (add_optype_freelist): New. Add structure to freelist, if appropriate. |
| (allocate_def_optype): New. Allocate a def operand list from GC. |
| (allocate_use_optype): New. Allocate a useoperand list from GC. |
| (allocate_vdef_optype): New. Allocate a vdef operand list from GC. |
| (allocate_vuse_optype): New. Allocate a vuse operand list from GC. |
| (free_uses, free_defs, free_vuses, free_vdefs): Use GC and the freelist. |
| (remove_vuses, remove_vdefs): New. External interface to remove virtual |
| operands. |
| (init_ssa_operands, fini_ssa_operands): Ensure the free list is empty. |
| (finalize_ssa_defs, finalize_ssa_use, finalize_ssa_vdefs, |
| finalize_ssa_vuses): Use new direct pointers from the stmt annotation. |
| (append_vdef, append_vuse): No need to hack prev_vops pointer now. |
| (get_stmt_operands): use new freeing interface, keep previous vops in |
| their own local structure for now, passing its address around. |
| * tree-ssa-operands.h (struct def_optype_d, struct use_optype_d, |
| struct vdef_optype_d, struct vuse_optype_d): Implement as a single |
| dynamically allocated structure. |
| (struct operands_d, struct operands_d): Remove. |
| * tree-ssa-pre.c (subst_phis): Remove virtual operands using new funcs. |
| |
| 2003-12-16 Jan Hubicka <jh@suse.cz> |
| |
| * tree-cfg.c (verify_addr_expr): Rename to .... |
| (verify_expr): ... this one; check that no SSA names are on |
| freelist. |
| (verify_stmt, verify_stmts): Update calls of verify_addr_expr. |
| |
| Revert until initializers are made language independent: |
| * cgraphunit.c (record_call_1): Do not call analyze_expr hook |
| * langhooks-def.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Kill. |
| (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update. |
| * longhooks.h (lang_hooks_for_callgraph): Kill analyze_expr. |
| |
| 2003-12-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> |
| |
| * tree-pretty-print.c (dump_bb_header): Show block number when |
| there is no label. |
| (pp_cfg_jump): Show labels in addition to block numbers. |
| (dump_generic_bb_buff): Always call dump_bb_header. |
| |
| 2003-12-16 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (cgraph_remove_unreachable_nodes): Fix typo; |
| improve comments; cleanup linked list mantenance. |
| |
| 2003-12-15 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-sra.c (can_be_scalarized_p): Reject volatile variables. |
| |
| * sibcall.c (skip_copy_to_return_value): Initialize 'hardret' and |
| 'softret'. |
| |
| 2003-12-16 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_remove_node): Ignore DECL_EXTERNAL clones. |
| * cgraphunit.c (verify_cgraph_node): Do not insist on unemmited extern |
| inline functions to be valid. |
| (cgraph_finalize_compilation_unit): Fix ordering. |
| (cgraph_mark_functions_to_output): Do not insist on DECL_EXTERNAL |
| nodes to be reclaimed. |
| (cgraph_remove_unreachable_nodes): New function. |
| (cgraph_decide_inlining): use it. |
| |
| 2003-12-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| * Makefile.in (TREE_FLOW_H): Add dependence on tree-ssa-operands.h |
| (OBJS-common): Add tree-ssa-operands.o |
| (tree-ssa-operands.o): Add dependencies. |
| (GTFILES): Add tree-ssa-operands.[ch]. |
| * tree-dfa.c (get_stmt_operands, get_expr_operands, add_stmt_operand, |
| note_addressable, add_def, add_use, add_vde, add_vuse, |
| add_call_clobber_ops, add_call_read_ops): Moved to tree-ssa-operands.c. |
| (compute_immediate_uses_for_stmt): Use new optypes interface. |
| (cleanup_operand_arrays): Delete. |
| (collect_dfa_stats_r): Use new optypes interface. |
| (get_call_flags): Moved to tree-ssa-operands.c. |
| (vdefs_disappeared_p, mark_new_vars_to_rename): Use optypes interface. |
| * tree-flow-inline.h (def_ops, use_ops, vdef_ops, vuse_ops): Use new |
| optypes. |
| (free_vuses): New. Clear and release vuses. |
| (free_vdefs): New. Clear and release vdefs. |
| (get_use_ops_ptr): New. Get address of a use op. |
| (get_def_ops_ptr): New. Get address of a use op. |
| (get_vdef_result_ptr): New. Get address of a use op. |
| (get_vdef_op_ptr): New. Get address of a use op. |
| (get_vuse_op_ptr): New. Get address of a use op. |
| (start_ssa_stmt_operands): New. Entry point to start processing stmt |
| operands. |
| * tree-flow.h (struct operands_d, struct voperands_d): Move to |
| tree-ssa-operands.h |
| (struct stmt_ann_d): Add GTY markers to operands. |
| * tree-pretty-print.c (dump_vops): Use optypes interface. |
| * tree-sra.c (create_scalar_copies): Use optypes interface. |
| (scalarize_structures, scalarize_modify_exp): Use optypes interface. |
| * tree-ssa-ccp.c (visit_stmt, ccp_fold, initialize, replace_uses_in, |
| likely_value, set_rhs): Use optypes interface. |
| * tree-ssa-dce.c (find_useful_stmts, stmt_useful_p, process_worklist): |
| Use optypes interface. |
| * tree-ssa-dom.c (thread_across_edge, thread_jumps_walk_stmts): Use |
| optypes interface. |
| (cprop_into_stmt): Rewrite using new interface. |
| (eliminate_redundant_computations, record_equivalences_from_stmt, |
| optimize_stmt, avail_expr_hash, avail_expr_eq): Use optypes interface. |
| * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry, |
| build_tree_conflict_graph,register_ssa_partitions_for_vars): Use |
| optypes interface. |
| * tree-ssa-pre.c (names_match_p, maybe_find_rhs_use_for_var, |
| expr_phi_insertion, same_e_version_real_occ_real_occ, opnum_of_phi, |
| generate_expr_as_of_bb, generate_vops_as_of_bb, subst_phis, |
| load_modified_real_occ_real_occ, same_e_version_phi_result, can_insert, |
| get_default_def, reaching_def, process_left_occs_and_kills, |
| collect_expressions): Use optypes interface. |
| * tree-ssa.c (mark_def_sites, check_replaceable, find_replaceable_in_bb, |
| dump_replaceable_exprs, rewrite_trees, verify_ssa, rewrite_stmt): Use |
| optypes interface. |
| (init_tree_ssa): Initialize new operand data structures. |
| (delete_tree_ssa): Free new operand structures. |
| * tree.h (VDEF_RESULT, VDEF_OP, NUM_VDEFS): Move to tree-ssa-operands.h. |
| |
| * tree-ssa-operands.h: New file. |
| (struct def_optype_d): New. Structure for stmt defs. |
| (struct use_optype_d): New. Structure for stmt uses. |
| (struct vdef_optype_d): New. Structure for stmt vdefs. |
| (struct vuse_optype_d): New. Structure for stmt vuses. |
| (USE_OPS, STMT_USE_OPS, NUM_USES, USE_OP_PTR, USE_OP): Macros to |
| access stmt uses. |
| (DEF_OPS, STMT_DEF_OPS, NUM_DEFS, DEF_OP_PTR, DEF_OP): Macros to |
| access stmt defs. |
| (VDEF_OPS, STMT_VDEF_OPS, NUM_VDEFS, VDEF_RESULT_PTR, VDEF_RESULT, |
| VDEF_OP_PTR, VDEF_OP): Macros to access stmt vdefs. |
| (VUSE_OPS, STMT_VUSE_OPS, NUM_VUSES, VUSE_OP_PTR, VUSE_OP): Macros to |
| access stmt vuses. |
| (struct operands_d, struct voperands_d): moved from tree-dfa.c. |
| * tree-ssa-operands.c: New file. |
| (build_defs, build_uses, build_vdefs, build_vuses): New static varrays. |
| (struct vecmanage_d): New. Struct to manage non-GC vectors. |
| (vecmanage_add_segment): New. Add a new segment to a vector manager. |
| (vecmanage_add_special): New. Add a large vector to the special list. |
| (vecmanage_init): Initialize a vector manager. |
| (vecmanage_tree_ptr_init): New. Initialize a vector manager for tree *. |
| (vecmanage_fini): New. Release vector manager memory. |
| (check_free): New. Look for free memory in the vector maanger. |
| (vecmanage_new_vector): New. Allocate a vector. |
| (vecmanage_new_tree_ptr_vector): New. Allocate a vector of 'tree *'. |
| (vecmanage_free_vector): New. Free a vector. |
| (free_ssa_op_vec): New. Free an ssa operand's memory. |
| (allocate_ssa_op_vec): New. Allocate a vector for use/defs. |
| (allocate_ssa_virtual_op_vec): New. Allocate a vector for vuse/vdefs. |
| (allocate_operands_t): New. Allocate an operand structure. |
| (allocate_voperands_t): New. Allocate a virtual operand structure. |
| (free_uses): New. Clear and release uses. |
| (free_defs): New. Clear and release defs. |
| (init_ssa_operands): New. Initialize ssa operand management. |
| (fini_ssa_operands): New. Cleanup ssa operand management. |
| (finalize_new_ssa_operands): New. Commit current operands. |
| (finalize_new_ssa_virtual_operands): New. Commit current virtual ops. |
| (finalize_ssa_defs): New. Commit and verify stmt definitions. |
| (finalize_ssa_uses): New. Commit and verify stmt uses. |
| (finalize_ssa_vdefs): New. Commit and verify stmt virtual definitions. |
| (finalize_ssa_vuses): New. Commit and verify stmt virtual uses. |
| (finalize_ssa_stmt_operands): New. Commit all stmt operands. |
| (verify_start_operands): New. Verify build mechanism is ready for a new |
| stmt. |
| (append_def): Renamed from add_def, and moved from tree-dfa.c. |
| (append_use): Renamed from add_def, and moved from tree-dfa.c. |
| (append_vdef): Renamed from add_def, and moved from tree-dfa.c. |
| (append_vuse): Renamed from add_def, and moved from tree-dfa.c. |
| (add_vuse): New. Entry point to add a vuse to a stmt. |
| (get_call_flags): Moved from tree-dfa.c |
| (get_stmt_operands, get_expr_operands, add_stmt_operand): Moved from |
| tree-dfa.c, and use new optype interface. |
| (note_addressabe, add_call_clobber_ops, add_call_read_ops): Moved from |
| tree-dfa.c |
| |
| 2003-12-15 Diego Novillo <dnovillo@redhat.com> |
| |
| * tree-optimize.c (optimize_function_tree): Call BITMAP_XFREE. |
| |
| 2003-12-15 Diego Novillo <dnovillo@redhat.com> |
| |
| PR optimization/12747 |
| |
| * tree-cfg.c (verify_addr_expr): Simplify predicates. |
| * tree-must-alias.c (addresses_needed): Declare as file local. |
| (can_be_promoted): New. |
| (tree_compute_must_alias): Call it. |
| Remove promoted variables from call_clobbered_vars. |
| (find_addressable_vars): Update comment. |
| Remove argument. Update callers. |
| (promote_var): Always clear TREE_ADDRESSABLE. |
| Don't remove promoted variables from call_clobbered_vars. |
| If the promoted variable is in the may-alias set of a |
| non-promotable variable, copy its alias set into the alias set of |
| the non-promotable variable. |
| (find_variable_in): Update comment. |
| * tree-sra.c (can_be_scalarized_p): Reject structures with |
| __complex__ fields in them. |
| |
| 2003-12-15 Diego Novillo <dnovillo@redhat.com> |
| Jason Merrill <jason@redhat.com> |
| |
| PR optimization/12747 |
| |
| * Makefile.in (tree-simple.o): Add dependency on bitmap.h and |
| $(GGC_H). |
| (GTFILES): Add tree-simple.c. |
| * tree-simple.c: Include ggc.h and bitmap.h. |
| (is_gimple_non_addressable_1): Remove. Update all callers. |
| (types_checked): New local variable. |
| (types_in_memory): New local variable. |
| (struct_needs_to_live_in_memory): New. |
| (needs_to_live_in_memory): New. |
| (is_gimple_reg): Call it. |
| (is_gimple_non_addressable): Call it. |
| (is_gimple_call_clobbered): Call it. |
| * tree-simple.h (needs_to_live_in_memory): Declare. |
| |
| 2003-12-14 Andreas Jaeger <aj@suse.de> |
| |
| * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Handle |
| GNU F95. |
| |
| 2003-12-14 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (cgraph_expand_function): Release function body when no |
| longer needed. |
| (lookup_recursive_calls): New function. |
| (cgraph_decide_recursive_inlining): Likewise. |
| (cgraph_decide_inlining_of_small_functions): Do recursive inlining. |
| * tree-inline.c: Include function.h |
| (copy_body): Choose saved body for recursive inlining. |
| (initialize_inlined_parameters): Likewise. |
| (expand_call_inline): Do not verify nodes when recursivly inlining, |
| insert ret_label into decl map. |
| * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE, |
| PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO, |
| PARAM_MAX_INLINE_RECURSIVE_DEPTH, |
| PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO): New argument. |
| * invoke.texi (max-inline-insns-recursive, max-inline-recursive-depth): |
| Document. |
| * Makefile.in (tree-inline.o): Include function.h. |
| |
| 2003-12-14 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (record_call_1): Do not call analyze_expr hook |
| * langhooks-def.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Kill. |
| (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update. |
| * longhooks.h (lang_hooks_for_callgraph): Kill analyze_expr. |
| |
| 2003-12-13 Jan Hubicka <jh@suse.cz> |
| |
| * timevar.def (TV_TREE_STMT_VERIFY, TV_CFG_VERIFY, TV_CGRAPH_VERIFY): |
| New timers. |
| * tree-cfg.c (verify_stmts): Push/pop timevar. |
| * cfg.c: Include timevar.h |
| (verify_flow_info): Push/pop timevar. |
| * Makefile.in (cfg.o): Add dependnecy on TIMEVARS |
| |
| * cgraph.c (cgraph_create_edge): Sanity check for duplicates; |
| initialize aux. |
| (cgraph_remove_node): Decrease cgraph_n_nodes; do not clear |
| DECL_SAVED_TREE when dumping. |
| (cgraph_dump_node): Break out from ...; print more information. |
| (cgraph_dump): ... here. |
| * cgraph.h (cgraph_node): Add aux field. |
| (dump_cgraph_node, verify_cgraph, verify_cgraph_node): Declare. |
| (cgraph_mark_inline_edge): Declare |
| * cgraphunit.c (error_found): New static variable. |
| (verify_cgraph_node_1): New static function. |
| (verify_cgraph_node, verify_cgraph): New global function. |
| (cgraph_expand_function): More sanity checks. |
| (cgraph_clone_inline_nodes): Destructivly clone DECL_EXTERNAL nodes. |
| (cgraph_mark_inline_edge): Make global. |
| (cgraph_decide_inlining): Remove extern inline functions never inlined. |
| (cgraph_decide_inlining_incrementally): Verify that function body is |
| still present. |
| (expand_all_functions): Verify that all nodes are reachable. |
| (cgraph_optimize): Verify cgraph and memory management. |
| * tree-inline.c (copy_body_r): All edges must be present. |
| (expand_call_inline): Sanity check newly created edges and nodes |
| being inlined. |
| (optimize_inline_calls): Sanity check that we've inlined everything. |
| * tree-optimize.c (tree_rest_of_compilation): Clone functions inlined |
| into cloned node. |
| |
| 2003-12-13 Jan Hubicka <jh@suse.cz> |
| |
| * tree-flow.h (tree_ssa_useless_type_conversion_1): Declare. |
| * tree-flow.c (tree_ssa_useless_type_conversion_1): Break out from |
| from...; allow complex types whose subtypes match. |
| (tree_ssa_useless_type_conversion): ... here. |
| |
| 2003-12-12 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-dom.c (optimize_stmt): Don't call cleanup_control_expr |
| here. Instead just note that we need to cleanup the cfg (which |
| will DTRT). |
| |
| * timevar.def (TV_TREE_SSA_THREAD_JUMPS): Kill. |
| * tree-dump.c (dump_files): Kill .thread dump. |
| * tree.h (TDI_thread_jumps): Kill. |
| * tree-flow.h (tree_ssa_dominator_thread_jumps): Kill prototype. |
| * tree-optimize.c (optimize_function_tree): Kill call to |
| tree_ssa_dominator_thread_jumps. |
| * tree-ssa-dom.c (thread_through_phis): Kill. We no longer need |
| to restrict threading through PHIs. |
| (tree_ssa_dominator_thread_jumps): Kill. |
| (tree_ssa_domiantor_optimize_1): Fold back into |
| tree_ssa_dominator_optimize. |
| (tree_ssa_dominator_optimize): Mark back edges in the flow graph. |
| Kill code which conditionalized the walk_tree callbacks based |
| on thread_through_phis. When threading jumps, reorganize code |
| so that we can take the affected variables out of SSA form. |
| Mark new variables created by out-of-ssa code as needing to be |
| rewritten. |
| (thread_across_edge): Always allow threading through phis. |
| (thread_jumps_walk_stmts): Kill. |
| |
| * tree-ssa.c (create_temp): When we create a new temporary, make |
| sure to put it into referenced_vars, give it an ID number and |
| a suitable mem_tag. |
| (eliminate_build): If we encounter a PHI argument which is an |
| SSA_VAR we are not rewriting out of SSA form, then just treat |
| it like a constant. |
| (rewrite_vars_out_of_ssa): New function. |
| * tree-flow.h (rewrite_vars_out_of_ssa): Prototype. |
| * tree-ssa-live.c (register_ssa_partitions_for_vars): New function. |
| * tree-ssa-live.h (register_ssa_partitions_for_vars): Prototype. |
| |
| 2003-12-12 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (remap_decl): Avoid invalid sharing. |
| * cp-tree.h (optimize_function): Kill. |
| * optimize.c (optimize_function): Kill. |
| * semantics.c (expand_body): Do not call optimize_function. |
| |
| 2003-12-12 Jan Hubicka <jh@suse.cz> |
| |
| * cgraphunit.c (cgraph_optimize): Do not decide inlining when not |
| inlining |
| |
| 2003-12-11 Jan Hubicka <jh@suse.cz> |
| |
| * tree-inline.c (initialize_inlined_parameters): Disable |
| constant propagation for non-gimple-min-invariant when |
| preserving gimple form. |
| |
| 2003-12-11 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-ccp.c (widen_bitfield): Clear out unwanted high bits |
| even if the field's type is unsigned. |
| * tree-ssa-dom.c (record_equivalences_from_stmt): When creating |
| equivalences from stores, be more careful about non-constant |
| stores to bitfields. |
| |
| 2003-12-11 Diego Novillo <dnovillo@redhat.com> |
| |
| * opts.c (decode_options): Do not enable the tree loop optimizer by |
| default. |
| * tree-ssa-loop.c (tree_ssa_loop_opt): Remove ENABLE_CHECKING |
| guards. |
| |
| 2003-12-10 Richard Henderson <rth@redhat.com> |
| |
| * builtins.c (expand_builtin_profile_func): New. |
| (expand_builtin): Use it. |
| * builtins.def (BUILT_IN_PROFILE_FUNC_ENTER): New. |
| (BUILT_IN_PROFILE_FUNC_EXIT): New. |
| * function.c (expand_function_start, expand_function_end): Don't |
| do function instrumentation here. |
| * gimplify.c (gimplify_function_tree): Do it here. |
| |
| * c-opts.c (c_common_post_options): Don't ever use rtl inlining. |
| |
| 2003-12-10 Diego Novillo <dnovillo@redhat.com> |
| |
| * ifcvt.c (dead_or_predicable): Initialize local variable |
| 'earliest'. |
| * tree-cfg.c (verify_stmt): Fix typo. |
| * tree-ssa-dom.c (propagate_value): New local function. |
| (cprop_into_stmt): Call it. |
| (cprop_into_phis): Call it. |
| (eliminate_redundant_computations): Call it. |
| |
| 2003-12-10 Dale Johannesen <dalej@apple.com> |
| |
| * tree-dfa.c (compute_alias_sets): Don't try to make |
| GLOBAL_VAR alias itself. |
| |
| 2003-12-08 Steven Bosscher <stevenb@suse.de> |
| |
| * tree-must-alias.c (tree_compute_must_alias): Use |
| num_call_clobbered_vars and call_clobbered_var() instead of |
| poking in the call_clobbered_vars varray directly. |
| |
| 2003-12-11 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_function_possibly_inlined_p): Fix syntax error on |
| gcc-2.95. |
| |
| 2003-12-10 Diego Novillo <dnovillo@redhat.com> |
| |
| Revert |
| |
| 2003-12-07 Richard Henderson <rth@redhat.com> |
| |
| * c-common.c (c_address_looks_like_offsetof): New. |
| * c-common.h (c_address_looks_like_offsetof): Declare. |
| * c-typeck.c (build_unary_op) <ADDR_EXPR>: Use it. Don't lower |
| address references not destined for offsetof. |
| (c_expand_return): Only look inside ARRAY_REF and COMPONENT_REF |
| when looking for returning address of local variable. |
| * expr.c (expand_expr_1): Don't dereference size |
| of unbounded arrays. |
| * gimplify.c (gimplify_addr_expr): Only fold |
| address of variable size array elements. |
| * tree-simple.c (is_gimple_min_invariant): Also check |
| is_gimple_variable before disallowing offset address for type. |
| * tree-ssa-ccp.c (maybe_fold_offset_to_aggregate_ref): New. |
| (maybe_fold_offset_to_component_ref): Use it. |
| (maybe_fold_stmt_indirect, maybe_fold_stmt_plus): Likewise. |
| (maybe_fold_offset_to_array_ref): Likewise. |
| Don't fail for division remainder non-zero. |
| * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Use |
| handled_component_p and look inside references. |
| <MINUS_EXPR>: Always look past widening casts. |
| |
| 2003-12-09 Jan Hubicka <jh@suse.cz> |
| |
| * cgraph.c (cgraph_inline_hash): New global variable. |
| (cgraph_create_node): Break out of .... |
| (cgraph_node): ... this one. |
| (cgraph_redirect_edge_callee): New function. |
| (cgraph_remove_node): Aggressively elliminate dead nodes; |
| remove node out of clone list. |
| (dump_cgraph): Dump inlined_to field; dump uid numbers. |
| (cgraph_clone_edge): Return edge created. |
| (cgraph_clone_node): New. |
| (cgraph_function_possibly_inlined_p): Re-implement using hashtable. |
| * cgraph.h: Include hashtab.h |
| (struct cgraph_global_info): Kill inline_once, will be output and |
| cloned_times fields. Add inlined_to field. |
| (cgraph_node): Add next_clone. |
| (cgraph_inline_hash): Declare. |
| (cgraph_clone_edge): Update prototype. |
| (cgraph_clone_node, cgraph_redirect_callee): Declare. |
| * cgraphunit.c (cgraph_optimize_function): Kill. |
| (cgraph_assemble_function): Kill next_needed to avoid GGC corruption. |
| (cgraph_analyze_function): Do not intialize cloned_times and |
| will_be_output. |
| (cgraph_finalize_compilation_unit): Clear next_needed. |
| (cgraph_optimize_function): Kill. |
| (cgraph_expand_function): Do not use cgraph_optimize_function. |
| (cgraph_estimate_growth, cgraph_mark_inline, |
| cgraph_check_inline_limits, cgraph_recursive_inlining_p, |
| cgraph_preserve_function_body_p): Update for explicit clones. |
| (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into, |
| cgraph_inlined_callees, struct cgraph_inline_context, |
| cgraph_create_inline_context, cgraph_free_inline_context, |
| cgraph_inline_context_set_caller, cgraph_inline_context_clear_caller, |
| cgraph_inline_context_set_callee, cgraph_inline_context_clear_callee, |
| update_callee_keys): Kill. |
| (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge): New. |
| (cgraph_decide_inlining_of_small_functions, (cgraph_decide_inlining, |
| cgraph_decide_inlining_incrementally): Simplify. |
| * tree-inline.c (typedef struct_inline_data): New field saving_p. |
| (copy_body_r): Update all clones. |
| (expand_call_inline): Remove inlined cgraph node. |
| (save_body): Inicialize id.node and id.saving_p. |
| * tree-optimize.c (tree_rest_of_compilation): Maintain clone up-to-date |
| in no-unit-at-a-time mode. |
| |
| 2003-12-08 Steven Bosscher <stevenb@suse.de> |
| |
|