OSDN Git Service

* cfglayout.c (fixup_reorder_chain): Don't do anything for
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index edfb656..01c0285 100644 (file)
@@ -1,3 +1,214 @@
+2004-06-29  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * cfglayout.c (fixup_reorder_chain): Don't do anything for
+       e_fall->dest == EXIT_BLOCK_PTR.
+
+2004-06-28  Richard Henderson  <rth@redhat.com>
+
+       * tree-cfg.c (verify_stmt): Add last_in_block parameter.  Verify
+       that eh stmts can throw.
+       (verify_stmts): Update verify_stmt call.
+       (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New.
+       * tree-eh.c (remove_stmt_from_eh_region): New.
+       (lower_eh_constructs): Fix throw_stmt_table delete routine.
+       (tree_could_trap_p): Match may_trap_p.
+       (maybe_clean_eh_stmt): New.
+       * tree-flow.h: Update decls.
+       * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts.
+       (substitute_and_fold): Clean eh edges.
+       * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle
+       empty basic blocks.
+       * tree-ssa-dom.c (need_eh_cleanup): New.
+       (tree_ssa_dominator_optimize): Allocate it.  Cleanup eh edges.
+       (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup.
+       
+2004-06-29  Alan Modra  <amodra@bigpond.net.au>
+
+       * function.c (assign_parms): Don't abort with zero size stack
+       parm failing the PARM_BOUNDARY check.
+
+2004-06-28  Diego Novillo  <dnovillo@redhat.com>
+
+       * common.opt (ftree-fre): New flag.
+       * flags.h (flag_tree_fre): Declare.
+       * opts.c (decode_options): Set.
+       * timevar.def (TV_TREE_FRE): Define.
+       * tree-flow-inline.h (may_propagate_copy): Re-arrange for
+       readability.  Handle destinations that are not SSA_NAMEs.
+       * tree-flow.h (struct ptr_info_def): Move from tree.h
+       (cprop_into_stmt, cprop_into_successor_phis): Remove.
+       (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add
+       vuse_optype parameter.
+       * tree-pass.h (pass_fre): Declare.
+       * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c
+       (cprop_into_stmt): Likewise.
+       (cprop_into_successor_phis): Likewise.
+       * tree-ssa-dom.c (eliminate_redundant_computations): Fix
+       argument ordering in call to may_propagate_copy.
+       * tree-ssa-pre.c (is_undefined_value): Assume hard registers
+       to be always defined.
+       (add_to_sets): New local function.
+       (create_value_expr_from): New local function.
+       (compute_avail): Call them.
+       (eliminate): Don't ignore statements with virtual operands.
+       (init_pre): New local function.
+       (fini_pre): New local function.
+       (execute_pre): Call them.
+       Add argument DO_FRE.  Don't do insertion if DO_FRE is true.
+       (do_pre): New function.
+       (do_fre): New function.
+       (gate_fre): New function.
+       (pass_fre): Declare.
+       * tree-ssa.c (init_tree_ssa): Don't call vn_init.
+       (delete_tree_ssa): Don't call vn_delete.
+       * tree-vn.c (val_expr_pair_d): Add documentation.
+       (vn_compute): Add VUSES argument to incorporate in computing
+       hash values.  Update all callers.
+       (expressions_equal_p): Call operand_equal_p with
+       OEP_PURE_SAME.
+       (vn_add): Add VUSES argument.  Update all callers.
+       (vn_lookup): Likewise.
+       (vn_lookup_or_add): Likewise.
+       * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre.
+
+2004-06-28  Steven Bosscher  <stevenb@suse.de>
+
+       * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost,
+       m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove.
+       (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE,
+       TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define.
+       * config/m32r/m32r.md: Rewrite the pipeline description as a DFA.
+
+2004-06-28  Richard Henderson  <rth@redhat.com>
+
+       * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'.
+       * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR,
+       IMAGPART_EXPR.
+       * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and
+       IMAGPART_EXPR explicitly.
+       * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR
+       and IMAGPART_EXPR specially.
+       * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'.
+
+2004-06-28  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs.
+
+2004-06-28  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * builtins.def (execl, execlp, execle, execv, execvp, execve,
+       fork): Change to DEF_EXT_LIB_BUILTIN.
+
+2004-06-28  Roger Sayle  <roger@eyesopen.com>
+
+       * expmed.c (expand_smod_pow2): New function to expand signed
+       remainder by a constant power of 2, such as "x % 16".
+       (expand_divmod): Call new expand_smod_pow2 when appropriate.
+       Minor corrections to comments, e.g. wrapping long lines.
+
+2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * Makefile.in (vec.o): Fix dependencies.
+
+2004-06-28  Andreas Tobler <a.tobler@schweiz.ch>
+
+       * Makefile.in: Fix parallel make dependency problem on vec.o.
+
+2004-06-28  Dhananjay Deshpande  <dhananjayd@kpitcummins.com>
+
+       PR target/14041
+       * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define.
+
+2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * tree.h (tree_check_failed): Make varadic.
+       (tree_not_check_failed): New prototype.
+       (tree_check2_failed, tree_check3_failed,
+       tree_check4_failed, tree_check5_failed): Remove.
+       (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4,
+       TREE_CHECK5): Adjust.
+       (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4, 
+       TREE_NOT_CHECK5): New.
+       (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE,
+       TREE_RTL_OPERAND_CHECK): Adjust.
+       * tree.c (tree_check_failed): Make varadic.
+       (tree_not_check_failed): New.
+       (tree_check2_failed, tree_check3_failed,
+       tree_check4_failed, tree_check5_failed): Remove.
+
+2004-06-28  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * combine.c (can_combine_p): Do not prevent building insns that use
+       and clobber the same fixed hard register.
+       (reg_dead_at_p): Likewise.
+
+2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers
+       changed.
+       (is_sra_candidate_complex_ref): New function.
+       (scalarize_modify_expr): Call it and check for LHS also.
+
+       * tree-pretty-print.c (dump_function_declaration): New.
+       (dump_generic_node, case FUNCTION_TYPE): Call it.
+       (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon.
+       (dump_generic_node, case DECL_EXPR): New case.
+       (dump_generic_node, case PLACEHOLDER_EXPR): Handle.
+       (print_declaration): Handle type and function declarations.
+       
+       * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE.
+       (convert_nonlocal_reference, convert_local_reference): Properly
+       convert nest of handled component references.
+
+2004-06-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.h, vec.c: New, type safe vector API.
+       * Makefile.in (OBJS-common): Add vec.o.
+       (vec.o): New target.
+       (gengtype-lex.o): Depend on vec.h.
+
+2004-06-28  Paolo Bonzini  <bonzini@gnu.org>
+
+       * fold-const.c (fold_cond_expr_with_comparison): Add ARG1
+       parameter.  Use it instead of ARG00 to produce the result.
+
+2004-06-28  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare.
+       * config/mn10300/mn10300.c (legitimate_address_p): New.  Test that
+       index is legitimate, compared with code moved from...
+       * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here.
+       (REG_STRICT): Define, according to REG_OK_STRICT.
+       (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P,
+       REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict
+       argument.
+       (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P,
+       REGNO_STRICT_OK_FOR_INDEX_P): New.
+       (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P,
+       REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P,
+       RTX_OK_FOR_BASE_P): Use them.
+
+2004-06-28  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/cfg.texi (Basic Blocks): Define dominators.
+
+2004-06-27  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/16205
+       * c-common.c (warn_for_collisions_1): Warn for only decls which
+       have a name.
+
+       PR c++/15145
+       * c.opt (Wsequence-point): Enable for C++ and ObjC++.
+
+       PR c/14963
+       * c-decl.c (start_decl): Check for null types.
+
+2004-06-27  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
+       Accept TOC addresses.
+
 2004-06-27  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/s390/s390-protos.h (s390_load_got): Update prototype.
        TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0
        is a constant.
 
+2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted.
+       * c-common.def (DECL_STMT): Remove.
+       * c-common.h (DECL_STMT_DECL): Deleted.
+       (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL.
+       (c_safe_from_p, c_walk_subtrees): Deleted.
+       * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR.
+       * c-dump.c (c_dump_tree, case DECL_STMT): Deleted.
+       * c-gimplify.c (gimplify_decl_stmt): Deleted.
+       (gimplify_compound_literal_expr): Use DECL_EXPR_DECL
+       and gimplify_and_add.
+       (c_gimplify_expr, case DECL_EXPR): New case.
+       (c_gimplify_expr, case DECL_STMT): Deleted.
+       * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise.
+       (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise.
+       * expr.c (safe_from_p, case 's'): New case.
+       * gimplify.c (gimplify_decl_expr): New function.
+       (gimplify_expr, case DECL_EXPR): New case.
+       * tree-inline.c (walk_tree): Walk into all fields of a type and
+       decl only if they are in a DECL_EXPR.
+       (mark_local_for_remap_r): Minor code cleanup.
+       * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else.
+       * tree.c (has_cleanups, case DECL_EXPR): New case.
+       * tree.def (DECL_EXPR): New code.
+       * tree.h (DECL_EXPR_DECL): New macro.
+       
+       * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
+
 2004-06-26  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR 13334
 
 2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
 
-       * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
+       * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define.
        (SUPPORT_SH4_SINGLE): Likewise.
        (TARGET_SWITCHES): Break out switches for cpu subtargets:
        (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.