OSDN Git Service

* cfglayout.c (fixup_reorder_chain): Don't do anything for
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 8bcc51e..01c0285 100644 (file)
@@ -1,3 +1,817 @@
+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.
+       * config/s390/s390.c (struct machine_function): Add member base_reg.
+       (s390_decompose_address): Accept UNSPEC_LTREF.  Simplify logic.
+       (s390_split_branches): Annotate late pool references.
+       (annotate_constant_pool_refs): New function.
+       (find_constant_pool_ref): Work on annotated pool references.
+       (replace_constant_pool_ref): Likewise.  Use explicit base.
+       (replace_ltrel_base): Use explicit base.
+       (s390_mainpool_start): Reflect main_pool pattern change.
+       (s390_mainpool_finish): Use base register from main_pool.
+       Update calls to replace_ltrel_base and replace_constant_pool_ref.
+       (s390_chunkify_start): Use base_reg from struct machine_function.
+       (s390_chunkify_finish): Remove base_reg argument.  Update calls
+       to replace_ltrel_base and replace_constant_pool_ref.
+       (s390_reorg): Don't decide upon base register.  Update calls.
+       (s390_load_got): Remove MAYBE_DEAD handling.  Do not emit insns
+       but return sequence instead.
+       (s390_emit_prologue): Decide upon base register to use.  Annotate
+       all literal pool references.  Adapt to main_pool pattern change.
+       Update s390_load_got call; move MAYBE_DEAD handling here.
+       (s390_emit_epilogue): Annotate late literal pool references.
+       Remove barrier before register restore instruction.
+       * config/s390/s390.md (UNSPEC_LTREF): New constant.
+       ("builtin_setjmp_receiver"): Update s390_load_got call.
+       ("main_pool"): Explicitly reference base register.
+
+2004-06-27  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1.
+       <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1.
+       <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0.
+       <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false.
+        <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true.
+       <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true.  Now that
+       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
+       * doc/install.texi: Document non-standard CFLAGS and bootstrap
+       failures and warnings.
+
+2004-06-26  Andrew Haley  <aph@redhat.com>
+
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Check
+       TREE_THIS_NOTRAP when setting MEM_NOTRAP_P.
+       * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP.
+       * tree.h (TREE_THIS_NOTRAP): New.
+
+2004-06-26  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * genattrtab.c (write_test_expr): Put a unsigned cast before
+       the first operand for GEU, GTU, LEU and LTU.
+
+2004-06-26  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c,
+       gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c,
+       tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c,
+       tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c,
+       tree-tailcall.c: Fix comment typos.  Follow spelling
+       conventions.
+
+2004-06-25  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.md: Add back scheduling exclusion info.
+
+2004-06-25  Roger Sayle  <roger@eyesopen.com>
+
+       * ifcvt.c (seq_contains_jump): Delete function.
+       (end_ifcvt_sequence): Replace call to seq_contains_jump with an
+       inline test for a jump instruction in the existing "insn" loop.
+       (block_fallthru): Document function.
+
+2004-06-25  Philip Blundell  <philb@gnu.org>
+
+       PR wrong-code/15089
+       * loop.c (scan_loop): Do not move user-specified register
+       assignments.
+
+2004-06-25  DJ Delorie  <dj@redhat.com>
+
+       * c-common.h (warn_cast_qual, warn_missing_format_attribute,
+       warn_pointer_arith, warn_missing_prototypes, warn_parentheses,
+       warn_missing_braces, warn_sign_compare, warn_long_long,
+       warn_redundant_decls, warn_float_equal, warn_char_subscripts,
+       warn_conversion, warn_format_y2k, warn_format_extra_args,
+       warn_format_zero_length, warn_format_nonliteral,
+       warn_format_security, mesg_implicit_function_declaration,
+       warn_bad_function_cast, warn_traditional,
+       warn_declaration_after_statement, warn_strict_prototypes,
+       warn_missing_declarations, warn_nested_externs,
+       warn_sequence_point, warn_init_self, warn_div_by_zero,
+       warn_implicit_int, warn_nonnull, warn_old_style_definition,
+       warn_selector, warn_undeclared_selector, warn_protocol,
+       warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy,
+       warn_overloaded_virtual, warn_nonvdtor, warn_reorder,
+       warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo,
+       warn_old_style_cast, warn_nontemplate_friend,
+       warn_deprecated): Remove explicit declarations.
+       * c-common.c: Likewise, remove explicit definitions.
+       * c-opts.c: Likewise, remove explicit assignments.
+       * c.opts: Likewise, add implicit declare/define/assign.
+
+2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case.
+       (build_addr_expr_with_type): Deleted.
+       (build_addr_expr): Deleted; callers changed to build_fold_addr_expr.
+       (gimplify_compound_lval): Make two passes over reference nest.
+
+       * tree-nested.c (build_addr): Merge real/imagpart with
+       handled_component_p.
+       (convert_nonlocal_reference, convert_local_reference): Process extra
+       args to COMPONENT_REF and ARRAY_REF.
+       * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for
+       lower bound and field offset being constant.
+
+2004-06-25  Mark Mitchell  <mark@codesourcery.com>
+
+       PR wrong-code/16129
+       * alias.c (get_alias_set): Adjust setting of
+       DECL_POINTER_ALIAS_SET for pointers to aggregates.
+
+2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree-inline.c (remap_type): Arrange to have just one pointer type
+       for each type, mode, and 'can alias' value.
+       (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL.
+       (estimate_num_insns_1): Minor code reformatting.
+       (inline_forbidden_p_1): Likewise; add; missing return statement.
+
+2004-06-25  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/15825
+       * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence.
+       Use get_isns and end_sequence instead of accepting a seq argument.
+       Scan the instruction sequence for unrecognizable or jump insns.
+       (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants,
+       noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove,
+       noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
+       noce_try_sign_mask): Use end_ifcvt_sequence to factor common code.
+
+2004-06-24  Jeff Law  <law@redhat.com>
+
+       * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS
+       after gimplifying the innermost component.
+
+2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR target/16176
+       * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary
+       register for the destination of the lwl or ldl.
+
+2004-06-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with
+       handled_component_p handling.
+       * tree-gimple.c (get_base_address): Likewise and fix typo that
+       caused both recursion and looping.
+
+       * tree-cfg.c (verify_expr): Add macro CHECK_OK.
+       Properly test for nest of handled_components in LHS context.
+
+2004-06-25  Devang Patel  <dpatel@apple.com>
+
+       * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type
+
+2004-06-25  Paul Brook  <paul@codesourcery.com>
+
+       * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT,
+       TARGET_CXX): Define.
+       (TARGET_INITIALIZER): Use TARGET_CXX.
+       * target.h (struct gcc_target): Add struct cxx.
+       * targhooks.h (default_cxx_guard_type): Add prototype.
+       * targhooks.c (default_cxx_guard_type): New function.
+       * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT):
+       Define.
+       (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions.
+       * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and
+       TARGET_CXX_GUARD_MASK_BIT.
+
+2004-06-25  Devang Patel  <dpatel@apple.com>
+
+       * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull.
+       * config/i386/darwin.h (CC1_SPEC): Same.
+
+2004-06-25  Mark G. Adams  <mark.g.adams@sympatico.ca>
+
+       * dbxout.h: Add include guards
+
+2004-06-25  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__.
+
+2004-06-25  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.c (arm_arch4t): New variable.
+       (arm_override_options): Initialize it.  If compiling for armv5 or
+       higher clear TARGET_INTERWORK.
+       (output_call): Abort if called for armv5.  Use BX if it's available.
+       (output_call_mem): Use BLX if available and ensure that all armv5
+       code is interworking safe.
+       (output_return_instruction): Always use BX in preference to MOV if
+       it's available.
+       (arm_output_epilogue): Likewise.
+       (arm_final_prescan_insn): Never conditionally call a subroutine
+       on armv5.
+       * arm.h (arm_arch4t): Declare.
+       * arm.md (call_reg_armv5, call_value_reg_armv5): New.
+       (call_reg_arm, call_value_reg_arm): Renamed from call_reg and
+       call_value_reg respectively.
+       (call_reg_thumb_v5, call_value_reg_thumb_v5): New.
+       (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect
+       and call_value_indirect respectively.
+
+2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement
+       in terms of const_float_1_operand.
+
+2004-06-25  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR target/16144
+       * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand
+       is 1.0; force it into a register instead.
+
+2004-06-25  Bernardo Innocenti  <bernie@develer.com>
+
+       * config/m68k/m68k.h: Restore valid comment removed by mistake with
+       the recent m68k comments cleanup.
+
+2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add.
+       * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise.
+       (gimplify_loop_expr, gimplify_init_constructor): Likewise.
+       (gimplify_self_mod_expr, gimplify_cond_expr): Likewise.
+
+       PR/16131
+       * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR.
+
+       * gimplify.c: Remove unneeded forward declarations.
+
+       * gimplify.c (append_to_compound_expr): Deleted.
+       * tree-gimple.h (append_to_compound_expr): Deleted.
+
+       * fold-const.c (fold_addr_expr_with_type): Look through all
+       valid LHS modifiers to find a base to mark addressable.
+
+       * tree.h (debug_find_tree): Add declaration.
+       * tree-inline.c (debug_find_tree): Remove extern declaration.
+
+2004-06-24  Eric Christopher  <echristo@redhat.com>
+
+       * config/rs6000/rs6000.md: Apply change mistakenly
+       deleted with 2004-06-22 patch.
+
+2004-06-24  Richard Henderson  <rth@redhat.com>
+
+       * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove.
+       (c_break_label, c_cont_label): New.
+       (start_function): Update initializations.
+       (c_push_function_context): Update saves.
+       (c_pop_function_context): Update restores.
+       * c-parse.in: Update expected conflicts.
+       (stmt_count, compstmt_count): Remove.  Remove all updates.
+       (if_prefix, simple_if, do_stmt_start): Remove.
+       (lineno_labeled_stmt): Remove.
+       (lineno_labels): New.
+       (c99_block_lineno_labeled_stmt): Use it.
+       (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling
+       annotate_with_locus.
+       (select_or_iter_stmt): Replace by ...
+       (condition, if_statement_1, if_statement_2, if_statement,
+       start_break, start_continue, while_statement, do_statement,
+       for_cond_expr, for_incr_expr, for_statement, switch_statement): New.
+       (stmt): Split out ...
+       (stmt_nocomp): ... this.  Use c_finish_bc_stmt, c_finish_goto_label,
+       c_finish_goto_ptr.
+       * c-semantics.c (add_stmt): Don't add line numbers to labels.
+       * c-tree.h: Update prototypes.
+       (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt;
+       add x_break_label, x_cont_label, x_switch_stack.
+       (c_switch_stack): Declare.
+       * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New.
+       (c_finish_return): Return the statement.
+       (c_switch_stack): Rename from switch_stack; export.
+       (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove.
+       (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else,
+       c_finish_else): Remove.
+       (c_finish_if_stmt): Rewrite to perform the entire operation.
+       (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt,
+       c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond,
+       c_finish_for_stmt_incr, c_finish_for_stmt): Remove.
+       (c_finish_loop): New.
+       (c_finish_bc_stmt): New.
+       (c_finish_expr_stmt): Return the statement.  Split out...
+       (c_process_expr_stmt): ... this.  Don't add locus to error marks.
+       * gimplify.c (gimplify_cond_expr): Accept NULL type statements.
+       * tree-gimple.c (is_gimple_stmt): Likewise.
+       * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise.
+       (print_struct_decl): Delete empty compound statement.
+       * objc/objc-act.c (objc_build_throw_stmt): Return the statement.
+       * objc/objc-act.h: Update decl.
+
+2004-06-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * tree-pretty-print.c (dump_generic_node, case TYPE_DECL):
+       Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE.
+
+2004-06-24  Andrew Pinski  <apinski@apple.com>
+
+       * objc-act.c (build_objc_method_call): Save the lookup_object
+       so we do not call it twice.
+
+2004-06-24  Richard Henderson  <rth@redhat.com>
+
+       * tree-ssa-dom.c (real_avail_expr_hash): New.
+       (tree_ssa_dominator_optimize): Use it in the htab.
+
+2004-06-24  Frank Ch. Eigler  <fche@redhat.com>
+
+       * tree-mudflap.c (mx_register_decls): Add third (type) argument
+       to synthesized __mf_unregister call.
+
+2004-06-24  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/15239
+       * expmed.c (expand_mult): Remove artificial restriction on the
+       maximum cost of a synthetic multiplication sequence.
+
+2004-06-24  Eric Christopher  <echristo@redhat.com>
+
+       * combine.c (distribute_notes): Don't delete sets to
+       global register variables.
+
+2004-06-24  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/i386/i386.md (ffsdi2, clzdi2): New expanders.
+       (ffs_rex64): New splitter.
+       (ffsdi_1, ctzdi2, bsr_rex64): New instructions.
+
+2004-06-24  Andrew Pinski  <apinski@apple.com>
+
+       * config/darwin7.h (MATH_LIBRARY): Remove.
+       (LIB_SPEC): Define.
+       * config/darwin.h (MATH_LIBRARY): Define always to empty.
+       (LIB_SPEC): Only define if not already defined.
+
+2004-06-24  Revital Eres  <eres@il.ibm.com>
+
+       * loop-iv.c (iv_analyze, simple_set_p): Support for identifying
+       shifts of induction variable.
+       (iv_shift): New function.
+
+2004-06-24  Richard Henderson  <rth@redhat.com>
+
+       * gimplify.c (gimplify_body): Watch for body vanishing.
+
+2004-06-24  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (record_dominating_conditions): New function.
+       (dom_opt_finalize_block, get_eq_expr_value): Use it.
+
+2004-06-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * calls.c (shift_returned_value): Fix handling of non-integer
+       TYPE_MODEs.
+
+2004-06-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN.
+       * system.h (DEFAULT_MAIN_RETURN): Poison.
+       * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation.
+
+2004-06-24  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/cfg.texi (Edges): Fix typo.
+
+2004-06-24  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (arm_output_epilogue): Remove excess checks.
+
+2004-06-23  Andrew Pinski  <apinski@apple.com>
+
+       PR middle-end/15988
+       * fold-const.c (fold_convert): Types which are compatible
+       can be converted with only a NOP_EXPR.
+
+2004-06-24  Alan Modra  <amodra@bigpond.net.au>
+
+       * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and
+       pass raw n_named_args to it.
+       * targhooks.c: Formatting.
+       (hook_bool_CUMULATIVE_ARGS_false): Correct comment.
+
+2004-06-23  Richard Henderson  <rth@redhat.com>
+
+       * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside
+       non-constant size check.  Gimplify the type too.  Tidy building
+       BUILT_IN_STACK_ALLOC call.
+
+2004-06-23  Roger Sayle  <roger@eyesopen.com>
+
+       * c-common.c (expand_unordered_cmp): Delete.
+       (expand_tree_builtin): Delete.
+       * c-common.h (expand_tree_builtin): Delete function prototype.
+       * c-typeck.c (build_function_call): Don't call expand_tree_builtin.
+
+2004-06-23  Richard Henderson  <rth@redhat.com>
+
+       * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or
+       COMPONENT_REF variable fields unless they're non-constant.
+
+2004-06-23  Robert Millan  <robertmh@gnu.org>
+
+       * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu.
+       * config/i386/linux.h: Allow overriding of LINK_EMULATION,
+         DYNAMIC_LINKER and register names in sc_ structure.
+       * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h.
+       * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu.
+       * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu.
+       * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu.
+
+       * config/kfreebsdgnu.h: Remove.
+       * config/t-kfreebsd-gnu: Likewise.
+       * config/i386/kfreebsdgnu.h: Likewise.
+
+2004-06-23  Eric Christopher  <echristo@redhat.com>
+
+       * fold-const.c (make_range): Cleanup type checking through function.
+       Remove orig_type. Replace with checks to exp_type and arg0_type.
+       Clarify comment when converting from unsigned to signed.
+
+2004-06-23  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000.
+       * config/mips/mips.md: Remove R3000 scheduling description.
+       * config/mips/3000.md: New file.
+
+2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390-protos.h (s390_emit_compare): Add prototype.
+       (s390_emit_jump): Likewise.
+       * config/s390/s390.c (s390_emit_compare): New function.
+       (s390_emit_jump): Likewise.
+       * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu",
+       "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq",
+       "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare
+       and s390_emit_jump.
+       ("cjump"): Remove, replace by ...
+       ("*cjump_64", "*cjump_31"): ... these insns.  Improve length default.
+       ("icjump", "*icjump_64", "*icjump_31"): Likewise.
+       ("trap"): Fix type attribute.
+       ("conditional_trap"): Use s390_emit_compare.
+       ("doloop_si"): Remove, replace by ...
+       ("doloop_si64", "doloop_si31"): ... these new insn_and_split.
+       Merge existing splitter into insn_and_split.  Improve length default.
+       ("doloop_di"): Merge with existing splitter into insn_and_split.
+       ("doloop"): Adapt.
+       ("jump"): Convert to expander.  Use s390_emit_jump.
+       ("*jump_64", "*jump_31"): New insns.  Improve length default.
+
+2004-06-23  Wu Yongwei  <adah@sh163.net>
+
+       * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
+       (__gthr_i486_lock_cmp_xchg): New inline assembly function.
+       (__GTHR_W32_InterlockedCompareExchange): New macro to choose a
+       suitable function for interlocked compare-and-exchange.
+       (__gthread_mutex_trylock): Use
+       __GTHR_W32_InterlockedCompareExchange.
+       (__gthread_mutex_init_function, __gthread_mutex_lock,
+       __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the
+       initial counter value to work correctly under Windows 95.
+       * config/i386/gthr-win32.c: Adjust include order.
+       Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including
+       gthr-win32.h.
+       (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock,
+       __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust
+       to match inline versions in gthr-win32.h.
+
+2004-06-23  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete.
+       (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1.
+       (insvdi_rshift_rlwimi_p): New function.
+       * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns.
+       (extendsfdf2): Convert to define_insn_and_split.
+       * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype.
+
+2004-06-23  Andrew Pinski  <apinski@apple.com>
+
+       * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have
+       type qualifiers at all.
+       If both of the type domains are null and the new element type is
+       the same as one of the, return the one which the element type.
+       matches.
+       Do not call qualify_type on the new type.
+
+2004-06-23  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove.
+
+2004-06-23  Roger Sayle  <roger@eyesopen.com>
+
+       * convert.c (strip_float_extension): Skip both NOP_EXPR and
+       CONVERT_EXPR floating point extensions.
+
+2004-06-23  Diego Novillo  <dnovillo@redhat.com>
+
+       * Makefile.in (tree-vn.o): New.
+       (tree-ssa-pre.o): Don't depend on RTL_H.
+       * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa.
+       * tree-flow.h (struct var_ann_d): Remove field expr_set.
+       (add_to_value, expressions_equal_p, get_value_handle, vn_compute,
+       vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare.
+       * tree-optimize.c (execute_init_datastructures): New local function.
+       (pass_init_datastructures): New local variable.
+       (init_tree_optimization_passes): Sequence pass_init_datastructures.
+       * tree-pretty-print.c (MASK_POINTER): Remove.
+       (dump_generic_node): Handle VALUE_HANDLE.
+       * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c.
+       Update callers to use new function names.
+       Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of
+       variable annotations.
+       * tree-ssa.c (init_tree_ssa): Call vn_init.
+       (delete_tree_ssa): Call vn_delete.
+       * tree-vn.c: New file.
+       * tree.c (tree_size): Handle VALUE_HANDLE.
+       (tree_node_structure): Likewise.
+       (iterative_hash_expr): Likewise.
+       * tree.def (VALUE_HANDLE): New code.
+       * tree.h (struct tree_value_handle): New.
+       (VALUE_HANDLE_ID): Define.
+       (VALUE_HANDLE_EXPR_SET): Define.
+       (enum tree_node_structure_enum): Add TS_VALUE_HANDLE.
+       (union tree_node): Add struct tree_value_handle.
+
+2004-06-23  Andrew Pinski  <apinski@apple.com>
+
+       * c-typeck.c (composite_type):
+       <case POINTER_TYPE>: Build a qualified type of
+       the new type.
+       <case ARRAY_TYPE>: Likewise.
+       <case FUNCTION_TYPE>: Likewise.
+
+2004-06-23  Pat Haugen  <pthaugen@us.ibm.com>
+
+       PR optimization/15633
+       * value-prof.c (divmod_fixed_value_transform): Compute probability
+       of taking optimal path and pass along to gen_ routine.
+       (mod_pow2_value_transform): Same.
+       (mod_subtract_transform): Same.
+       (gen_divmod_fixed_value): Add new probability parameter.
+       Add probability to newly created jump.
+       (gen_mod_pow2): Same.
+       (gen_mod_subtract): Same.
+
+2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
+
+       * PR target/15948
+       * arm.md (bicsi3_cbranch): Add alternative to handle tying operands
+       one and two.
+
+2004-06-23  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/15927
+       * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary
+       reload if CLASS is BASE_REGS.
+
 2004-06-23  Richard Sandiford  <rsandifo@redhat.com>
 
        * gengtype-yacc.y (option): Avoid use of non-constant struct
 
 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.