OSDN Git Service

* tree.h (PHI_CHAIN): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index b75748d..7745ee9 100644 (file)
@@ -1,3 +1,289 @@
+2004-06-16  Steven Bosscher  <stevenb@suse.de>
+
+       * tree.h (PHI_CHAIN): New.
+       * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c,
+       tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c,
+       tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c,
+       tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
+       tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN
+       when traversing a list of PHI_NODEs.
+
+2004-06-16  Bernardo Innocenti  <bernie@develer.com>
+
+       PR target/13292
+       * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY
+       on -msoft-float.
+       (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for
+       68040 and soft-float.
+       * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881
+       in the TARGET_68040_ONLY case.
+
+2004-06-16 Peter Barada  <peter@the-baradas.com>
+
+       * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q.
+       (movsi_cf): Make named, don't match TARGET_CFV4.
+       (pushexthisi_const): Use mov3q if possible.
+       (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern
+       to special case mvz.w for ColdFire V4.
+       (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern
+       to special case mvz.b for ColdFire V4.
+       (udivmodhi4, divmodhi4): Use mvz to zero extend arg for
+       divide.
+       (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible.
+       * config/m68k/m68k.c(valid_mov3q_const):  New function.
+       (const_method): SWAP is valid for ColdFire.
+       (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4.
+       * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here.
+
+2004-06-16  Richard Henderson  <rth@redhat.com>
+
+       * c-common.def (CASE_LABEL): Remove.
+       * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL.
+       (match_case_to_enum_1): Likewise.
+       * c-common.h (c_common_stmt_codes): Remove CASE_LABEL.
+       * c-dump.c (c_dump_tree): Likewise.
+       * c-gimplify.c (c_gimplify_stmt): Likewise.
+       * c-pretty-print.c (pp_c_statement): Likewise.
+       * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR.
+       * tree.h (CASE_LOW): Update commentary.
+
+2004-06-16  Richard Henderson  <rth@redhat.com>
+
+       * c-common.def (ASM_STMT): Remove.
+       * c-common.h (c_common_stmt_codes): Remove ASM_STMT.
+       * c-dump.c (c_dump_tree): Likewise.
+       * c-gimplify.c (c_gimplify_stmt): Likewise.
+       * c-pretty-print.c (pp_c_statement): Likewise.
+       * c-typeck.c (build_asm_expr): Use ASM_EXPR.
+       * tree.h: Fix commentary.
+
+2004-06-16  Richard Henderson  <rth@redhat.com>
+
+       * c-common.def (GOTO_STMT, LABEL_STMT): Remove.
+       * c-common.c (c_add_case_label): Use LABEL_EXPR.
+       * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove.
+       (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT.
+       * c-dump.c (c_dump_tree): Likewise.
+       * c-gimplify.c (c_gimplify_stmt): Likewise.
+       * c-pretty-print.c (pp_c_statement): Likewise.
+       * c-parse.in (stmt): Use GOTO_EXPR.
+       (label): Use LABEL_EXPR.
+       * c-semantics.c (build_stmt): Set TREE_TYPE to void.
+       * tree-inline.c (copy_body_r): Don't build empty BLOCKs.
+
+2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * cfgcleanup.c (try_simplify_condjump): Update test to make
+       sure we have a conditional branch around am unconditional branch.
+
+2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file.
+       
+2004-06-16  Dale Johannesen  <dalej@apple.com>
+
+       * loop.c (loop_givs_reduce): Avoid miscompilation of
+       loops entered at bottom.
+
+2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * cfglayout.c (fixup_reorder_chain): Handle case where the
+       destination of E_FALL is EXIT_BLOCK_PTR.
+
+2004-06-16  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR target/15653
+       * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops
+       after shifts before asm.
+
+2004-06-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR tree-optimization/15993
+       * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its
+       destination is unchanged.
+
+2004-06-16  Andreas Jaeger  <aj@suse.de>
+
+       * doc/install.texi (Configuration): Update description for
+       --enable-version-specific-runtime-libs.
+
+2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
+
+       * doc/install.texi: boehm-gc now uses automake 1.8.5.
+
+2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
+
+       * toplev.h (rest_of_compilation): Adjust prototype.
+
+2004-06-16  Paolo Bonzini  <bonzini@gnu.org>
+
+       * coverage.c: Remove argument to rest_of_compilation.
+       * expr.c (execute_expand, set_save_expr_context, pass_expand): New.
+       * passes.c (rest_of_compilation): Remove argument.
+       (pass_rest_of_compilation): New.
+       (rest_of_handle_final, rest_of_handle_delay_slots,
+       rest_of_handle_stack_regs, rest_of_handle_variable_tracking
+       rest_of_handle_machine_reorg, rest_of_handle_regrename
+       rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2
+       rest_of_handle_regmove, rest_of_handle_tracer
+       rest_of_handle_if_conversion, rest_of_handle_if_after_combine
+       rest_of_handle_web, rest_of_handle_branch_prob
+       rest_of_handle_value_profile_transformations, rest_of_handle_cfg
+       rest_of_handle_addressof, rest_of_handle_jump_bypass
+       rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2):
+       Check that the two arguments are actually superfluous.
+       * tree-optimize.c (register_dump_files): Add properties argument.
+       Track validity of passes.  Only initialize dump files for
+       tree-based passes.  Store the full set of provided passes in
+       the pass.
+       (init_tree_optimization_passes): Register pass_expand and
+       pass_rest_of_compilation.
+       (execute_one_pass): Do not track the presence of required properties
+       here.  Set in_gimple_form.  Do not update current_properties.
+       (current_properties): Remove.
+       (set_save_expr_context): Remove.
+       (tree_rest_of_compilation): Do not set in_gimple_form.  Do not
+       expand to RTL here, and do not call rest_of_compilation.  Push
+       GGC context even before gimplification.
+       * tree-pass.h (PROP_rtl, PROP_trees): New flags.
+       (pass_expand, pass_rest_of_compilation): Declare.
+
+2004-06-15  Jeff Law  <law@redhat.com>
+
+       * fold-const.c (swap_tree_comparison): No longer static.
+       (tree_swap_operands_p): Similarly.  Return true if both operands
+       are SSA_NAMEs and the first operand has a higher version number than
+       the second operand.
+       * tree.h (swap_tree_comparison): Prototype.
+       (tree_swap_operands_p): Prototype.
+       * tree-ssa-operands.c (get_expr_operands): For commutative
+       operators and relational comparisons, canonicalize the
+       order of the operands.
+
+2004-06-15  Richard Henderson  <rth@redhat.com>
+
+       * c-common.c (lang_gimplify_stmt): Remove next_p argument.
+       (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then,
+       c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt,
+       c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c.
+       (finish_fname_decls, fname_decl): Use statement_lists.
+       (c_expand_expr_stmt): Don't set last_expr_type.
+       (c_type_hash): Fix indentation.
+       (c_safe_from_p): Don't follow TREE_CHAIN.
+       (c_tree_chain_matters_p): Remove.
+       * c-common.def (SCOPE_STMT): Remove.
+       (CLEANUP_STMT): Redefine to contain its own body.
+       * c-common.h (struct stmt_tree_s): Remove x_last_stmt,
+       x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack.
+       Add x_cur_stmt_list.
+       (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove.
+       (cur_stmt_list): New.
+       (STATEMENT_LIST_STMT_EXPR): New.
+       (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P,
+       SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove.
+       (CLEANUP_BODY): New.
+       (CLEANUP_DECL): Move to operand 2.
+       (c_common_stmt_codes): Remove SCOPE_STMT.
+       (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove.
+       * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove.
+       (c_push_function_context, c_pop_function_context): Don't save it.
+       (finish_decl): Set TREE_USED on the decl for a cleanup.
+       Use push_cleanup.
+       (store_parm_decls): Use statement lists.
+       (finish_function): Remove compstmt rule workaround.  Use statement
+       lists.  Call finish_fname_decls after finalizing the body.
+       (c_begin_compound_stmt): Move to c-typeck.c.
+       * c-dump.c (c_dump_tree): Remove SCOPE_STMT.
+       * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New.
+       (c_genericize): Invoke them.
+       (c_gimplify_stmt): Don't look through TREE_CHAIN.  Kill SCOPE_STMT.
+       (c_build_bind_expr): Export.
+       (gimplify_block, gimplify_cleanup): Remove.
+       (gimplify_condition): Use gimplify_stmt.
+       (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack.
+       (gimplify_if_stmt): Remove recursion hack.
+       (c_gimplify_expr): Remove STMT_EXPR handling.
+       (stmt_expr_last_stmt, gimplify_stmt_expr): Remove.
+       (is_last_stmt_of_scope): Remove.
+       * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
+       * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt,
+       c_end_compound_stmt.
+       * c-objc-common.c (build_cdtor): Likewise.
+       * c-parse.in (primary): Use c_finish_stmt_expr.
+       (push_scope, pop_scope): Remove.
+       (c99_block_start, compstmt_start): Use c_begin_compound_stmt.
+       (c99_block_end, compstmt): Use c_end_compound_stmt.
+       (c99_block_lineno_labeled_stmt): Likewise.
+       (compstmt_primary_start): Use c_begin_stmt_expr.
+       (simple_if, select_or_iter_stmt): Update calls to stmt builders.
+       (do_stmt_start): Fill in body directly.
+       (lineno_stmt): Avoid setting lineno on constants.
+       * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST.
+       Remove SCOPE_STMT.
+       * c-semantics.c (begin_stmt_tree): Remove.
+       (push_stmt_list, re_push_stmt_list, pop_stmt_list): New.
+       (add_stmt): Use statement lists.
+       (add_scope_stmt, finish_stmt_tree): Remove.
+       (push_cleanup): New.
+       * c-tree.h: Move some decls from c-common.h.
+       * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists.
+       (do_case, c_finish_case): Likewise.
+       (c_finish_then): Take body for then as argument.
+       (c_finish_else): Similarly.
+       (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
+       c_finish_for_stmt_incr, c_finish_for_stmt): New.
+       (c_begin_stmt_expr, c_finish_stmt_expr): New.
+       (c_begin_compound_stmt): Do scope management.
+       (c_end_compound_stmt): New.
+       * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR.
+       * gimplify.c (voidify_wrapper_expr): Accept temporary argument.
+       Look through exception handling constructs.
+       (gimplify_bind_expr): Accept temporary argument.
+       (gimplify_target_expr): Special case BIND_EXPR bodies.
+       (gimplify_expr): Handle fallback == fb_none like a statement.
+       * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill.
+       * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove.
+       * langhooks.h (tree_chain_matters_p): Remove.
+       * stub-objc.c (objc_clear_super_receiver): New.
+       * tree-gimple.h (voidify_wrapper_expr): Update decl.
+       (append_to_statement_list, append_to_statement_list_force): Move
+       to tree-iterator.h.
+       * tree-inline.c (expand_call_inline): Update call.
+       (clone_body): Use statement lists.
+       (walk_tree): Don't check tree_chain_matters_p.
+       (copy_tree_r): Likewise.
+       * tree-iterator.c (alloc_stmt_list): Clear lang bits.
+       (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly.
+       * tree-iterator.h (append_to_statement_list,
+       append_to_statement_list_force): Moved from tree-gimple.h.
+       * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump.
+       * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt.
+       (objc_enter_block): Likewise.
+       (objc_exit_block): Use c_end_compound_stmt.
+       (objc_build_try_enter_fragment): Add #error and comment for
+       rewriting for OBJCPLUS.
+       (objc_build_extract_fragment, objc_build_try_epilogue,
+       objc_build_catch_stmt, objc_build_finally_prologue,
+       objc_build_finally_epilogue): Update for C statement builders.
+       * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P):
+       Remove.
+
+2004-06-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * df.c (df_reg_clobber_gen): Removed.
+       (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute):
+       Make more effective for hard regs.
+       * ra-build.c (livethrough_conflicts_bb): Check contains_call.
+
+2004-06-15  Alexandre Oliva  <aoliva@redhat.com>
+
+       * c-pragma.h (c_lex_string_translate): Change type to int.
+       * c-parse.in: Change all assignments of c_lex_string_translate
+       to true and false to 1 and 0.
+       * c-lex.c (c_lex_string_translate): Likewise.
+       (lex_string): Convert string without translation in the -1
+       case.
+
 2004-06-15  Mark G. Adams  <mark.g.adams@sympatico.ca>
 
        * convert.h: Add include guards
@@ -5,7 +291,7 @@
 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
 
        * tree-flow-inline.h: Document all functions.
-       
+
 2004-06-15  Daniel Berlin  <dberlin@dberlin.org>
 
        * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node.
        (m32r_return_addr): Added for __builtin_return_address(0).
        (m32r_reload_lr): Ditto.
 
-       * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. 
-       
+       * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss.
+
 2004-06-15  Paolo Bonzini  <bonzini@gnu.org>
 
        * doc/install.texi (Prerequisites): Update libbanshee,
        automake 1.8.5.
 
 2004-06-15  Eric Botcazou  <ebotcazou@act-europe.fr>
-            Olivier Hainque  <hainque@act-europe.fr>
+           Olivier Hainque  <hainque@act-europe.fr>
 
        * function.c (fixup_var_refs): Also adjust the start of sequence
        after fixing up the insns.