+2004-07-28 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/frv/frv.h (EPILOGUE_USES): New. Use LR.
+
+2004-07-28 Richard Sandiford <rsandifo@redhat.com>
+
+ * cse.c (validate_canon_reg): New function, split out from...
+ (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'.
+
+2004-07-28 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-alias.c (maybe_create_global_var): Don't just
+ return if .GLOBAL_VAR has been created.
+
+2004-07-28 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa.c (verify_flow_insensitive_alias_info): Process
+ every variable that may have aliases, not just tags.
+
+2004-07-28 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
+ move_from_CR_eq_bit.
+ Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
+
+
+ * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
+ e500_flip_eq_bit.
+
+ * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
+ output_e500_flip_eq_bit.
+
+ * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to
+ output_e500_flip_eq_bit.
+ (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to
+ output_e500_flip_eq_bit.
+ Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit.
+ (print_operand): case D. Get to EQ bit.
+
+2004-07-28 Richard Sandiford <rsandifo@redhat.com>
+
+ * gcov.c (function_summary): Add missing \n.
+
+2004-07-28 Alexandre Oliva <aoliva@redhat.com>
+
+ Introduce sh4a support.
+ * config.gcc: Handle sh4a multilibs and cpu selection.
+ * config/sh/sh.h: Likewise. Handle sh4a command line flags.
+ * config/sh/t-mlib-sh4a: New.
+ * config/sh/t-mlib-sh4al: New.
+ * config/sh/t-mlib-sh4a-nofpu: New.
+ * config/sh/t-mlib-sh4a-single: New.
+ * config/sh/t-mlib-sh4a-single-only: New.
+ 2004-02-20 DJ Delorie <dj@redhat.com>
+ * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua".
+ * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support.
+ 2003-08-22 Eric Christopher <echristo@redhat.com>
+ * config/sh/sh4a.md: Update for chip errata.
+ 2003-08-07 Eric Christopher <echristo@redhat.com>
+ * config/sh/sh4a.md: New file. sh4a processor description.
+ 2003-07-08 Alexandre Oliva <aoliva@redhat.com>
+ * config/sh/sh.h (TARGET_SWITCHES): Added 4al. Adjust description
+ of -m4a-nofpu.
+ (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu.
+ * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu.
+ * doc/invoke.texi (SH Options): Document -m4al.
+ 2003-07-03 Alexandre Oliva <aoliva@redhat.com>
+ * config/sh/sh.c (expand_block_move): Remove commented-out code
+ checked in by mistake.
+ (sh_cannot_change_mode_class): Enable SUBREGs to be used to select
+ single elements from SFmode vectors.
+ * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output
+ register.
+ (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER.
+ 2003-07-01 Alexandre Oliva <aoliva@redhat.com>
+ * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int,
+ sh_fsca_int2sf): Remove variable declarations.
+ * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
+ sh_fsca_int2sf): New functions.
+ (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx,
+ sh_fsca_int2sf_rtx): New static variables.
+ * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int,
+ sh_fsca_int2sf): Declare.
+ * config/sh/sh.md: Adjust.
+ * doc/invoke.texi (SH Options): Document new options.
+ * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward
+ compatibility from SH4 code.
+ 2003-06-27 Alexandre Oliva <aoliva@redhat.com>
+ * config/sh/sh.c (expand_block_move): Don't emit POST_INC too
+ early.
+ (memory_movsrc_operand): Renamed to...
+ (unaligned_load_operand): ... this. Simplified.
+ * config/sh/sh.h (PREDICATE_CODES): Adjust.
+ * config/sh/sh.md (movua, extv, extzv): Likewise. Change movua's
+ input operand to SImode, and adjust the others. Introduce
+ post-increment by peephole.
+ * config/sh/sh.c (expand_block_move): Give the target address the
+ same mode as the temp reg.
+ * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned
+ copying.
+ 2003-06-26 Alexandre Oliva <aoliva@redhat.com>
+ Introduce support for SH4a.
+ * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if
+ __SH4A__. Emit 4 4kb blocks and touch all of them otherwise.
+ * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int,
+ sh_fsca_int2sf): New.
+ (sh_init_builtins): Initialize them.
+ (print_operand): Support `d'.
+ (expand_block_move): Use movua if src is misaligned.
+ (memory_movsrc_operand): New.
+ * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__
+ and one of the SH4 macros.
+ (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP,
+ SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A,
+ SELECT_SH4A_SINGLE): New.
+ (TARGET_NONE): Add SH4A_BIT.
+ (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a.
+ (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu.
+ (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare.
+ (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate.
+ (enum processor_type): Added PROCESSOR_SH4A.
+ (PREDICATE_CODES): Add memory_movsrc_operand.
+ * config/sh/sh.md: Removed unused variables.
+ (attr cpu): Add sh4a.
+ (attr type): Add movua, fsrra and fsca.
+ (prefetch): New, for SH4.
+ (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi.
+ (toggle_sz): Set type to fp.
+ (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New.
+ (movua, extv, extzv): New.
+ * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single
+ and 4a-single-only.
+
+2004-07-28 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-optimize.c (init_tree_optimization_passes): Schedule
+ pass_may_alias right after the program is renamed into SSA.
+ * tree-pass.h (PROP_alias): Define.
+ * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias.
+ * tree-sra.c (pass_sra): Likewise.
+ * tree-ssa-ccp.c (pass_ccp): Likewise.
+ * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise.
+ * tree-ssa-dce.c (pass_dce): Likewise.
+ * tree-ssa-dom.c (pass_dominator): Likewise.
+ * tree-ssa-dse.c (pass_dse): Likewise.
+ * tree-ssa-forwprop.c (pass_forwprop): Likewise.
+ * tree-ssa-loop-ch.c (pass_ch): Likewise.
+ * tree-ssa-phiopt.c (pass_phiopt): Likewise.
+ * tree-ssa-pre.c (pass_pre): Likewise.
+ * tree-tailcall.c (pass_tail_recursion): Likewise.
+ * tree-ssa.c (pass_redundant_phi): Likewise.
+ * tree-ssa-alias.c (aliases_computed_p): Remove.
+ Update all users.
+ (init_alias_info): Do not mark all type tags for renaming
+ unconditionally.
+ Clear may_aliases from every symbol.
+ (setup_pointers_and_addressables): If a pointer has not been
+ dereferenced and it had a type tag, clear it and mark the old
+ tag for renaming.
+
+2004-07-28 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/16705
+ * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on
+ .GLOBAL_VAR.
+
+2004-07-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error
+ check.
+
+ * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR,
+ don't make another one.
+
+ PR optimization/15077
+ * function.h (struct function): Add field saved_static_chain_decl.
+ Fix comment for static_chain_decl.
+ * tree-inline.c (save_body): Add new arg and handle static_chain_decl.
+ * tree-inline.h (save_body): Add new arg.
+ * tree-optimize.c (tree_rest_of_compilation): Handle saving
+ static_chain_decl.
+
+2004-07-27 Richard Henderson <rth@redhat.com>
+
+ * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove.
+ (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use
+ is_gimple_addressable.
+ * tree-gimple.c (is_gimple_addressable): Rename from
+ is_gimple_addr_expr_arg; accept INDIRECT_REF.
+ (is_gimple_lvalue): Don't test INDIRECT_REF directly.
+ * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for
+ rename to is_gimple_addressable.
+
+2004-07-28 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards.
+
+2004-07-27 Richard Henderson <rth@redhat.com>
+
+ * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT
+ before rounding.
+
+2004-07-27 Zack Weinberg <zack@codesourcery.com>
+
+ * libgcc2.c: Change all conditionals testing
+ LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
+ * libgcc2.h: Likewise.
+ * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
+ TYPE_PRECISION of float80_type to 80.
+ * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
+ of fpreg_type and float80_type to 80.
+ * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
+ * config/m68k/netbsd-elf.h:
+ Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
+ to evaluate to 80 whenever they would formerly have evaluated to 96.
+ * config/i386/sco5.h: Remove unnecessary redefinition of
+ LONG_DOUBLE_TYPE_SIZE.
+ * doc/rtl.texi: Clarify uses of XFmode and TFmode.
+ * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
+ XFmode, with a bitsize of 80. Update commentary.
+ * config/ia64/ia64-modes.def: Likewise.
+ * config/m68k/m68k-modes.def: Likewise.
+
+2004-07-27 Steven Bosscher <stevenb@suse.de>
+
+ * cfgexpand.c (tree_expand_cfg): Fix comment.
+
+ * calls.c (expand_call): Ignore rtx_equal_function_value_matters.
+ * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets):
+ Remove.
+ (prepare_function_start): Don't set rtx_equal_function_value_matters.
+ * integrate.c (copy_rtx_and_substitute): Don't test for it.
+ * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets.
+ Don't set rtx_equal_function_value_matters. Don't register RTL hooks
+ here again. Update leading comment.
+ * rtl.c (rtx_equal_function_value_matters): Remove.
+ (rtx_equal_p): Don't test for it.
+ * simplify-rtx.c (simplify_binary_operation, simplify_subreg):
+ Likewise.
+
+ * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND.
+ * rtl.c (note_insn_name): Likewise.
+ * emit-rtl.c (remove_unnecessary_notes): Don't handle it.
+ * final.c (final_scan_insn): Likewise.
+
+ * except.c (finish_eh_generation): Don't call cfg_cleanup from here.
+ * passes.c (rest_of_handle_eh): Do it here.
+
+ * stmt.c (struct nesting): Remove struct nesting block member.
+ (struct stmt_status): Remove x_block_start_count field.
+ (current_block_start_count): Remove.
+
+2004-07-27 Brian Booth <bbooth@redhat.com>
+
+ * tree-optimize.c (register_one_dump_file): Update condition that uses
+ static_pass_number.
+ (dup_pass_1): Replace with...
+ (next_pass_1): This.
+ (NEXT_PASS): Call next_pass_1.
+ (DUP_PASS): Remove.
+ (init_tree_optimization_passes): Remove uses of DUP_PASS.
+ (execute_one_pass): Update condition that uses
+ static_pass_number.
+ * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed
+ integer.
+
+2004-07-27 Nick Clifton <nickc@redhat.com>
+
+ * config/m32r/m32r.c: Include integrate.h in order to get the
+ prototype for get_hard_reg_initial_val().
+
+ * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r"
+ and tidy up indentation.
+ (final_presence_set): Use absence_set instead, so that if there is
+ nothing in the "o" pipe the "s" pipe can be scheduled.
+
+2004-07-27 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-alias.c (create_name_tags): Ignore pointers that
+ don't have PT_VARS nor PT_MALLOC set.
+ Clear name tag from pointers that have not been dereferenced.
+ (set_pt_anything, set_pt_malloc): Forward declare.
+ * tree-ssa-copy.c (may_propagate_copy): Compare alias sets,
+ not type compatibility when determining if a pointer can be
+ copy propagated.
+
+2004-07-27 Richard Sandiford <rsandifo@redhat.com>
+
+ * expr.h (canonicalize_condition, get_condition): Add an int argument.
+ * gcse.c (fis_get_condition): Reimplement using get_condition, leaving
+ it to check whether the condition is still valid at the jump insn.
+ * ifcvt.c (noce_get_condition): Likewise.
+ (noce_get_alt_condition): Update call to canonicalize_condition.
+ * loop-iv.c (simplify_using_initial_values): Update call to
+ get_condition. Remove FIXME.
+ (check_simple_exit): Update call to get_condition.
+ * loop-unswitch.c (may_unswitch_on): Likewise.
+ * loop.c (check_dbra_loop): Likewise.
+ (canonicalize_condition, get_condition): Add an argument to say whether
+ the condition must still be valid at INSN.
+ (get_condition_for_loop): Update call to get_condition. Require that
+ the condition be valid at INSN.
+ * predict.c (estimate_probability): Update call to get_condition.
+ Remove unused earliest parameter.
+ (expected_value_to_br_prob): Update call to canonicalize_condition.
+
+2004-07-26 Eric Christopher <echristo@redhat.com>
+
+ * tree-dfa.c (add_referenced_var): Register initializers of global
+ variables.
+
+2004-07-26 Paolo Bonzini <bonzini@gnu.org>
+
+ * config/i386/i386.c (function_arg): Always treat 8-
+ and 16-byte wide vectors the same, even if MMX/SSE
+ are disabled.
+ (contains_128bit_aligned_vector_p): Add comment.
+
+2004-07-26 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * ra.h (enum node_type): Rename to:
+ (enum ra_node_type).
+ * ra-colorize.c: Likewise.
+
+2004-07-26 Richard Sandiford <rsandifo@redhat.com>
+
+ * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag
+ after simplifying the jump.
+
+2004-06-26 Richard Henderson <rth@redhat.com>
+
+ * calls.c (combine_pending_stack_adjustment_and_call): Make
+ preferred_unit_stack_boundary argument unsigned. Make
+ unadjusted_alignment unsigned.
+ (expand_call): Make preferred_stack_boundary and
+ preferred_unit_stack_boundary variables unsigned.
+ * function.c (assign_stack_local_1): Make alignment unsigned.
+ * function.h (struct function): Make stack_alignment_needed,
+ preferred_stack_boundary unsigned.
+ * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned.
+ (ix86_compute_frame_layout): Make stack_alignment_needed,
+ preferred_alignment variables unsigned.
+ * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned.
+
+2004-07-26 Tom Tromey <tromey@redhat.com>
+
+ * tree.h: Fix typo in comment.
+
+2004-07-26 Daniel Jacobowitz <dan@debian.org>
+
+ PR bootstrap/12804
+ * ggc-zone.c (struct alloc_chunk): Remove attribute packed.
+ (MAX_FREE_BIN_SIZE): Increase on 64-bit targets.
+ (ggc_free): Remove incorrect freeing.
+ (sweep_pages): Advance PP for large pages. Fix indentation.
+
+2004-07-26 Richard Sandiford <rsandifo@redhat.com>
+
+ PR rtl-optimization/16643
+ * cfglayout.h (cfg_layout_initialize): Add a flags parameter.
+ * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg.
+ * basic-block.h (reorder_basic_blocks): Add a flags parameter.
+ * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize.
+ (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize.
+ * function.c (thread_prologue_and_epilogue_insns): Likewise.
+ * rtl.h (tracer): Add a flags parameter.
+ * tracer.c (tracer): Pass it to cfg_layout_initialise.
+ * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks.
+ (rest_of_handle_reorder_blocks): Update calls to tracer and
+ reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate.
+ (rest_of_handle_tracer): Pass 0 to tracer.
+ (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize.
+
+2004-07-25 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/16239
+ * config/rs6000/rs6000.md (movdi_internal64): Further disparage
+ f->f.
+
+2004-07-24 Nathan Sidwell <nathan@codesourcery.com>
+
+ * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree).
+ (BINFO_BASE_ACCESS): Adjust.
+ (BINFO_BASE_ACCESS_APPEND): New.
+ (struct tree_binfo): Make base_accesses a VEC(tree) pointer.
+ * dbxout.c (dbxout_type): Adjust binfo access accessing.
+ * dwarf2out.c (gen_member_die): Likewise.
+ * tree-dump.c (deque_and_dump): Likewise.
+
+2004-07-26 Falk Hueffner <falk@debian.org>
+
+ * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div
+ costs.
+
+2004-07-25 Roger Sayle <roger@eyesopen.com>
+
+ * config/i386/i386.c (output_fp_compare): Use ffreep to pop top
+ value off of the stack if TARGET_USE_FFREEP.
+
+2004-07-26 Bernardo Innocenti <bernie@develer.com>
+
+ * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC ().
+ * gengtype-yacc.y: Likewise. Replace free() with XDELETE ().
+ * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer
+ check on invocation of XRESIZEVEC ().
+
+2004-07-26 Bernardo Innocenti <bernie@develer.com>
+
+ * c-common.c (disable_builtin_function): Rename variable n to
+ new_disabled_builtin.
+ * c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
+ Rename local variable old to old_decl.
+ * gensupport.c (shift_output_template): Rename parameter old to src.
+ * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
+ old_rtx and newx to new_rtx.
+
+2004-07-26 Bernardo Innocenti <bernie@develer.com>
+
+ * Makefile.in (C_PRAGMA_H): New variable to track dependencies
+ of c-pragma.h.
+ * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to
+ enum cpp_ttype.
+ * c-lex.c: Likewise.
+
+2004-07-25 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (constant_boolean_node): Make extern.
+ (make_range): Wrap long lines.
+ (fold_cond_expr_with_comparison): Remove unnecessary call to
+ pedantic_non_lvalue. Add missing calls to fold_convert.
+ (fold_truthop): Add missing calls to fold_convert.
+ (fold): Likewise.
+ * tree.h (constant_boolean_node): Add prototype here.
+ * builtins.c (expand_builtin_strncmp): Add missing calls to
+ fold_convert.
+ * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
+ Call fold_convert and constant_boolean_node to correct types.
+ * tree-ssa-forwprop.c (substitute_single_use_vars): Add
+ missing call to fold_convert to correct types.
+
+2004-07-26 Niall Douglas <s_fsfeurope2@nedprod.com>
+ Brian Ryner <bryner@brianryner.com>
+
+ PR c++/9283
+ PR c++/15000
+ * c-common.c (c_common_attribute_table): Allow
+ handle_visibility_attribute to be called for types.
+ (handle_visibility_attribute) When given a type, set the visibility
+ bits on the TYPE_NAME. When given a decl, don't set no_add_attrs
+ so that we can check later whether the attribute was present. Added
+ warning if attribute applied to non class type.
+ * c-decl.c (diagnose_mismatched_decls): Updated rules for merging
+ decls and checking that they are consistent.
+ * common.opt: Added -fvisibility.
+ * c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
+ * c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
+ * flags.h, tree.h: Added assorted support defines for overall patch
+ * opts.c: Added parsing support for -fvisibility.
+ * tree.c (build_decl): Set visibility for all decls to be whatever
+ is in force at that time.
+ * varasm.c (default_binds_local_p_1): Reworked logic determining
+ when to make a symbol locally bound.
+ * doc/invoke.texi: Added documentation for -fvisibility and
+ -fvisibility-inlines-hidden.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
+ * c-common.c: Add missing casts from void * to other types.
+ * c-decl.c: Likewise.
+ * c-format.c: Likewise.
+ * c-lex.c: Likewise.
+ * c-pragma.c: Likewise.
+ * c-typeck.c: Likewise.
+ * defaults.h: Likewise.
+ * genconstants.c: Likewise.
+ * gengtype-lex.l: Likewise.
+ * genmodes.c: Likewise.
+ * read-rtl.c: Likewise.
+ * rtl.c: Likewise.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * bitmap.c: Use type-safe memory allocation macros from libiberty.
+ * c-common.c: Likewise.
+ * c-decl.c: Likewise.
+ * c-lang.c: Likewise.
+ * c-lex.c: Likewise.
+ * c-opts.c: Likewise.
+ * c-parse.in: Likewise.
+ * c-typeck.c: Likewise.
+ * genconditions.c: Likewise.
+ * gengtype-lex.l: Likewise.
+ * gengtype-yacc.y: Likewise.
+ * gengtype.c: Likewise.
+ * genmodes.c: Likewise.
+ * gensupport.c: Likewise.
+ * read-rtl.c: Likewise.
+ * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
+ htab_find_slot().
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * c-decl.c (groktypename, groktypename_in_param_context): Rename
+ variable typename to type_name.
+ * c-lex.c (interpret_float): Likewise.
+
+2004-07-25 Roger Sayle <roger@eyesopen.com>
+
+ * convert.c (convert_to_real, convert_to_integer,
+ convert_to_complex): Replace calls to build with calls to buildN.
+ * coverage.c (tree_coverage_counter_ref): Likewise.
+ * dojump.c (do_jump): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree): Likewise.
+ * emit-rtl.c (component_ref_for_mem_expr,
+ set_mem_attributes_minus_bitpos): Likewise.
+ * explow.c (update_nonlocal_goto_save_area): Likewise.
+ * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p,
+ expand_mult_add): Likewise.
+ * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall,
+ store_constructor, get_inner_reference, expand_expr_real_1,
+ try_casesi, try_tablejump): Likewise.
+ * function.c (expand_function_start): Likewise.
+ * stmt.c (emit_case_bit_tests, expand_end_case_type,
+ node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise.
+ * stor-layout.c (place_union_field, layout_type): Likewise.
+ * tree.c (substitute_in_expr, tree_fold_gcd): Likewise.
+ * varasm.c (copy_constant): Likewise.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * c-common.c: Rename all identifiers named `new'.
+ * c-decl.c: Likewise.
+ * gensupport.c: Likewise.
+ * simplify-rtx.c: Likewise.
+ * c-common.c (disable_builtin_function): Replace a call to xmalloc()
+ with XNEW().
+ * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc()
+ with XNEWVEC().
+
+2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ PR c/15360
+ * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
+ declarations until after calling pushdecl.
+ (grokdeclarator): Set DECL_EXTERNAL for variables based on use of
+ "extern" and not on whether the declaration is initialized.
+
+2004-07-25 Daniel Jacobowitz <dan@debian.org>
+
+ * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*)
+ (sparc-*-solaris2*): Include sol2.o and sol2-protos.h.
+ * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h",
+ "cpplib.h", "c-pragma.h", "c-common.h".
+ (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini)
+ (solaris_register_pragmas): New functions.
+ * config/sol2-protos.h: New file.
+ * config/sol2.c: New file.
+ * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE)
+ (REGISTER_TARGET_PRAGMAS): New macros.
+ (solaris_pending_aligns, solaris_pending_inits)
+ (solaris_pending_finis): New variables.
+ * config/t-sol2 (sol2-c.o): Update dependencies.
+ (sol2.o): New rule.
+ * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of
+ SUBTARGET_INSERT_ATTRIBUTES.
+ (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE.
+ * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
+ (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
+ * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
+ * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine.
+ * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES)
+ (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define.
+ * config/sparc/sparc.c (sparc_attribute_table): New.
+ (TARGET_INSERT_ATTRIBUTES): Define in terms of
+ SUBTARGET_INSERT_ATTRIBUTES.
+ (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE
+ is defined.
+ * doc/extend.texi (Solaris Pragmas): New section.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * c-common.c: Rename all identifiers named `class' to `cl'.
+ * c-common.h: Likewise.
+ * c-parse.in: Likewise.
+ * c-typeck.c: Likewise.
+ * genmodes.c: Likewise.
+ * real.c: Likewise.
+ * real.h: Likewise.
+ * recog.c: Likewise.
+ * recog.h: Likewise.
+ * regrename.c: Likewise.
+ * tree.h: Likewise.
+ * c-common.c (builtin_function_2): Change type of 5th parameter from
+ int to enum built_in_function. Change type of 8th parameter from int
+ to bool.
+ * c-decl (builtin_function): Replace call to ggc_alloc_cleared ()
+ with GGC_CNEW().
+ * c-typeck.c (convert_arguments): Change type of formal_prec from
+ int to unsigned int.
+ * genmodes.c (blank_mode): Make a few negative constants unsigned.
+ (complete_all_modes, calc_wider_mode, emit_insn_modes_h,
+ emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size,
+ emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner,
+ emit_mode_base_align, emit_class_narrowest_mode): Pass an integer
+ iterator to for_all_modes () instead of an enum because enums can't
+ be incremented in C++.
+
+
+2004-07-25 Daniel Jacobowitz <dan@debian.org>
+
+ * regmove.c (optimize_reg_copy_1): Don't try to replace call-used
+ hard registers.
+
+2004-07-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * tree-ssa-operands.c (get_stmt_operands, get_expr_operands):
+ Handle ARRAY_RANGE_REF like ARRAY_REF.
+
+2004-07-25 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * c-typeck.c (digest_init): Don't allow arrays of signed or
+ unsigned variants of wchar_t to be initialized by wide string
+ constants. Do allow arrays of enumerated types compatible with
+ wchar_t to be initialized by wide string constants. Refine tests
+ distinguishing wide and narrow strings and arrays. Give specific
+ error for arrays of other integer types initialized by string
+ constants.
+ (output_init_element, process_init_element): Check for
+ INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
+ initializing with string constants.
+
+2004-07-25 Richard Henderson <rth@redhat.com>
+
+ * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
+ on the RESULT_DECL.
+ * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
+ * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
+ DECL_IGNORED_P to new decl.
+
+2004-07-24 Zack Weinberg <zack@codesourcery.com>
+
+ * config/ia64/ia64.c (general_xfmode_operand)
+ (destination_xfmode_operand): Delete.
+ * config/ia64/ia64.h (PREDICATE_CODES): Remove them.
+ * config/ia64/ia64.md (*movxf_internal): Use general_operand
+ and destination_operand.
+
+2004-07-24 Alexander Kabaev <kan@freebsd.org>
+
+ * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing.
+ (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS.
+
+2004-07-24 Alexander Kabaev <kan@freebsd.org>
+ Zack Weinberg <zack@codesourcery.com
+
+ PR 16684
+ * c-decl.c (diagnose_mismatched_decls): Don't issue a
+ redundant-declaration warning the first time a builtin is
+ declared explicitly.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * tree.h (staticp): Change return type to bool.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * c-common.c (c_staticp): Last episode of the staticp saga.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * c-common.h (c_staticp): Change return type from int to bool.
+ * tree.c (staticp): Likewise.
+ * langhooks.h (staticp): Likewise.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * langhooks-def.h (lhd_staticp): Change return type from int to
+ bool in prototype to match definition.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * system.h (bool, true, false): Don't redefine as preprocessor macros
+ in C++.
+
+2004-07-24 Roger Sayle <roger@eyesopen.com>
+
+ * expmed.c (init_expmed): A signed modulus by a power of two is
+ considered cheap if its less than or equal to four instructions.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR,
+ GGC_CNEWVAR): New macros.
+
+2004-07-25 Bernardo Innocenti <bernie@develer.com>
+
+ * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter
+ lists.
+ * c-decl.c: Likewise.
+ * c-format.c: Likewise.
+ * c-lex.c: Likewise.
+ * c-opts.c: Likewise.
+ * c-pragma.c: Likewise.
+ * c-typeck.c: Likewise.
+ * gencheck.c: Likewise.
+ * genconditions.c: Likewise.
+ * genconfig.c: Likewise.
+ * genflags.c: Likewise.
+ * gengtype.c: Likewise.
+ * gensupport.c: Likewise.
+ * ggc-none.c: Likewise.
+ * langhooks.c: Likewise.
+ * statistics.h: Likewise.
+ * stub-objc.c: Likewise.
+ * java/decl.c: Likewise.
+
+2004-07-24 Roman Zippel <zippel@linux-m68k.org>
+
+ * config/m68k/m68k.c (output_scc_di): Fix coding style.
+ (symbolic_operand): Fix prototype.
+ * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
+ * config/m68k/m68k.md: Add constants for registers a0 and sp and
+ use them, change from the "{...}" syntax to the simpler {...}
+ syntax.
+ (*cfv4_extendqisi2): Fix destination predicate.
+ * config/m68k/m68k-protos.h: Remove various declarations also
+ generated via PREDICATE_CODES.
+
+2004-07-23 Mike Stump <mrs@apple.com>
+
+ * c-typeck.c (convert_for_assignment): Tightened up pointer
+ converstions that differ in signedness.
+
+2004-07-23 Zack Weinberg <zack@codesourcery.com>
+
+ * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED.
+
+2004-07-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'.
+ * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New.
+
+ * gimplify.c (gimplify_compound_lval): Check for no handled
+ operations, rather than checking for explicit list of nodes.
+ (is_gimple_addr_expr_arg_or_indirect): New function.
+ (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
+ redundant setting of TREE_INVARIANT.
+ (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
+ * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
+
+2004-07-23 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/16688
+ PR tree-optimization/16689
+ * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
+ unnecessary initialization of 'tag'.
+ (get_tmt_for): Check that the new type tag has the same alias
+ set as the pointed-to type.
+ (group_aliases): Only regular variables need to be removed
+ from the alias set of a name tag.
+ * tree-ssa-copy.c (may_propagate_copy): Do not allow copy
+ propagation if the two types are not compatible.
+ (merge_alias_info): Rename from replace_ssa_names_ann.
+ Add more checking.
+ (replace_exp_1): If both arguments are SSA_NAMEs, check that
+ the propagation can be done.
+ Only call merge_alias_info on pointers.
+ (propagate_value): Likewise.
+ * tree-ssa-copyrename.c: Include langhooks.h.
+ (copy_rename_partition_coalesce): Call replace_ssa_name_symbol
+ to do the merging.
+ Do not coalesce variables with incompatible types.
+ (rename_ssa_copies): Call replace_ssa_name_symbol.
+ * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has
+ the same type as the underlying _DECL.
+ * tree-ssanames.c (replace_ssa_name_symbol): New function.
+ * tree.h (replace_ssa_name_symbol): Declare.
+
+2004-07-23 Richard Henderson <rth@redhat.com>
+
+ PR c++/16277
+ * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval;
+ unshare it properly.
+ (gimplify_modify_expr_rhs): Push assignment from a conditional into
+ the conditional for all non-register types.
+
+2004-07-23 Richard Henderson <rth@redhat.com>
+
+ * expr.c (expand_expr_real_1): Don't handle non-local variables.
+ * expr.h (fix_lexical_addr): Remove.
+ * function.c (NEED_SEPARATE_AP): Remove.
+ (fix_lexical_addr): Remove.
+ * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC,
+ not null decl_function_context.
+ (create_alias_vars): Likewise.
+ * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels.
+ (simple_goto_p): Likewise.
+ * tree-dfa.c (add_referenced_var): Don't check for non-local variables.
+ * tree-ssa-ccp.c (get_default_value): Likewise.
+ * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
+ * tree.c (needs_to_live_in_memory): Likewise.
+ * tree-flow-inline.h (may_be_aliased): Move...
+ * tree-ssa-alias.c (may_be_aliased): ... here. Enhance check for
+ when TREE_STATIC variables may be addressable.
+
+2004-07-24 Jakub Jelinek <jakub@redhat.com>
+
+ * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp.
+
+2004-07-23 Zack Weinberg <zack@codesourcery.com>
+
+ * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print
+ bitmap contents if GENERATOR_FILE is defined.
+ * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o.
+ ($(BUILD_PREFIX_1)bitmap.o): Delete rule.
+
+2004-07-23 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * c-decl.c (start_function): Form composite type of function types
+ rather than copying type from previous prototype declaration.
+
+2004-07-23 Janis Johnson <janis187@us.ibm.com>
+
+ * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove
+ the const qualifier for the second argument in the C++ functions.
+
+ * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use
+ specific pointer types.
+
+ * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm,
+ vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used
+ for vector bool and/or vector pixel, add C++ and C missing support.
+ (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh,
+ vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh,
+ vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum,
+ vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws,
+ vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add
+ missing C++ and C support for vector bool and/or vector pixel.
+ (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw,
+ vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw,
+ vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw,
+ vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub,
+ vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix
+ C++ and C types used for vector bool and/or vector pixel.
+ (vec_st, vec_stl): Add C++ support for vector pixel.
+ (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool.
+ (vec_all_ne): Add C++ support for vector pixel.
+
+ * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name.
+ (vec_vmulesb): Add missing C++ function.
+ (vec_perm): Fix type of third argument in C++ function.
+ (vec_vsum4shs): Fix C++ function name.
+ (vec_any_ge): Remove C++ functions for unsupported arg combinations.
+ (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the
+ argument passed to the error handler in C macro.
+ (vec_nmsub): Remove extra parens around argument names in C macro.
+ (vec_packpx): Add missing parens in C macro.
+
+2004-07-22 Paolo Bonzini <bonzini@gnu.org>
+
+ * machmode.def: Remove vector modes.
+ * config/alpha/alpha-modes.def: Add supported vector modes.
+ * config/arm/arm-modes.def: Likewise.
+ * config/frv/frv-modes.def: Likewise.
+ * config/i386/i386-modes.def: Likewise.
+ * config/rs6000/rs6000-modes.def: Likewise.
+ * config/sh/sh-modes.def: Likewise.
+
+2004-07-23 Matthias Klose <doko@debian.org>
+
+ * intl.c (gcc_init_libintl): Use PACKAGE for the text domain.
+ * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE.
+ * config.h: Regenerate.
+ * configure: Likewise.
+
+2004-07-22 Mark Mitchell <mark@codesourcery.com>
+
+ * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on
+ generated SYMBOL_REFs for labels.
+ * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr):
+ Change prototype.
+ (machopic_stub_name): Remove.
+ (machopic_indirection_name): New function.
+ (machopic_mcount_stub_name): Likewise.
+ (machopic_classify_name): Remove.
+ (machopic_function_base_sym): New function.
+ (machpoic_classify_symbol): Likewise.
+ (machopic_classify_ident): Remove.
+ (machopic_define_ident): Likewise.
+ (machopic_define_name): Likewise.
+ (machopic_name_defined_p): Likewise.
+ (machopic_ident_defined_p): Likewise.
+ (darwin_strip_name_encoding): Likewise.
+ (machopic_define_symbol): New function.
+ * config/darwin.c (hashtab.h): Include.
+ (machopic_defined_list): Remove.
+ (machopic_classify_ident): Likewise.
+ (machopic_classify_name): Likewise.
+ (machopic_ident_defined_p): Likewise.
+ (machopic_define_ident): Likewise.
+ (machopic_define_name): Likewise.
+ (machopic_symbol_defined_p): New function.
+ (machopic_classify_symbol): Likewise.
+ (machopic_data_defined_p): Use machopic_classify_symbol.
+ (machopic_define_symbol): New function.
+ (machopic_function_base_sym): New function.
+ (machopic_non_lazy_pointers): Remove.
+ (machopic_non_lazy_ptr_name): Likewise.
+ (machopic_stubs): Likewise.
+ (machopic_stub_name): Likewise.
+ (NON_LAZY_POINTER_SUFFIX): New macro.
+ (STUB_SUFFIX): Likewise.
+ (machopic_indirection): New structure.
+ (machopic_indirections): New variable.
+ (machopic_indirection_hash): New function.
+ (machopic_indirection_eq): Likewise.
+ (machopic_indirection_name): Likewise.
+ (machopic_mcount_stub_name): New function.
+ (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use
+ hash table.
+ (machopic_indirect_data_reference): Rework to use new functions.
+ (machopic_indirect_call_target): Likewise.
+ (machopic_legitimize_pic_address): Likewise.
+ (machopic_output_indirection): New function.
+ (machopic_finish): Use it.
+ (machopic_operand_p): Rework to use new functions.
+ (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS.
+ (darwin_strip_name_encoding): Remove.
+ (update_non_lazy_ptrs): Remove.
+ (update_stubs): Likewise.
+ (darwin_non_lazy_pcrel): Use new functions.
+ * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise.
+ (ASM_OUTPUT_LABELREF): Likewise.
+ (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
+ (MACHO_SYMBOL_FLAG_VARIABLE): New macro.
+ (MACHO_SYMBOL_FLAG_DEFINED): Likewise.
+ (TARGET_STRIP_NAME_ENCODING): Do not use
+ darwin_strip_name_encoding.
+ (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use
+ darwin_strip_name_encoding.
+ * config/i386/darwin.h (FUNCTION_PROFILER): Use
+ machopic_mcount_stub_name.
+ * config/i386/i386.c (x86_output_mi_thunk): Use
+ machopic_indirection_name, not machopic_stub_name.
+ * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use
+ machopic_function_base_sym.
+ (print_operand): Use machopic_classify_symbol.
+ (rs6000_emit_prologue): Use machopic_function_base_sym.
+ (output_profile_hook): Do not use machopic_stub_name.
+ (macho_branch_isalnds): Do not use darwin_strip_name_encoding.
+
+2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ PR c/7284
+ * fold-const.c (extract_muldiv_1): Do not treat signed left shift
+ as multiplication.
+
+2004-07-22 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * doc/implement-c.texi: New file.
+ * doc/extend.texi (C Implementation): Move to there.
+ * doc/gcc.texi: Include implement-c.texi.
+ * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi.
+
+2004-07-22 Jason Merrill <jason@redhat.com>
+
+ * integrate.c (copy_decl_for_inlining): Remove invisible reference
+ handling.
+ * tree-inline.c (setup_one_parameter): Likewise.
+
+2004-07-22 Brian Booth <bbooth@redhat.com>
+
+ * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
+ (substitute_and_fold): Propigate into VUSE operands when possible.
+ (visit_phi_node): Handle UNKNOWN_VAL latticevalue.
+ (cp_lattice_meet): Handle merging of latticevalues when
+ UNKNOWN_VAL is present.
+ (visit_stmt): Visit assignments with V_MUST_DEFs.
+ (visit_assignment): Gather ccp information for V_MUST_DEF operands.
+ (ccp_fold): Deal with RHS' that are constant and virtual.
+ (evaluate_stmt): Handle UNKNOWN_VAL likely values.
+ (dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
+ (initialize): Mark statements with V_MUST_DEFs as VARYING only if the
+ V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
+ computing immediate uses.
+ (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
+ transition.
+ (replace_vuse_in): New function.
+ (likely_value): Add check of vuse operands.
+ (get_default_value): Set the default value of virtually defined
+ variables to UKNOWN_VAL instead of VARYING.
+
+2004-07-22 Richard Henderson <rth@redhat.com>
+
+ * expr.c (emit_push_insn): Don't use set_mem_attributes.
+
+2004-07-22 Richard Henderson <rth@redhat.com>
+
+ * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used
+ variables due to conditional compilation.
+
+2004-07-22 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-into-ssa.c (set_livein_block): Fix typo in comment.
+ (rewrite_ssa_into_ssa): Start iterating over SSA names at 1.
+ Release SSA names that have been re-renamed.
+ * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the
+ variable.
+ * tree-ssa-alias.c (init_alias_info): If aliases have been
+ computed before, clear existing alias information.
+ (create_name_tags): Do no fixup PT_ANYTHING pointers.
+ If the new name tag for a pointer is different than the one it
+ had before, mark the old tag for renaming.
+ (replace_may_alias): New function.
+ (group_aliases): Call it.
+ (setup_pointers_and_addressables): Always call get_tmt_for.
+ (maybe_create_global_var): Don't create .GLOBAL_VAR more than
+ once.
+ (set_pt_anything): New local function.
+ (set_pt_malloc): New local function.
+ (merge_pointed_to_info): Don't merge pointed-to variables from
+ the original pointer if the destination is pointing to an
+ unknown location.
+ (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc.
+ (add_pointed_to_var): Do not add a variable to the points-to
+ set if the pointer is already pointing to anywhere.
+ (collect_points_to_info_r): If the defining statement is a PHI
+ node, only merge pointed-to information if the argument has
+ already been visited.
+ (get_tmt_for): Only create a new tag if the pointer didn't
+ have one already.
+ (dump_alias_info): Emit more information.
+ (dump_points_to_info_for): Likewise.
+ * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't
+ try to get the annotation of an SSA_NAME.
+ * tree-ssa-operands.c (add_stmt_operand): Only check for empty
+ alias sets when checking is enabled.
+ * tree-ssa-pre.c (need_eh_cleanup): New local variable.
+ (eliminate): Mark basic blocks that will need
+ EH information cleaned up.
+ (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one
+ predecessor.
+ Initialize need_eh_cleanup.
+ (fini_pre): Call tree_purge_all_dead_eh_edges and
+ cleanup_tree_cfg if needed.
+ Free need_eh_cleanup.
+ * tree-ssa.c (verify_ssa_name): New function.
+ (verify_def): Call it.
+ Re-arrange to avoid printing too many error messages.
+ (verify_use): Likewise.
+ (verify_phi_args): Likewise.
+ (verify_flow_insensitive_alias_info): New function.
+ (verify_flow_sensitive_alias_info): New function.
+ (verify_alias_info): New function.
+ (verify_ssa): Call verify_alias_info.
+ Clear TREE_VISITED on all the SSA_NAMEs before scanning the
+ program.
+ Re-arrange to avoid printing too many error messages.
+ * tree-ssanames.c (make_ssa_name): Clear
+ SSA_NAME_IN_FREE_LIST.
+ (release_ssa_name): Never release a default definition.
+ (release_defs): New function.
+ * tree.h: Declare it.
+ * tree-ssa-dce.c (remove_dead_stmt): Call it.
+
+2004-07-22 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS.
+ If true, do a depth-first search. Do a breadht-first search,
+ otherwise.
+ (walk_use_def_chains): Add new argument IS_DFS.
+ Update all users.
+ * tree-flow.h (walk_use_def_chains): Update prototype.
+
+2004-07-22 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md: Tweak formatting.
+ (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi)
+ (mover2side, moverside, movemside, movei, op3, andu): Replace
+ live define_peephole:s with define_peephole2 near-equivalents.
+ Delete the rest.
+ ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all
+ word-size modes.
+ ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
+ Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and
+ "*mov_sidesi_mem" respectively.
+
+2004-07-22 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree-cfg.c (gimplify_val): Move from tree-complex.c.
+ (gimplify_build1): Move from tree-complex.c do_unop.
+ (gimplify_build2): Move from tree-complex.c do_binop.
+ (gimplify_build3): New.
+ * tree-complex.c (gimplify_val, do_unop, do_binop): Remove.
+ Adjust throughout to call the functions above.
+ * tree-flow.h: Declare the functions above.
+ * tree-nested.c (gimplify_val): Rename to...
+ (tsi_gimplify_val): ... this.
+
+ * Makefile.in (tree_complex.o): Update dependencies.
+ (stor-layout.o): Depend on regs.h.
+ * c-common.c (handle_vector_size_attribute): Update for
+ vector types without corresponding vector modes.
+ * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if
+ a corresponding vector mode is not available.
+ * print-tree.c (print_node): Print nunits for vector types
+ * regclass.c (have_regs_of_mode): New.
+ (init_reg_sets_1): Initialize it and use it instead
+ of allocatable_regs_of_mode.
+ * regs.h (have_regs_of_mode): Declare it.
+ * stor-layout.c (layout_type): Pick a mode for vector types.
+ * tree-complex.c (build_word_mode_vector_type, tree_vec_extract,
+ build_replicated_const, do_unop, do_binop, do_plus_minus,
+ do_negate, expand_vector_piecewise, expand_vector_parallel,
+ expand_vector_addition, expand_vector_operations_1,
+ expand_vector_operations, tree_lower_operations,
+ pass_lower_vector_ssa, pass_pre_expand): New.
+ (expand_complex_operations, pass_lower_complex): Remove.
+ * tree-optimize.c (init_tree_optimization_passes): Adjust
+ pass ordering for changes in tree-complex.c.
+ * tree-pass.h: Declare new passes.
+ * tree.c (finish_vector_type): Remove.
+ (make_vector_type): New.
+ (build_vector_type_for_mode, build_vector_type): Rewritten.
+ * tree.def (VECTOR_TYPE): Document where the number of
+ subparts is stored.
+ * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field.
+ (make_vector): Remove declaration.
+
2004-07-21 Richard Henderson <rth@redhat.com>
* gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE,