OSDN Git Service

* tree-alias-common.h (struct tree_alias_ops): Change ip and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 9d87e1b..17f767f 100644 (file)
@@ -1,3 +1,393 @@
+2004-06-21  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * tree-alias-common.h (struct tree_alias_ops): Change ip and
+       ip_partial to unsigned int.
+
+2004-06-21  Richard Henderson  <rth@redhat.com>
+
+       * c-common.c (verify_sequence_points): Export.
+       (c_expand_expr_stmt): Move to c-typeck.c.
+       * c-common.h (c_expand_expr_stmt): Remove.
+       (verify_sequence_points): Declare.
+       * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt.
+       * c-parse.in (for_init_stmt, stmt): Likewise.
+       * c-tree.h (c_finish_expr_stmt): Declare.
+       (c_tree_expr_nonnegative_p): Remove.
+       * c-typeck.c (c_tree_expr_nonnegative_p): Remove.
+       (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p.
+       (emit_side_effect_warnings): New.
+       (c_finish_expr_stmt): Rename from c_expand_expr_stmt.  Use it.
+       (c_finish_stmt_expr): Work without EXPR_STMT.  Handle eh regions.
+       Use emit_side_effect_warnings.
+       (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR.
+       * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR.
+       * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR
+       with void initializer.
+       (gimplify_target_expr): Handle void BIND_EXPR initializer.
+       * tree-inline.c (estimate_num_insns_1): Fix type lookup for
+       INIT_EXPR and MODIFY_EXPR.
+       * objc/objc-act.c (build_module_descriptor): Use add_stmt
+       instead of c_expand_expr_stmt.
+
+2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
+
+       * fold-const.c (fold_cond_expr_with_comparison):
+       New function, extracted from fold.
+       (fold): Extract code to fold A op B ? A : C, use
+       it to fold A op B ? C : A.  Really optimize
+       A & N ? N : 0 where N is a power of two.  Avoid
+       relying on canonicalization and recursion for
+       foldings of COND_EXPR to happen.
+       
+2004-06-20  David Ayers  <d.ayers@inode.at>
+
+       * objc/objc-act.h (get_object_reference): Rename to
+       get_protocol_reference.
+       (super_type): Rename to objc_super_type.
+       (selector_type): Rename to objc_selector_type.
+       (id_type): Rename to objc_id_type.
+       (instance_type): Rename to objc_instance_type.
+       (protocol_type): Rename to objc_protocol_type.
+       (IS_ID): Update reference to id_type.
+       * objc/objc-act.c (get_object_reference): Rename to
+       get_protocol_reference; add documentation; update references to
+       id_type.
+       (lookup_method_in_protocol_list): Rename class_meth to
+       is_class; add documentation.
+       (finish_message_expr): Rename is_class to class_tree.
+       (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr,
+       next_sjlj_build_try_catch_finally, objc_begin_catch_clause,
+       build_next_objc_exception_stuff, get_arg_type_list,
+       build_objc_method_call): Update references to id_type.
+       (synth_module_prologue, build_objc_symtab_template,
+       build_selector_reference_decl, build_selector,
+       build_selector_translation_table, build_typed_selector_reference,
+       get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list,
+       synth_self_and_ucmd_args): Update references to selector_type.
+       (build_private_template, build_ivar_reference): Update references
+       to instance_type.
+       (synth_module_prologue, build_protocol_reference,
+       build_protocol_expr, start_protocol): Update references to
+       protocol_type.
+       (synth_module_prologue, get_arg_type_list, build_objc_method_call):
+       Update references to super_type.
+       * c-parse.in: (typespec_nonreserved_nonattr): Update
+       references to get_object_reference.
+       * objc/objc-tree.def: Add C mode identifier sequence.
+
+2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * loop-invariant.c: New file.
+       * Makefile.in (loop-invariant.o): New.
+       * cfgloop.h (global_cost_for_size, init_set_costs,
+       move_loop_invariants): Declare.
+       * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New
+       functions.
+       (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New
+       variables.
+       * common.opt (floop-optimize2, fmove-loop-invariants): New options.
+       * loop-init.c (loop_optimizer_init): Call init_set_costs.
+       * passes.c (rest_of_handle_loop2): Call move_loop_invariants.
+       (rest_of_compilation): Check flag_loop_optimize2.
+       * toplev.c (process_options): Handle flag_loop_optimize2.
+       * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document.
+       * doc/passes.texi (loop-invariant.c): Document.
+
+2004-06-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed.
+
+2004-06-20  Richard Henderson  <rth@redhat.com>
+
+       * stmt.c (warn_if_unused_value): Add locus argument.
+       * tree.h (warn_if_unused_value): Update decl.
+       * c-typeck.c (internal_build_compound_expr): Update call.
+       * c-gimplify.c (gimplify_expr_stmt): Likewise.
+
+2004-06-20  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/16089
+       * builtins.c (entry_of_function): Move to ...
+       * cfgrtl.c (entry_of_function): Here and make non-static.
+       * integrate.c (emit_initial_value_sets): Use entry_of_function.
+       * rtl.h (entry_of_function): Prototype.
+
+2004-06-20  Roger Sayle  <roger@eyesopen.com>
+
+       * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3.
+       (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when
+       TARGET_DECOMPOSE_LEA.
+
+2004-06-20  Richard Henderson  <rth@redhat.com>
+
+       * c-common.h (add_decl_stmt): Move to cp-tree.h.
+       * c-decl.c (finish_decl): Don't use add_decl_stmt.
+       * c-parse.in: Likewise.
+       * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR.
+       (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise.
+       * c-semantics.c (add_decl_stmt): Move to cp/semantics.c.
+
+2004-06-20  Richard Henderson  <rth@redhat.com>
+
+       * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def.
+       * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY,
+       CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h.
+       (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT.
+       * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree.
+       * c-pretty-print.c (pp_c_statement): Similarly.
+       * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts,
+       gimplify_if_stmt): Move to cp-gimplify.c.
+       (c_genericize, c_gimplify_expr): Don't call them.
+       * c-semantics.c (push_cleanup): Move to cp/semantics.c.
+       * c-typeck.c (push_cleanup): New.
+       (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else,
+       c_finish_if_stmt): Use COND_EXPR.
+       * tree.h (CLEANUP_EH_ONLY): Update documentation.
+
+2004-06-20  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-common.h (has_c_linkage): New interface.
+       * c-cppbuiltin.c: Include target.h.
+       (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and
+       __PRAGMA_EXTERN_PREFIX when appropriate.
+       * c-pragma.c: Include target.h.
+       Document clarified semantics of symbol-renaming #pragmas.
+       (handle_pragma_redefine_extname, handle_pragma_extern_prefix)
+       (maybe_apply_renaming_pragma): Rewrite according to clarified
+       semantics.  Always recognize, but do not necessarily execute.
+       (init_pragma): Unconditionally register symbol-renaming pragmas.
+       * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME
+       and HANDLE_PRAGMA_EXTERN_PREFIX.
+       * target.h (struct gcc_target): Add handle_pragma_redefine_extname
+       and handle_pragma_extern_prefix flags.
+       * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME
+       and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX.
+       * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies.
+       * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME,
+       not HANDLE_PRAGMA_REDEFINE_EXTNAME.
+       (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME.
+       (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect.
+       * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX,
+       not HANDLE_PRAGMA_EXTERN_PREFIX.
+       (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX.
+       * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine
+       into one section "Symbol-Renaming Pragmas"; clarify; document
+       adjusted semantics.
+
+       * builtins.c (expand_builtin): Do not issue error for a builtin
+       with no special case code and no DECL_ASSEMBLER_NAME; just do the
+       library call.
+       * c-decl.c (builtin_function): Don't call make_decl_rtl.
+       * c-objc-common.c (has_c_linkage): Stub implementation.
+       * cgraphunit.c (cgraph_expand_function)
+       (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS.
+
+2004-06-19  Roger Sayle  <roger@eyesopen.com>
+
+       * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument
+       instead of both an ARGLIST and a result TYPE.  Handle these C99
+       comparison functions as "polymorphic" builtins.  Also handle
+       lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node.
+       (fold_builtin_1): Update calls to fold_builtin_unordered_cmp.
+       Move handling of BUILT_IN_ISUNORDERED from here to there.
+
+2004-06-19  Richard Henderson  <rth@redhat.com>
+
+       * c-common.c, c-common.h (lang_gimplify_stmt): Remove.
+       * c-gimplify.c: Remove unnecessary prototypes.
+       (c_gimplify_stmt): Merge into ...
+       (c_gimplify_expr): ... here.  Don't play with prep_stmt.
+       * c-semantics.c (prep_stmt): Remove.
+       * gimplify.c (annotate_one_with_locus): Break out from ...
+       (annotate_all_with_locus): ... here.
+       (gimplify_expr): Add locus to expressions even if pre/post queues
+       are not present.
+
+2004-06-19  Richard Henderson  <rth@redhat.com>
+
+       PR target/15941
+       * function.c (assign_parms): If not padding upward or intentionally
+       forcing upward padding, take offset_rtx into account when determining
+       the alignment for stack_parm.
+
+2004-06-19  Richard Henderson  <rth@redhat.com>
+
+       PR target/15550
+       * ifcvt.c (noce_try_move): Recognize all generated instructions.
+
+2004-06-19  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (free_after_compilation): Do not free computed_goto_common*.
+       * function.h (struct function): Kill computed_goto_common*.
+       * stmt.c (expand_computed_goto): Do not commonize the computed gotos.
+       * tree-cfg.c (disband_implicit_edges): Do not forward across the
+       commonized computed goto.
+
+2004-06-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support
+       in binutils.
+
+2004-06-19  Andrew Pinski  <apinski@apple.com>
+
+       PR c++/15721
+       * toplev.c (wrapup_global_declarations): Do not check
+       TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
+       cgraph_varpool_node's needed field.
+
+2004-06-19  Jan Hubicka  <jh@suse.cz>
+           Steven Bosscher  <stevenb@suse.de>
+
+       CFG transparent RTL expansion:
+       * Makefile.in (cfgexpand.o): New object file.
+       (builtins.o): Add dependency on basic-block.h
+       * builtins.c: Include basic-block.h
+       (entry_of_function): New function.
+       (expand_builtin_apply_args, expand_builtin_saveargs): Use it.
+       * cfgexpand.c: New file.
+       * expr.c (execute_expand, pass_expand): Kill.
+       * pass.c (rest_of_compilation): Do not build CFG unless called from
+       coverage code.
+       * tree-cfg.c (delete_tree_cfg): Rename to..
+       (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself.
+       * tree-flow.h (delete_tree_cfg_annotations): Declare.
+       (dleete_tree_cfg): Kill.
+       * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill.
+       (execute_del_cfg): Rename to...
+       (execute_free_datastructures): This one...
+       (pass_del_cfg): Rename to...
+       (pass_free_datastructures): ... this one; Do not kill PROP_cfg.
+       (init_tree_optimization_passes): Make cfg build and profiling to happen
+       unconditionally.
+
+2004-06-19  Steven Bosscher  <stevenb@suse.de>
+
+       * tree-mudflap.c (mf_decl_cache_locals): Skip labels before
+       inserting the cache variables.
+
+       * tree-mudflap.c: Include headers to make basic_block available.
+       Move functions around such that related functions are near each
+       other.  Add prototypes for all static functions.  Add comments
+       briefly explaining what IR the mudflap1 and mudflap2 work on and
+       what they do.
+       (mudflap_function_decls): Rename to execute_mudflap_function_decls.
+       (mudflap_function_ops): Rename to execute_mudflap_function_ops.
+       (pass_mudflap_1, pass_mudflap_2): Update.
+       (mf_decl_cache_locals): Make it work on the CFG instead of the saved
+       function tree.
+       (mf_build_check_statement_for): Make it work on the CFG.
+       (mf_xform_derefs_1): Likewise.  Cleanup code style.
+       (mf_xform_derefs): Likewise.
+
+2004-06-19  Jan Hubicka  <jh@suse.cz>
+
+       * tree-cfg.c (label_to_block): Invent the label destination for
+       undefined labels.
+       (cleanup_dead_labels): Update table in the case label_to_block added
+       new label.
+
+2004-06-18  Richard Henderson  <rth@redhat.com>
+
+       PR c++/16036
+       * gimple-low.c (lower_function_body): Generate return statement for
+       fall off the end of the function here ...
+       * tree-cfg.c (make_edges): ... instead of here.
+       * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING.
+
+2004-06-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * tree-ssa.c (raise_value): Removed.
+       (get_eq_name, check_phi_redundancy): New functions.
+       (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm.
+
+2004-06-18  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR,
+       UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add
+       constant folding for unordered comparison tree nodes.  If both
+       operands are real constants, call fold_relational_const.  If either
+       operand is a NaN, evaluate the other for side-effects and return a
+       constant.  Optimize (double)float1 CMP (double)float2 into the
+       equivalent float1 CMP float2.
+       (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR,
+       ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR,
+       LTGT_EXPR>: Call fold_relational_const for constant operands.
+       (fold_relational_const): Add support for unordered comparison tree
+       nodes.  Don't constant fold "ordered" floating point comparisons
+       against NaN if when flag_trapping_math is set.
+
+2004-06-19  Jakub Jelinek  <jakub@redhat.com>
+
+       * fold-const.c (build_range_check): If !in_p and recursive call
+       fails, exit immediately.  If high - low overflows and etype is
+       a signed type, retry with unsigned etype.
+       (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent
+       to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE.
+
+2004-06-18  Richard Henderson  <rth@redhat.com>
+
+       * c-gimplify.c (gimplify_condition): Remove.
+       (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't
+       call it.
+
+2004-06-18  Richard Henderson  <rth@redhat.com>
+
+       * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and
+       switch estimates.
+
+2004-06-18  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define.
+       (NORMAL_TEXT_SECTION_NAME): Define.
+       (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
+       (SECTION_FORMAT_STRING): Define.
+
+2004-06-18  Steven Bosscher  <stevenb@suse.de>
+
+       * config/xtensa/xtensa.c
+       (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
+       * xtensa.md: Replace the old pipeline description with a DFA model.
+
+2004-06-18  Steven Bosscher  <stevenb@suse.de>
+           Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
+
+       * config/s390/s390.md: Remove the generic pipeline description.
+       * config/s390/2064.md: Make all insn reservations apply to
+       the z900, g5 and g6.
+       * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove.
+       (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
+       Define to hook_int_void_1.
+       (s390_adjust_cost): Cleanup.  Don't check address dependency here.
+       (s390_first_cycle_multipass_dfa_lookahead): Always return 4.
+
+2004-06-18  Daniel Berlin  <dberlin@dberlin.org>
+                       Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t.
+       (create_stmt_ann): Ditto.
+       (create_tree_ann): New function.
+       (create_cst_ann): Remove.
+       (create_expr_ann): Ditto.
+
+       * tree-flow-inline.h (cst_ann): Remove.
+       (get_cst_ann): Ditto.
+       (get_expr_ann): Ditto.
+       (expr_ann): Ditto.
+       (get_tree_ann): New function.
+       (tree_ann): Ditto.
+       (ann_type): tree_ann -> tree_ann_t.
+       * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed.
+       (struct cst_ann_d): Removed.
+       (struct expr_ann_d): Ditto.
+       (union tree_ann_d): Removed cst and expr.
+       (tree_ann): Renamed to tree_ann_t.
+       * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t.
+       * tree-ssa-pre.c (get_value_handle): Rewrite for single common
+       annotation.
+       (set_value_handle): Ditto.
+       (phi_translate): Ditto.
+       * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t.
+
 2004-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
 
        * config/sh/t-linux64: New file.
        UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack,
        catch_count_stack, exc_binding_stack, if_nesting_count,
        blk_nesting_count, objc_enter_block, objc_exit_block,
-       objc_declare_variable, val_stack_push, val_stack_pop, 
+       objc_declare_variable, val_stack_push, val_stack_pop,
        objc_build_try_enter_fragment, objc_build_extract_expr,
        objc_build_try_exit_fragment, objc_build_extract_fragment,
-       objc_build_try_prologue, objc_build_try_epilogue, 
+       objc_build_try_prologue, objc_build_try_epilogue,
        objc_build_catch_stmt, objc_build_catch_epilogue,
        objc_build_finally_prologue, objc_build_finally_epilogue,
        objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
        * tree-ssa-operands.h (struct def_optype_d):  Change underlying type.
        (struct use_optype_d):  Change underlying type.
        (def_operand_p, use_operand_p):  New types for pointers to operands.
-       (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 
+       (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP,
        V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
-       (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand 
+       (USE_FROM_PTR, DEF_FROM_PTR):  New macros to "dereference" operand
        pointer types.
        (SET_USE, SET_DEF):  New macros to set operands from their pointer.
        (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP,
        * tree.h (duplicate_ssa_name): Declare.
 
 2004-06-17  David Ayers  <d.ayers@inode.at>
+
        * c-parse.in: Unify Objective-C token names.
 
 2004-06-17  Zack Weinberg  <zack@codesourcery.com>