OSDN Git Service

* Makefile.in (distclean): Don't try to remove empty directories.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index ace0f8d..82534ed 100644 (file)
+2004-06-22  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * Makefile.in (distclean): Don't try to remove empty directories.
+
+2004-06-22  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR target/15869
+       * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow.
+
+2004-06-22  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu
+       operands.
+
+2004-06-22  Dale Johannesen  <dalej@apple.com>
+
+       * config/rs6000/rs6000.c (legitimate_offset_address_p): Make
+       global, rename rs6000_legitimate_offset_address_p.
+       (rs6000_legitimate_address_p): Adjust calls to it.
+       (lmw_operation): Ditto.
+       (stmw_operation): Ditto.
+       * config/rs6000/rs6000-protos.h: Declare it.
+       * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it
+       instead of offsettable_memref_p.
+
+2004-06-22  Dale Johannesen  <dalej@apple.com>
+
+       * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
+       [reg+reg] mode for TFmode memory accesses.
+       (rs6000_eliminate_indexed_memrefs): New.
+       (rs6000_emit_move): Call preceding for TImode and TFmode.
+
+2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-cfg.c (pass_warn_function_return): It needs
+       CFG, not SSA.
+
+2004-06-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * doc/invoke.texi (Machine Dependent Options): Alphabetize.
+       (Submodel Options): Likewise.
+
+2004-06-21  Andrew Pinski  <apinski@apple.com>
+
+       Radar #: 3701874
+       * c-decl.c (push_file_scope): Return early if we already
+       have a file scope.
+
+2004-06-21  Geoffrey Keating  <geoffk@apple.com>
+
+       * c-opts.c (c_common_handle_option): Handle -fpch-preprocess.
+       * c-common.h (flag_pch_preprocess): Declare.
+       (c_common_pch_pragma): Likewise.
+       * c-common.c (flag_pch_preprocess): New.
+       * c-pch.c (c_common_read_pch): Support -fpreprocess-only.
+       (c_common_pch_pragma): New.
+       * c-ppoutput.c (cb_read_pch): New.
+       (init_pp_output): Support -fpch-preprocess.
+       * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess.
+       * c.opt (fpch-preprocess): New.
+       * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess.
+       * doc/cppopts.texi: Document -fpch-preprocess.
+       * doc/invoke.texi (Precompiled Headers): Mention that
+       -fpreprocessed is safe for PCH.  Mention that if an option is
+       listed as safe that doesn't mean it does what you expect.
+
+2004-06-22  Ben Elliston  <bje@au.ibm.com>
+
+       * tree-ssa.c (ssa_redirect_edge): Correct leading comment.
+
+2004-06-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * Makefile.in (gimplify.o): Add cgraph.h.
+       * alias.c (adjust_offset_for_component_ref): Use
+       component_ref_field_offset.
+       * c-decl.c (build_array_declarator): Add news args for ARRAY_REF.
+       * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list.
+       (gimplify_decl_stmt): Call gimplify_type_sizes for type.
+       For decl, call gimplify_one_sizepos and use statement list.
+       (gimplify_compound_literal_expr): New arg PRE_P.
+       Add statement to PRE_P list and return DECL.
+       (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to
+       gimplify_compound_literal_expr.
+       * c-tree.h (getdecls): Deleted.
+       * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF.
+       (build_array_ref): Add two operands for ARRAY_REF.
+       (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for
+       COMPOUND_LITERAL_EXPR.
+       * coverage.c (tree_coverage_counter_ref): Add new operands
+       for ARRAY_REF.
+       * emit-rtl.c (component_ref_for_mem_expr): Add new operand
+       for COMPONENT_REF.
+       (set_mem_attributes_minus_bitpos): Use array_ref_low_bound
+       and array_ref_element_size.
+       (widen_memory_access):Use component_ref_field_offset.
+       * explow.c (update_nonlocal_goto_save_area): Add two operands
+       for ARRAY_REF.
+       * expr.c (array_ref_element_size, array_ref_low_bound): New functions.
+       (component_ref_field_offset): Likewise.
+       (get_inner_reference): Use them.
+       (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound.
+       * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE.
+       (fold_read_from_constant_string): Use array_ref_low_bound.
+       Verify that result is a character type.
+       (build_fold_indirect_ref): Add two operands for ARRAY_REF.
+       * function.c (expand_function_start): Likewise.
+       * gimple-low.c (expand_var_p): Delete duplicated line.
+       * gimplify.c: Add static decls for local functions.
+       (cgraph.h): Now included.
+       (create_tmp_var): Remove check for ARRAY_TYPE.
+       (copy_if_shared_r): Look at bounds and sizes of types.
+       (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt.
+       (gimplify_exit_expr, shortcut_cond_expr): Likewise.
+       (gimplify_save_expr, gimple_push_cleanup): Likewise.
+       (gimplify_init_constructor): Likewise.
+       WANT_VALUE now bool.
+       If empty list with no result wanted, return GS_UNHANDLED.
+       Add additional operands for ARRAY_REF and COMPONENT_REF.
+       (canonicalize_component_ref): Convert to &array[L].
+       (gimplify_array_ref_to_plus): Use array_ref_element_size and
+       array_ref_lower_bound.
+       (build_addr_expr_with_type, build_addr_expr): New functions.
+       (gimplify_compound_lval): WANT_LVALUE now bool.
+       Major rework to allow handle_component_p and initialize and
+       gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and
+       COMPONENT_REF.
+       (gimplify_array_ref): Deleted.
+       (gimplify_self_mod_expr): WANT_VALUE now bool.
+       (gimplify_modify_expr): Gimplify to_p and from_p later.
+       Factor out code into gimplify_modify_expr_rhs and call twice.
+       Move variable-size code earlier and handle PLACEHOLDER_EXPR.
+       (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns.
+       (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case.
+       (gimplify_expr, case ARRAY_REF): Delete special case.
+       Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF,
+       IMAGPART, and REALPART the same way.
+       (gimplify_expr, case VIEW_CONVERT_EXPR): New case.
+       (gimplify_expr): Call gimplify_variable_sized_compare if applicable.
+       Call alloc_stmt_list instead of build_empty_stmt.
+       Deal with _REF that's volatile.
+       (gimplify_type_sizes, gimplify_one_sizepos): New functions.
+       (unshare_body, unvisit_body): New functions.
+       (gimplify_body): Call them.
+       * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE.
+       * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT.
+       * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF.
+       * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF
+       like ARRAY_REF.
+       (verify_expr, case ADDR_EXPR): Use handled_component_p.
+       * tree-dfa.c (get_virtual_var): Likewise.
+       * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF):
+       New cases to dump new operands; likewise for ARRAY_RANGE_REF.
+       * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF.
+       * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF
+       and INDIRECT_REF.
+       (get_base_address): Use handled_component_p.
+       * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New.
+       * tree-inline.c (walk_tree): Walk more things for types and decls.
+       * tree-mudflap.c (mf_build_check_statement_for): Add new operands
+       for ARRAY_REF and COMPONENT_REF.
+       (mx_xform_derefs_1): Clean up usage of decl sizes.
+       * tree-nested.c (build_addr): Use handled_component_p.
+       (walk_stmts, case CATCH_EXPR): Add missing "break".
+       (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF.
+       (finalize_nesting_tree_1): Likewise.
+       (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF
+       and process additional operands.
+       (convert_local_reference): Likewise.
+       * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat
+       ARRAY_RANGE_REF similarly to ARRAY_REF.
+       * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle
+       like RECORD_TYPE.
+       (dump_generic_node, case COMPONENT_REF): Print offset operand.
+       (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF
+       and print lower bound and element size for both.
+       (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF.
+       * tree-sra.c (csc_build_component_ref): Add new operand.
+       (scalarize_call_expr): Use get_base_address.
+       * tree-ssa-ccp.c (widen_bitfield): Clean up size handling.
+       (maybe_fold_offset_to_array_ref): Rework to handle input having an
+       ARRAY_REF, refine handling of lower bound, and add new operands
+       for ARRAY_REF.
+       (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF.
+       (maybe_fold_stmt_indirect): Only fold *&B to B if types match.
+       (maybe_fold_stmt_addition): Only handle constant lower bound.
+       * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
+       Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands.
+       Look at new offset operand of COMPONENT_REF.
+       * tree-ssa.c (set_is_used): Use handled_component_p.
+       * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand.
+       (stabilize_reference, case COMPONENT_REF): Likewise.
+       (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly.
+       (recompute_tree_invariant_for_addr_expr): Completely rework to
+       be more precise.  Also set TREE_SIDE_EFFECTS.
+       (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here.
+       (build2_stat, build3_stat, build4_stat): For references,
+       propagate TREE_THIS_VOLATILE.
+       (get_unwidened): Add new operand for COMPONENT_REF.
+       (get_narrower): Likewise; use host_integerp for DECL_SIZE.
+       * tree.def (COMPONENT_REF): Add new operand.
+       (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands.
+       * tree.h (array_ref_element_size, array_ref_low_bound): New decls.
+       (component_ref_field_offset): Likewise.
+       * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF.
+       (alpha_gimplify_va_arg): Likewise.
+       * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
+       * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise.
+       * config/iq2000/iq2000.c (iq2000_va_arg): Likewise.
+       * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise.
+       * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg):
+       Likewise.
+       * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise.
+       * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise.
+       * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start):
+       Likewise.
+       (xstormy16_expand_builtin_va_arg): Likewise.
+       * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise.
+       * objc/objc-act.c (generate_static_references): Likewise.
+       (generate_strings, build_method_prototype_list_template): Likewise.
+       (generate_protocol_list): Likewise.
+
+2004-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR rtl-optimization/14782
+       * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing
+       the address checks for secondary reloads for loads from and stores
+       to floating-point registers.
+       * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes
+       in the address check.  Move work around for ELF32 targets to
+       GO_IF_LEGITIMATE_ADDRESS.
+       (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be
+       correctly aligned for DImode loads and stores.  Don't allow long
+       SFmode displacements on ELF32.
+
+2004-06-21  Richard Henderson  <rth@redhat.com>
+
+        PR rtl-opt/16114
+        * cse.c (merge_equiv_classes): Also rehash in response to
+        delete_reg_equiv changes.
+        (rehash_using_reg): Don't exclude REGs from rehashing.
+
+2004-06-21  Richard Henderson  <rth@redhat.com>
+
+       * c-common.def (RETURN_STMT): Remove.
+       * c-common.h (RETURN_STMT_EXPR): Remove.
+       (c_expand_return, build_return_stmt): Remove.
+       (c_common_stmt_codes): Remove RETURN_STMT.
+       * c-dump.c (dump_next_stmt): Remove.
+       (c_dump_tree): Remove RETURN_STMT.
+       * c-decl.c (finish_function): Use c_finish_return.
+       * c-parse.in (stmt): Likewise.
+       * c-gimplify.c (gimplify_return_stmt): Remove.
+       (c_gimplify_expr): Remove RETURN_STMT.
+       * c-pretty-print.c (pp_c_statement): Likewise.
+       * c-semantics.c (build_return_stmt): Remove.
+       * c-tree.h (c_finish_return): Declare.
+       * c-typeck.c (c_finish_return): Rename from c_expand_return.
+       Return void.  Build RETURN_EXPR directly.
+       * tree-dump.h (dump_next_stmt): Remove.
+
+2004-06-21  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-decl.c (start_function): Don't call make_decl_rtl.  Don't
+       look at TREE_ADDRESSABLE of symbol name.
+
+2004-06-21  Kelley Cook  <kcook@gcc.gnu.org>
+
+       PR target/15551
+       * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE.
+       (allocate_stack_worker): Make unspec_volatile.
+       (allocate_stack_worker_rex64):  Likewise.
+       (allocate_stack_worker_postreload):  Likewise.
+       (allocate_stack_worker_rex64_postreload):  Likewise.
+
+2004-06-21  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR optimization/15982
+       * tree-ssa-pre.c: Update a few comments and todos to
+       reflect constants change.
+       (get_value_handle): Constants now value number to themselves.
+       (lookup): Constants lookup to themselves.
+       (add_to_value): Adjust to always be on.
+       (set_contains_value): Adjust for constants change.
+       (find_leader): Ditto.
+       (phi_translate): 'r' nodes are never ANTIC right now.
+       (valid_in_set): Ditto.
+       (get_expr_set): New function.
+       (find_or_generate_expression): New function, broken out from
+       insert_aux.
+       (create_expression_by_pieces): Ditto, plus additional
+       machinery to handle complex values.
+       (compute_avail): Remove dead RETURN_EXPR handling.
+
+2004-06-21  Steven Bosscher  <stevenb@suse.de>
+
+       * config/i386/i386.c: Include insn-codes.h
+       * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't
+       define here.
+       * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG,
+       DIRFLAG_REG): New define_constants.  Use them everywhere.
+
+2004-06-21  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/t-linux (MULTILIB_OPTIONS): Remove.
+
+2004-06-21  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionanlly define.
+       (SUPPORT_SH4_SINGLE): Likewise.
+       (TARGET_SWITCHES): Break out switches for cpu subtargets:
+       (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define.
+       (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise.
+       (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise.
+       (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise.
+       (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise.
+       (TARGET_SWITCHES_SH5_32MEDIA): Likewise.
+       (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise.
+       (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to:
+       (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU)
+       (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to:
+       (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU).
+       (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define.
+       (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise.
+       * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine.
+       (TARGET_DEFAULT): Likewise.
+       * config/sh/t-elf: Amend comment.
+       * config/sh/t-1e, config/sh/t-mlib-sh1: New files.
+       * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise.
+       * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise.
+       * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise.
+       * config/sh/t-mlib-sh4-single: Likewise.
+       * config/sh/t-mlib-sh4-single-only: Likewise.
+       * config/sh/t-mlib-sh5-32media: Likewise.
+       * config/sh/t-mlib-sh5-32media-nofpu: Likewise.
+       * config/sh/t-mlib-sh5-64media: Likewise.
+       * config/sh/t-mlib-sh5-64media-nofpu: Likewise.
+       * config/sh/t-mlib-sh5-compact: Likewise.
+       * config/sh/t-mlib-sh5-compact-nofpu: Likewise.
+       * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb.
+       (MULTILIB_CPUS): Define.
+       (MULTILIB_OPTIONS): Use MULTILIB_CPUS.
+       (MULTILIB_MATCHES): Use some shell code to calculate it.
+       (MULTILIB_EXCEPTIONS): Change to ml/m1.
+       * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC.
+       * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU.
+       (LINK_DEFAULT_CPU_EMUL): Don't redefine.
+       (NO_PROFILE_COUNTERS): Define to 1.
+       * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to.
+       (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
+       * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine.
+       (MULTILIB_MATCHES): Don't zap.
+       (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES.
+       * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine.
+       (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap.
+       (MULTILIB_RAW_DIRNAMES): Define.
+       (MULTILIB_DIRNAMES): Use it.
+       * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*.
+       (sh*linux configurations): Merge into:
+       (sh*elf / sh*kaos configurations).  Support --with-endian, --with-cpu,
+       --with-multilib-list options.  Support sh-superh-elf configuration.
+       (sh*-netbsd*): Use SELECT_SH* macros.
+       (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu".
+       Merge sh*-*-netbsd* configurations into sh-elf configurations.
+       * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete.
+       * config/sh/t-monolib: Likewise.
+
+2004-06-21  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need
+       not imply FPA.
+
+2004-06-21  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (operand_equal_p): Pass flags in recursive calls for
+       binary and relational operations.  Add support for TRUTH_ANDIF_EXPR,
+       TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR.
+       * tree.c (commutative_tree_code): Also list UNORDERED_EXPR,
+       ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR
+       and TRUTH_XOR_EXPR.
+
+2004-06-21  Paolo Bonzini  <bonzini@gnu.org>
+
+       * rtlanal.c (may_trap_p): Mark LTGT as trapping.
+
+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.
+       * config.gcc: Add it to tmake_file for sh64*-*-linux*.
+
+2004-06-18  Paolo Bonzini  <bonzini@gnu.org>
+
+       * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl.
+       (unshare_all_rtl_again): Call unshare_all_rtl_1.
+       (unshare_all_rtl): New.
+       * function.c (instantiate_virtual_regs): Remove parameters.
+       * function.h (instantiate_virtual_regs): Add prototype.
+       * rtl.h (unshare_all_rtl): Add prototype.
+       * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove
+       prototype.
+       * passes.c: Remove assertions on the parameters to
+       rest_of_handle_* functions.  Remove the parameters to
+       the functions, replacing decl with current_function_decl
+       and insns with get_insns ().
+
+2004-06-17  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (constant_boolean_node): Handle boolean_type_node
+       directly, return either boolean_true_node or boolean_false_node.
+
+2004-06-18  Kelley Cook  <kcook@gcc.gnu.org>
+
+       * opts.sh: Delete.  Break out generated code to next four files.
+       * opt-gather.awk: New file.
+       * optc-gen.awk: New file.
+       * opth-gen.awk: New file.
+       * opt-functions.awk: New common file.
+       * Makefile.in: Update for above.
+       * configure.ac: Update comment.
+       * configure: Regenerate.
+
+2004-06-17  Richard Henderson  <rth@redhat.com>
+
+       * c-common.c (flag_objc_sjlj_exceptions): New.
+       * c-common.h (flag_objc_sjlj_exceptions): Declare.
+       * c-opts.c (c_common_handle_option): Set it.
+       (c_common_post_options): Handle interation of different
+       objective-c exception and runtime switches.
+       * c-decl.c (c_eh_initialized_p): New.
+       (finish_decl): Use it instead of local eh_initialized_p.
+       * c-parse.in (nested_function, notype_nested_function): Record
+       the result of compstmt.
+       (compstmt_or_error): Likewise.
+       (compstmt): Don't add_stmt the result.
+       (stmt): Don't return anything.  Rewrite objc try and sync rules.
+       (objc_try_stmt, objc_catch_list): Remove.
+       (objc_catch_block, objc_finally_block): Remove.
+       (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New.
+       (objc_try_catch_clause, objc_finally_clause): New.
+       (objc_try_catch_stmt): Rewrite.
+       * c-tree.h (c_eh_initialized_p): Declare.
+       * c-opt (fobjc-sjlj-exceptions): New.
+       * except.c (output_function_exception_table): Don't call cgraph
+       on non-decls.
+       * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR,
+       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_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_catch_stmt, objc_build_catch_epilogue,
+       objc_build_finally_prologue, objc_build_finally_epilogue,
+       objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
+       objc_build_synchronized_epilogue): Remove.
+       (objc_create_temporary_var, struct objc_try_context, cur_try_context,
+       objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr,
+       next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp,
+       next_sjlj_build_exc_extract, next_sjlj_build_catch_list,
+       next_sjlj_build_try_catch_finally, objc_begin_try_stmt,
+       objc_begin_catch_clause, objc_finish_catch_clause,
+       objc_build_finally_clause, objc_finish_try_stmt,
+       objc_build_synchronized): New.
+       (objc_is_object_id, objc_is_class_id): New.
+       (objc_comptypes): Use them.
+       (build_next_objc_exception_stuff): Break NeXT sjlj out from
+       build_objc_exception_stuff.
+       (synth_module_prologue): Update to match.
+       (objc_build_throw_stmt): Use cur_try_context to decide if
+       we're in a @catch.
+       * objc/objc-act.h: Update prototypes.
+       (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove.
+
+2004-06-17  Andrew Pinski <apinski@apple.com>
+
+       * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>):
+       Use TYPE_FIELDS instead of TYPE_VALUES.
+
+2004-06-17  Jason Merrill  <jason@redhat.com>
+
+       PR c++/16015
+       * gimplify.c (gimplify_target_expr): Handle void initializer.
+       * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise.
+       * doc/c-tree.texi (Expression trees): Update TARGET_EXPR
+       and AGGR_INIT_EXPR.
+
+2004-06-17  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_relational_const): Use constant_boolean_node.
+
+2004-06-17  Jan Hubicka  <jh@suse.cz>
+
+       PR target/15433
+       * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix
+       operand numbering in the output template.
+       (SSE DF cmov 0 splitter): The conditional is VOIDmode.
+
+2004-06-17  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (can_throw_internal): Recognize RESX expresisons.
+
+2004-06-17  Jan Hubicka  <jh@suse.cz>
+
+       * cfgbuild.c (make_edges): Do not use label_value_list.
+       (find_basic_blocks_1): Do not collect label_value_list.
+       (find_sub_basic_blocks): Update call of make_edges.
+
+2004-06-17  Andrew MacLeod  <amacleod@redhat.com>
+
+       * tree-cfg.c (tree_make_forwarder_block):  Use SET_PHI_RESULT.
+       * tree-flow-inline.h (get_use_op_ptr):  Return a use_operand_p.
+       (get_use_from_ptr, get_def_from_ptr):  New.  Return operand pointers.
+       (get_def_op_ptr):  Return a def_operand_p instead of a 'tree *'.
+       (get_v_may_def_result_ptr):  Return a def_operand_p.
+       (get_v_may_def_op_ptr, get_vuse_op_ptr):   Return a use_operand_p.
+       (get_v_must_def_op_ptr):  Return a def_operand_p.
+       (get_phi_result_ptr):  New.  Return a pointer to the result of a PHI.
+       (get_phi_arg_def_ptr):  New.  Return a pointer to an argument of a PHI.
+       (phi_element_for_edge):  Remove.
+       * tree-flow.h (propagate_value, replace_exp):  Change prototype.
+       (propagate_tree_value):  Add new prototype.
+       (phi_element_for_edge):  Remove prototype.
+       * tree-into-ssa.c (mark_def_sites):  Use new operand types.
+       (prepare_operand_for_rename):  Split into two functions.
+       (prepare_use_operand_for_rename):  Prepare use operands.
+       (prepare_def_operand_for_rename):  Prepare def operands.
+       (rewrite_stmt):  Use new operand types.
+       (rewrite_operand):  Use new operand types, change parameter type.
+       * tree-outof-ssa.c (replace_variable):  Split into two functions.
+       (replace_use_variable):  Rewrite uses.
+       (replace_def_variable):  Rewrite defs.
+       (rewrite_trees, rewrite_vars_out_of_ssa):  Use new operand types.
+       * tree-phinodes.c (make_phi_node, resize_phi_node):  Use new types.
+       (add_phi_arg, remove_phi_arg_num):  Use new operand types.
+       * tree-ssa-ccp.c (substitute_and_fold):  Use new operand types.
+       (ccp_fold, replace_uses_in):  Use new operand types.
+       * tree-ssa-copy.c (replace_ssa_names):  Rename to replace_ssa_names_ann
+       and no longer set the value, change parameter type.
+       (replace_exp_1):  Use new operand types.
+       (propagate_value):  Change parameter type, use new operand types.
+       (propagate_tree_value):  Propagate_value without SSA operands.
+       (replace_exp, cprop_operand, cprop_into_stmt):  Use new operand types.
+       (cprop_into_successor_phis):  Use new operand types.
+       * tree-ssa-dom.c (thread_across_edge):  Use new operand types.
+       (eliminate_redundant_computations):  Use new operand types.
+       * tree-ssa-dse.c (fix_phi_uses):  Use new operand_types.
+       (fix_stmt_v_may_defs):  Use new operand_types.
+       * tree-ssa-live.c (create_ssa_var_map):  Use new operand_types.
+       (build_tree_conflict_graph):  Use new operand_types.
+       * tree-ssa-loop.c (duplicate_blocks):  Use PHI_ARG_DEF_FROM_EDGE.
+       * tree-ssa-operands.c (struct freelist_d):  Remove.
+       (check_optype_freelist, add_optype_freelist):  Remove.
+       (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
+       allocate_vuse_optype, allocate_v_must_def_optype):  Call ggc_alloc.
+       (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
+       Call ggc_free instead of add_optype_freelist.
+       (init_ssa_operands, fini_ssa_operands):  Remove free list code.
+       (finalize_ssa_defs, finalize_ssa_uses):  Set new use/def operands.
+       * 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,
+       V_MUST_DEF_OP):  Use new pointer type instead of dereferencing directly.
+       (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,
+       SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands.
+       (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT):  Macros to manage the
+       PHI result as an operand.
+       (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE,
+       PHI_ARG_DEF_PTR_FROM_EDGE):  Macros to manage the PHI arguments.
+       * tree-ssa-pre.c (eliminate):  Call propagate_tree_value.
+       * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis):  Use
+       PHI_ARG_DEF_FROM_EDGE.
+       * tree.h (PHI_RESULT):  Renamed to PHI_RESULT_TREE.
+       (PHI_ARG_DEF):  Renamed to PHI_ARG_DEF_TREE.
+
+2004-06-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR tree-optimization/15991
+       * tree-cfg.c (tree_block_label): Export.
+       * tree-flow-inline.h (bsi_after_labels): New function.
+       * tree-flow.h (bsi_after_labels, tree_block_label): Declare.
+       * tree-ssa.c (propagate_into_addr): New function.
+       (replace_immediate_uses): Handle propagation of pointer constants.
+       (raise_value): Do not restrict propagation of pointer constants.
+       * tree-ssanames.c (duplicate_ssa_name): New function.
+       * 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>
+
+       Bug 14610
+       * Makefile.in (min-insn-modes.o): Correct dependencies.
+       * real.c (encode_ieee_extended, decode_ieee_extended): Always
+       produce/consume 12-byte little-endian Intel format.
+       (encode_ieee_extended_128, decode_ieee_extended_128): Delete.
+       (encode_ieee_extended_motorola, decode_ieee_extended_motorola)
+       (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96)
+       (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128):
+       New functions which convert between 12-byte little-endian Intel
+       format and the desired format.
+       (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format)
+       (ieee_extended_intel_96_format, ieee_extended_intel_128_format):
+       Update.
+
+2004-06-17  Zack Weinberg  <zack@codesourcery.com>
+
+       * expmed.c (expand_mult_const): In sanity check, compare only
+       the bits of val and val_so_far that are significant in the
+       result mode.
+
+2004-06-17  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-pre.c:  Update comments.
+       (val_expr_pair_eq): Factor code from here.
+       (expr_pred_trans_eq): and here.
+       (expressions_equal_p): To here.
+       (print_value_set): Print value for expression.
+       (phi_trans_lookup): Rename some variables.
+       (lookup): Ditto.
+       (value_exists_in_set_bitmap): Ditto.
+       (value_remove_from_set_bitmap): Ditto.
+       (value_insert_into_set_bitmap): Ditto.
+
+2004-06-17  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390-modes.def (CCL3mode): New machine mode.
+       * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode.
+       (s390_alc_comparison, s390_slb_comparison): Likewise.
+       (s390_branch_condition_mask): Likewise.
+       * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New.
+       ("*subsi3_cc2", "*subsi3_cconly2"): New.
+
+       * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and
+       ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison.
+       * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison):
+       Handle SIGN_EXTEND and ZERO_EXTEND.
+
+       * config/s390/s390-protos.h (s390_expand_addcc): New prototype.
+       * config/s390/s390.c (s390_expand_addcc): New function.
+       * config/s390/s390.md ("adddicc", "addsicc"): New expanders.
+       ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns.
+       ("sltu", "sgtu", "sleu", "sgeu"): New expanders.
+
+2004-06-17  Ben Elliston  <bje@au.ibm.com>
+
+       * tree-alias-common.c: Add whitespace.
+       * tree-inline.c: Correct comment about this file's purpose.
+       * tree-optimize.c: Likewise.
+       * tree-tailcall.c: Likewise.
+
+       * tree-alias-ander.h: Add standard top-of-file comment.
+       * tree-alias-common.h: Likewise.
+       * tree-alias-type.h: Likewise.
+
+2004-06-16  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-pre.c (compute_avail): Value number uses as well.
+       Strip useless type conversions.
+       Casts have to be treated slightly different than normal unaries.
+
+2004-06-16  Richard Henderson  <rth@redhat.com>
+
+       * c-common.def (COMPOUND_STMT): Remove.
+       * c-common.c (finish_fname_decls): Don't look through it.
+       * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
+       * c-common.h (COMPOUND_BODY): Remove.
+       (c_common_stmt_codes): Remove COMPOUND_STMT.
+       * c-dump.c (c_dump_tree): Likewise.
+       * c-gimplify.c (c_gimplify_stmt): Likewise.
+       * c-pretty-print.c (pp_c_statement): Likewise.
+       * tree.h (DECL_SAVED_TREE): Update commentary.
+       * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT.
+       (CASE_LABEL_EXPR): Rename from CASE_LABEL.
+       (GOTO_EXPR): Rename from GOTO_STMT.
+       (GOTO_FAKE_P): Remove.
+       (COMPOUND_STMT): Remove.
+       (HANDLER): Update wrt COMPOUND_STMT.
+       (STMT_EXPR): Likewise.
+       (LABEL_EXPR): Rename from LABEL_STMT.
+       (SCOPE_STMT): Remove.
+       * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look
+       through COMPOUND_STMT.
+
+2004-06-16  Richard Henderson  <rth@redhat.com>
+
+       * c-common.h (c_begin_if_stmt, c_begin_while_stmt,
+       c_finish_while_stmt_cond): Remove decls.
+       * c-parse.in (if_prefix): Don't save c_begin_if_stmt result.
+       * c-typeck.c (c_begin_if_stmt): Return void.
+       (c_begin_else): Tidy.  Save stmt_count.
+       * c-tree.h (c_begin_if_stmt): Update decl.
+
+       * objc/objc-act.c (objc_build_try_enter_fragment,
+       objc_build_extract_fragment, objc_build_try_epilogue,
+       objc_build_catch_stmt, objc_build_catch_epilogue,
+       objc_build_finally_prologue, objc_build_finally_epilogue): Update
+       for if builder function changes.
+
+2004-06-16  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (struct machine_function):  New member
+       last_restore_gpr.
+       (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters.
+       Do not modify machine->save_return_addr_p or regs_ever_live.
+       Fill in machine->last_restore_gpr.
+       (s390_optimize_prolog): Use s390_frame_info to compute registers
+       to save/restore, remove duplicated code.
+       (s390_arg_frame_offset): Use s390_frame_info to compute frame
+       size, remove duplicated code.
+       (s390_emit_prologue): Adapt s390_frame_info call.  Update
+       machine->save_return_addr_p and regs_ever_live.
+       (s390_emit_epilogue): Use machine->last_restore_gpr instead of
+       machine->last_save_gpr.
+
+2004-06-16  Richard Henderson  <rth@redhat.com>
+
+       * c-parse.in (if_stmt_locus): Remove.
+       (if_prefix): Increment stmt_count; pass it to c_finish_if_cond.
+       (select_or_iter_stmt): Move empty if warnings to c-typeck.c.
+       * c-typeck.c (if_elt): Sort by expected size.  Rename locus to
+       empty_locus.  Add stmt_count, saw_else.
+       (c_begin_if_stmt): Push if_stack here.
+       (c_finish_if_cond): Rename from c_expand_end_cond.  Record stmt_count.
+       (c_finish_then, c_finish_else): Record empty_locus.
+       (c_begin_else): Rename from c_expand_start_else.  Record stmt_count.
+       (c_finish_if_stmt): Rename from c_expand_end_cond.  Warn for empty
+       if or else body.
+       * c-tree.h: Update prototypes.
+
+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
 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.
+       * loop.c (loop_givs_reduce): Avoid miscompilation of
+       loops entered at bottom.
 
 2004-06-16  J"orn Rennecke <joern.rennecke@superh.com>
 
        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.
        * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
        movsi,movhi,movqi insn patterns.
 
-2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
+2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
 
        * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
 
        * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
        * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
 
-2003-03-12  Andrew Pinski  <apinski@apple.com>
+2004-03-12  Andrew Pinski  <apinski@apple.com>
 
        * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
        Use ret instead of result. Use addr instead of base.
        (ASM_LONGDOUBLE): Likewise.
        * config/sparc/pbd.h (ASM_INT_OP): Delete.
 
-2003-03-03  Richard Henderson  <rth@redhat.com>
+2004-03-03  Richard Henderson  <rth@redhat.com>
 
        PR opt/13862
        * cselib.c (cselib_record_sets): Don't record multiple sets in
        quals, just return it.
        * tree.h: Declare it.
 
-2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
+2004-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
 
        * target-def.h (TARGET_SCHED_INIT_GLOBAL,
        TARGET_SCHED_FINISH_GLOBAL): New macros.
        (-fno-const-strings): Don't mention -fwritable-strings.
        * doc/trouble.texi: Don't mention -fwritable-strings.
 
-2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
+2004-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
 
        * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
 
        expressions's address over BIGGEST_ALIGNMENT in bytes, not
        in bits.
 
-2003-02-18  Matt Austern  <austern@apple.com>
+2004-02-18  Matt Austern  <austern@apple.com>
 
        * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
        LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
        * configure.ac: Disable __cxa_atexit if not supported.
        * configure: Regenerate.
 
-2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
+2004-01-30  Daniel Berlin  <dberlin@dberlin.org>
 
        * ggc-zone.c (ggc_free): New function.
 
        * cfghooks.c (split_block): Set probability and count of the
        new edge.
 
-2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
+2004-01-29  Josef Zlomek  <zlomekj@suse.cz>
 
        * dwarf2out.c (struct die_struct): Added field decl_id.
        (decl_die_table): Changed to hash table.
 
        * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
 
-2003-04-25  Chris Demetriou  <cgd@broadcom.com>
+2004-01-25  Chris Demetriou  <cgd@broadcom.com>
 
        * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
        and MIPS64 have HI/LO interlocks.  Update comment.
        introduced by 2004-01-20's Jan Hubicka's copy_insn change.
        (sh_handle_sp_switch_attribute): Remove warning.
 
-2003-11-30  Jan Hubicka  <jh@suse.cz>
+2004-01-23  Jan Hubicka  <jh@suse.cz>
 
        * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.