+2005-06-27 Diego Novillo <dnovillo@redhat.com>
+
+ PR 21959
+ * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
+ casts between unsigned and signed types with different size
+ or precision.
+
+2005-06-28 Jan Hubicka <jh@suse.cz>
+
+ * tree-optimize.c (exercute_free_datastructures):
+ Do not disband implicit edges; do not attempt to build insn list;
+ do not free cfg annotations.
+ (execute_free_cfg_annotations); Disband implicit edges here;
+ free cfg annotations here too.
+ (pass_free_cfg_annotations); New pass.
+ (init_tree_optimization_passes); Add pass_free_cfg_annotations.
+ * tree-ssa-operands.c (free_ssa_operands); Recover; export.
+ * tree-ssa-operands.h (free_ssa_operands); declare.
+ * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
+ kill PHI nodes.
+ * tree-ssanames.c (release_defs): Kill addresses_taken.
+
+ * basic-block.h (basic_block_def): Kill rbi.
+ (reorder_block_def): Kill; Remove next field (replaced by aux);
+ move other fields to ...
+ (rtl_bb_info): ... here.
+ * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
+ copy_bb, connect_traces, add_labels_and_missing_jumps
+ fix_up_fall_thru_edges, fix_crossing_conditional_branches,
+ duplicate_computed_gotos, partition_hot_cold_basic-blocks):
+ Update to new fields.
+ * cfg.c (initialize_bb_rbi): Kill.
+ * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
+ fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
+ * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
+ (try_redirect_by_replacing_jump): Update rbi references.
+ (cfg_layout_split_block): Likewise.
+ (cfg_layout_delete_block): Likewise.
+ (cfg_layout_merge_blocks): Likewise.
+ * function.c (thread_prologue_and_epilogue_insns): Likewise.
+ * passes.c (rest_of_handle_sms): Likewise.
+ * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
+
+2005-06-27 David Edelsohn <edelsohn@gnu.org>
+
+ * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
+ in verbose_asm output.
+ * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
+ CONFIG_PPC405CR.
+ * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
+ 405cr.
+
+2005-06-27 Jakub Jelinek <jakub@redhat.com>
+
+ * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
+ (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
+ (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
+ (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
+ ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
+ * builtins.c: Include tree-flow.h.
+ (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
+ (expand_builtin_object_size, expand_builtin_memory_chk,
+ maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
+ compute_object_offset, compute_builtin_object_size,
+ fold_builtin_object_size): New functions.
+ (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
+ (fold_builtin_1): Likewise. Handle BUILT_IN_{,V}{,F}PRINTF
+ and BUILT_IN_{,F}PRINTF_UNLOCKED.
+ (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
+ fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
+ fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
+ fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
+ New functions.
+ * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
+ BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
+ BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
+ BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
+ BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
+ BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
+ BUILT_IN_VPRINTF_CHK): New builtins.
+ * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
+ Document.
+ (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
+ BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
+ BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
+ BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
+ BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
+ BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
+ BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
+ * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
+ DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
+ * Makefile.in (OBJS-common): Add tree-object-size.o.
+ (tree-object-size.o): Add dependencies.
+ * tree-pass.h (pass_object_sizes): Add.
+ * tree-optimize.c (init_tree_optimization_passes): Add
+ pass_object_sizes.
+ * tree-object-size.c: New file.
+ * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
+ fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
+ compute_builtin_object_size, init_object_sizes, fini_object_sizes):
+ New prototypes.
+ * tree-ssa-ccp.c (get_strlen): Rename to ...
+ (get_maxval_strlen): ...this function. Handle also computing of maximum
+ string length and maximum integral value.
+ (ccp_fold_builtin): Handle BUILT_IN_*_CHK. Use get_maxval_strlen
+ instead of get_strlen. Pass CALLEE and ARGLIST variables to the
+ folding functions instead of computing them again.
+ (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
+ into some other builtin.
+ * doc/extend.texi (Object Size Checking): Document.
+
+ * regrename.c (copy_value): Fix comment.
+
+ * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
+ instead of preprocessor conditionals.
+
+ * targhooks.c (default_hidden_stack_protect_fail): Fall back to
+ default_external_stack_protect_fail if visibility is not supported
+ or not flag_pic.
+ * config/i386/i386.c (ix86_stack_protect_fail): New function.
+ (TARGET_STACK_PROTECT_FAIL): Define.
+ * config/i386/i386.md (stack_protect_si): Change CLOBBER into
+ SET to zero.
+ (stack_protect_di): Likewise. Use %k2 instead of %2 to avoid
+ invalid instruction xorl %rax, %rax.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
+ * cfgexpand.c: Include params.h.
+ (has_protected_decls, has_short_buffer): New.
+ (expand_stack_vars): Take a predicate to determine what to expand.
+ (defer_stack_allocation): True when flag_stack_protect on.
+ (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
+ (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
+ (stack_protect_classify_type, stack_protect_decl_phase): New.
+ (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
+ (add_stack_protection_conflicts, create_stack_guard): New.
+ (expand_used_vars): Add stack protection logic.
+ (tree_expand_cfg): Likewise.
+ * common.opt (Wstack-protector): New.
+ (fstack-protector, fstack-protector-all): New.
+ * function.c: Include predict.h.
+ (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
+ wants to copy the parameter into the stack frame.
+ (stack_protect_prologue, stack_protect_epilogue): New.
+ (expand_function_end): Call stack_protect_epilogue. Do
+ sjlj_emit_function_exit_after after naked_return_label.
+ * function.h (struct function): Add stack_protect_guard.
+ * params.def (PARAM_SSP_BUFFER_SIZE): New.
+ * toplev.c (process_options): Disable flag_stack_protect and/or
+ warn_stack_protect based on FRAME_GROWS_DOWNWARD.
+ * tree.h (stack_protect_prologue): Declare.
+
+ * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
+ (TARGET_STACK_PROTECT_FAIL): New.
+ (TARGET_INITIALIZER): Add them.
+ * target.h (struct gcc_target): Add stack_protect_guard and
+ stack_protect_fail.
+ * targhooks.c: Include ggc.h, gty header.
+ (stack_chk_guard_decl, default_stack_protect_guard): New.
+ (stack_chk_fail_decl, default_external_stack_protect_fail): New.
+ (default_hidden_stack_protect_fail): New.
+ * targhooks.h (default_stack_protect_guard): Declare.
+ (default_external_stack_protect_fail): Declare.
+ (default_hidden_stack_protect_fail): Declare.
+ * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
+ * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
+ (trap): Use ud2.
+ (conditional_trap, conditional_trap_1): Remove.
+ (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
+ (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
+ * doc/md.texi (stack_protect_set, stack_protect_test): New.
+ * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
+ (TARGET_STACK_PROTECT_FAIL): New.
+
+ * libgcc-std.ver (GCC_4.1.0): New.
+ * libgcc.h (__stack_chk_guard): Declare.
+ (__stack_chk_fail, __stack_chk_fail_local): Declare.
+ * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
+ * mklibgcc.in (lib2funcs): Add them.
+
+2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR c/21911
+ * c-common.c (check_function_sentinel): Pass in named argument
+ list, skip over named arguments before looking for a sentinel.
+ (check_function_arguments): Pass in named argument list.
+ * c-common.h (check_function_arguments): Likewise.
+ * c-typeck.c (build_function_call): Likewise.
+
+2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * genautomata.c (decl_mode_check_failed,
+ regexp_mode_check_failed): Add noreturn attribute.
+
+2005-06-26 Kazu Hirata <kazu@codesourcery.com>
+
+ * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
+ * doc/invoke.texi: Fix typos.
+
+ * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
+ convert.c, lambda-code.c, predict.c, tree-cfg.c,
+ tree-complex.c, tree-data-ref.c, tree-if-conv.c,
+ tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
+ tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
+ tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
+ tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
+ tree.c: Use fold_buildN instead of fold (buildN (...)).
+
+2005-06-26 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/install.texi (Specific): Do not specify the concrete
+ versions of GCC provided by Cygwin. Simplify the part on
+ building on Cygwin.
+
+2005-06-26 Kazu Hirata <kazu@codesourcery.com>
+
+ * config/arc/arc-protos.c: Remove the prototype for
+ arc_finalize_pic.
+ * config/arc/arc.c (arc_finalize_pic): Remove.
+ * config/arc/arc.h (FINALIZE_PIC): Likewise.
+ * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
+ * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
+
+2005-06-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/17965
+ * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
+ instead of alloca for really big argument sizes.
+
+ PR middle-end/22028
+ * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
+ earlier in the function.
+
+ * regrename.c (copy_value): Don't replace fixed or global
+ regs with older regs.
+
+ * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
+ * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
+ instead of preprocessor conditionals.
+ (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
+ * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
+ depending on if it was or was not defined previously.
+ * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
+ definition of FRAME_GROWS_DOWNWARD means frame grows downward.
+ * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0. Update
+ comment.
+ * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
+ * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1. Update
+ comment.
+ * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
+ * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
+ * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
+ * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
+
+2005-06-26 Kazu Hirata <kazu@codesourcery.com>
+
+ PR tree-optimization/22026
+ * tree-vrp.c (extract_range_from_binary_expr): Drop to
+ VR_VARYING if a binary expression involving VR_ANTI_RANGE is
+ PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
+
+2005-06-26 Kazu Hirata <kazu@codesourcery.com>
+
+ * Makefile.in (OBJS-common): Remove duplicate object file
+ names.
+
+2005-06-25 Jan Hubicka <jh@suse.cz>
+
+ * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
+ * cfg.c (update_bb_profile_for_threading): Fix rescaling.
+
+ * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
+ when not neecesary
+ (rest_of_compilation): Fix conditional on branch prob pass.
+ * predict.c (tree_estimate_probability): Enable strip_builtin_expect
+ when not loop optimizing.
+
+2005-06-25 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
+ New patterns.
+ (movbi): Add alternative to set CC to zero.
+ (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
+ compare_ltu): Now named patterns.
+
+2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
+
+ * all files: Update FSF address in copyright headers.
+
+2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gengtype.c: Update FSF address in copyright header.
+ (create_file): Update FSF in outputed copyright header.
+
+2005-06-24 Kazu Hirata <kazu@codesourcery.com>
+
+ * cfglayout.c (block_locators_locs, line_locators_locs,
+ line_locators_lines, file_locators_locs): Change the type to
+ VEC(int,heap)*.
+ (insn_locators_initialize, change_scope, insn_scope,
+ locator_line, insn_line, locator_file): Use VEC instead of
+ VARRAY.
+
+2005-06-24 Jason Merrill <jason@redhat.com>
+
+ * tree-nrv.c (tree_nrv): Fix to check assignments to the
+ RESULT_DECL rather than just RETURN_EXPRs.
+ (finalize_nrv_r): Adjust.
+
+2005-06-24 Jan Hubicka <jh@suse.cz>
+
+ * tree-optimize.c (init_tree_optimization_passes): Fix flags of
+ all_passes and all_ipa_passes.
+
+ * c-common.c: Include cgraph.h
+ (handle_externally_visible_attribute): New function.
+ (c_common_att): Add "externally_visible" attribute.
+ * cgraph.c (decide_is_variable_needed): Obey externally
+ visible flag.
+ (cgraph_varpool_finalize_decl): Avoid redundant checking.
+ * cgraph.h (struct cgraph_node): New flag externally_visible.
+ (decide_is_function_needed): Obey externally visible flag.
+ (cgraph_finalize_function): Avoid redundant checks.
+ (cgraph_function_and_variable_visibility): Bring symbols local
+ when asked for.
+ * common.opt (fwhole-program): New flag.
+
+ * doc/invoke.texi (-fwhole-program): Document.
+
+2005-06-24 Mark Mitchell <mark@codesourcery.com>
+
+ PR 22171
+ * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
+ before use.
+
+2005-06-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR 22000
+ * tree-ssa-operands.c (get_expr_operands): Check the volatility of
+ the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
+
+2005-06-24 Jan Hubicka <jh@suse.cz>
+
+ * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
+
+2005-06-23 Jeff Law <law@redhat.com>
+
+ * tree-optimize.c (init_tree_optimization_passes): Move
+ copy prop pass to run just before VRP.
+ * tree-vrp.c (remove_range_assertions): Remove copies created
+ by ASSERT_EXPR removal.
+
+2005-06-23 Kazu Hirata <kazu@codesourcery.com>
+
+ PR tree-optimization/22117
+ * tree-vrp.c (extract_range_from_binary_expr): Compute a
+ correct range when adding two pointers.
+
+2005-06-23 Jason Merrill <jason@redhat.com>
+
+ PR c++/19317
+ Leave the return slot target in the MODIFY_EXPR rather than making
+ it an argument, but only use it if the CALL_EXPR has a flag set.
+ * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
+ CALL_EXPR_RETURN_SLOT_OPT.
+ * calls.c (expand_call): Adjust.
+ * tree-inline.c (expand_call_inline): Adjust.
+ * tree-pretty-print.c (dump_generic_node): Adjust.
+
+ And set the flag as appropriate.
+ * gimplify.c (gimplify_modify_expr_rhs): Set
+ CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
+ * tree-nrv.c (execute_return_slot_opt): Set
+ CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
+ * tree-pass.h: Declare pass_return_slot.
+ * tree-optimize.c (init_tree_optimization_passes): Add it.
+
+2005-06-23 David Edelsohn <edelsohn@gnu.org>
+
+ PR target/21760
+ * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
+ * config/rs6000/rs6000.md: Move atomic instructions to ...
+ * config/rs6000/sync.md: Here.
+ Change sync_compare_and_swap<mode> to define_expand. All stwcx
+ patterns test PPC405_ERRATUM77.
+
+2005-06-23 Jan Hubicka <jh@suse.cz>
+
+ * tree-inline.c (copy_body_r): Remap labels correctly.
+
+2005-06-22 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
+
+2005-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ PR middle-end/20593
+ * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
+ the same as the other cast operands.
+ (output_addressed_constants): Likewise.
+
+2005-06-21 Jeff Law <law@redhat.com>
+
+ * tree-vrp.c (extract_range_from_unary_expr): Handle type
+ conversions better.
+
+2005-06-21 Dorit Nuzman <dorit@il.ibm.com>
+
+ * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
+ (reduc_plus_optab): Removed. Replcaed with...
+ (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
+ * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
+ reduc_uplus_optab instead of reduc_plus_optab.
+ (expand_vec_shift_expr): New function.
+ (init_optabs): Initialize new optabs. Remove initialization of
+ reduc_plus_optab.
+ (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
+ for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
+ * optabs.h (OTI_reduc_plus): Removed. Replaced with...
+ (OTI_reduc_splus, OTI_reduc_uplus): New.
+ (reduc_plus_optab): Removed. Replcaed with...
+ (reduc_splus_optab, reduc_uplus_optab): New optabs.
+ (vec_shl_optab, vec_shr_optab): New optabs.
+ (expand_vec_shift_expr): New function declaration.
+
+ * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
+ * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
+ * expr.c (expand_expr_real_1): Handle new tree-codes.
+ * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
+ * tree-vect-generic.c (expand_vector_operations_1): Add assert.
+
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
+ alternatives for generating reduction epilog code.
+ (vectorizable_reduction): Don't fail of direct reduction support is
+ not available.
+ (vectorizable_target_reduction_pattern): Likewise.
+
+ * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
+ reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
+ reduc_plus_v4si, reduc_plus_v4sf): Removed.
+ (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
+ reduc_splus_<mode>, reduc_uplus_v16qi): New.
+
+2005-06-20 Daniel Berlin <dberlin@dberlin.org>
+
+ * c-typeck.c (build_function_call): Set fundecl = function again.
+ * tree-ssa-alias.c (find_used_portions): Address taking causes the
+ entire variable to be used.
+ * tree-ssa-structalias.c (do_structure_copy): Fix handling of
+ unknown size variables, and structure copies from addressof
+ operations. Simplify how we do *a = *b type structure copies.
+ (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
+ way. READONLY's address is not taken by default.
+ INTEGER dereference should point to anything.
+ (create_variable_info_for): It's okay for the first field to not start
+ at 0.
+
+2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
+
+2005-06-20 Roger Sayle <roger@eyesopen.com>
+2005-06-20 Fariborz Jahanian <fjahanian@apple.com>
+
+ * combine.c (simplify_set): Simplify setting of CC register
+ by removing redundant compare with 0 on RHS.
+
+2005-06-20 Jan Beulich <jbeulich@novell.com>
+
+ * config/i386/netware-libgcc.def: Update copyright.
+ * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
+ __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
+ * config/i386/netware.c (gen_stdcall_decoration,
+ gen_fastd_decoration): Merge into ...
+ (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
+ WinNT's changes.
+ (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
+ (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
+ * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
+ libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
+ * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
+ use of NX_MUTEX_RECURSIVE.
+
+2005-06-19 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (swap_tree_comparison): Add support for unordered
+ floating point comparisons.
+ * tree-vrp.c (opposite_comparison): Delete.
+ (extract_range_from_assert): Replace calls to opposite_comparison
+ with calls to swap_tree_comparison.
+ (register_edge_assert_for): Likewise.
+ (vrp_evaluate_conditional): Likewise.
+
+2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * integrate.c (allocate_initial_values): Update the references
+ to global_live_at_start and global_live_at_end.
+
+2005-06-20 Jan Hubicka <jh@suse.cz>
+
+ * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
+ * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
+ when asked for.
+ * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
+ unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
+ Update call of duplicate_loop_to_header_edge.
+ (apply_opt_in_copies): Clear out aux pointers.
+
+2005-06-19 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
+ (ix86_mangle_fundamental_type): New.
+ * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
+ (ia64_mangle_fundamental_type): New.
+
+2005-06-19 Roger Sayle <roger@eyesopen.com>
+
+ * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
+ INTEGER_CST nodes.
+ * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
+ CONSTANT_CLASS_P nodes.
+
+2005-06-19 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
+ the shift is always required.
+
+2005-06-19 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64-modes.def (V4SF): Add.
+ * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
+ * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
+ integer mode changes in fp regs.
+ * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
+ * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
+ (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
+ (vcondv2sf): Use gen_fpack
+ (fpack): Remove * from name.
+ (fswap, fmix_l, fmix_r, fmix_lr): New.
+ (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
+ (vec_extractv2sf_1, vec_extractv2sf): New.
+
+2005-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * combine.c (make_compound_operation): Use simplify_subreg. Delete
+ a optimization already done by simplify_subreg.
+
+2005-06-19 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * loop.c (scan_loop): Do not consider insns setting the frame
+ pointer to be candidates for hoisting.
+
+2005-06-19 Uros Bizjak <uros@kss-loka.si>
+
+ * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
+ Remove instruction patterns.
+ (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
+ (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
+ Set "unit" attribute to "i387".
+ (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
+ (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
+ for alternative 0.
+ (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
+ (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
+ attribute to "i387" when "type" attribute equals "multi".
+ (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
+ (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
+ (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
+ (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
+ attribute to "i387" when "type" attribute equals "multi".
+ * config/i386/mmx.md (*mov<mode>_internal_rex64)
+ (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
+ Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
+ (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
+ * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
+ (sse_cvttpd2pi): Set "unit" attribute to "mmx".
+ (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
+ to "mmx" for "y" operand 1.
+
+2005-06-19 Uros Bizjak <uros@kss-loka.si>
+
+ * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
+ for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
+ and SSE registers to determine if regno is valid.
+ (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
+ TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
+
+2005-06-18 Richard Henderson <rth@redhat.com>
+
+ * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
+ for control-altering statements; set it again for returns.
+ (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
+ not MODIFY_EXPR.
+
+2005-06-18 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/22116
+ * tree-ssa-pre.c (create_expression_by_pieces): Set
+ DECL_COMPLEX_GIMPLE_REG_P.
+ (insert_into_preds_of_block): Likewise.
+
+2005-06-18 Steven Bosscher <stevenb@suse.de>
+
+ * Makefile.in: Fix tree-cfgcleanup.c dependencies.
+
+2005-06-18 Richard Henderson <rth@redhat.com>
+
+ * expr.c (store_constructor): Use store of 0 to indicate value
+ death instead of a clobber.
+
+ * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
+ * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
+ * config/i386/sse.md (reduc_plus_v4sf): New.
+ (reduc_smax_v4sf, reduc_smin_v4sf): New.
+
+2005-06-18 James A. Morrison <phython@gcc.gnu.org>
+
+ * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
+ nonnegative values of X.
+
+2005-06-18 Uros Bizjak <uros@kss-loka.si>
+
+ * doc/md.texi (Standard Names): Change insn pattern name
+ from truncM2 to btruncM2 for 'trunc' built-in description.
+ Add rintM2 insn pattern description.
+
+2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * c-decl.c (locate_old_decl): Add format attribute.
+ (implicit_decl_warning): Likewise.
+
+ * diagnostic.h (verbatim): Move ...
+ * toplev.h (verbatim): ... here. Add ATTRIBUTE_GCC_DIAG.
+ * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
+
+2005-06-18 Roger Sayle <roger@eyesopen.com>
+
+ PR target/22083
+ * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
+
+2005-06-18 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
+ tree-codes.
+ * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
+ OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
+ (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
+ reduc_plus_optab): New optabs for reduction.
+ * expr.c (expand_expr_real_1): Handle new tree-codes.
+ * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
+ * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
+ new tree-codes.
+ * optabs.c (optab_for_tree_code): Handle new tree-codes.
+ (init_optabs): Initialize new optabs.
+ * genopinit.c (optabs): Define handlers for new optabs.
+
+ * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
+ case of a phi that is marked as relevant. Call vectorizable_reduction.
+ (vect_mark_relevant): Phis may be marked as relevant.
+ (vect_mark_stmts_to_be_vectorized): The use corresponding to the
+ reduction variable in a reduction stmt does not mark its defining phi
+ as relevant. Update documentation accordingly.
+ (vect_can_advance_ivs_p): Skip reduction phis.
+ * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
+ additional argument. Handle reduction.
+ (vect_create_destination_var): Update call to vect_get_new_vect_var.
+ Handle non-vector argument.
+ (get_initial_def_for_reduction): New function.
+ (vect_create_epilog_for_reduction): New function.
+ (vectorizable_reduction): New function.
+ (vect_get_new_vect_var): Handle new vect_var_kind.
+ (vectorizable_assignment, vectorizable_operation, vectorizable_store,
+ vectorizable_condition): Update call to vect_get_new_vect_var.
+ (vect_transform_stmt): Call vectorizable_reduction.
+ (vect_update_ivs_after_vectorizer): Skip reduction phis.
+ (vect_transform_loop): Skip if stmt is both not relevant and not live.
+ * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
+ (vect_is_simple_reduction): Was empty - added implementation.
+ * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
+ (reduc_vec_info_type): New enum vect_def_type value.
+ * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
+ reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
+ reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
+
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
+ ENABLE_CHECKING around gcc_assert.
+ * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
+ (vect_do_peeling_for_alignment, vect_transform_loop,
+ vect_get_vec_def_for_operand): Likewise.
+
+2005-06-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
+ big-endian unnamed __float80 value.
+
+2005-06-18 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/22103
+ * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
+ destinations.
+
+2005-06-17 Richard Henderson <rth@redhat.com>
+
+ * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
+ initialize_original_copy_tables and free_original_copy_tables.
+ (vect_do_peeling_for_alignment): Likewise.
+
+2005-06-17 Pat Haugen <pthaugen@us.ibm.com>
+
+ * bb-reorder.c (find_traces_1_round): Use succ block frequency
+ instead of edge frequency for calls to better_edge_p.
+
+2005-06-17 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/22105
+ * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
+
+2005-06-17 Steve Ellcey <sje@cup.hp.com>
+
+ PR target/19889
+ * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
+ (PROFILE_HOOK): New.
+ (PROFILE_BEFORE_PROLOGUE): Undef.
+ (NO_PROFILE_COUNTERS): New.
+ * config/ia64/ia64-protos.h (ia64_profile_hook): New.
+ * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
+ (gen_mcount_func_rtx): New.
+ (ia64_profile_hook): New.
+ * config/ia64/ia64.md (ip_value): New.
+
+2005-06-17 Devang Patel <dpatel@apple.com>
+
+ * config/rs6000/predicates.md (s5bit_cint_operand,
+ u5bit_cint_operand): New.
+ * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
+ altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
+ * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
+ 5 bit constant check.
+
+2005-06-17 Richard Henderson <rth@redhat.com>
+
+ * local-alloc.c (update_equiv_regs): Update reg_equiv_init
+ properly when moving an initialization insn.
+
+2005-06-17 Paolo Bonzini <bonzini@gnu.org>
+
+ * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
+ passed variable.
+ * configure.ac: Regenerate.
+
+2005-06-17 Jan Hubicka <jh@suse.cz>
+
+ * tree-optimize.c (execute_ipa_pass_list): New.
+ (ipa_passes): Use it.
+
+2005-06-16 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/22022
+ * tree-complex.c (update_phi_components): Avoid no-op moves.
+
+2005-06-16 Joseph S. Myers <joseph@codesourcery.com>
+
+ * Makefile.in (cc1-checksum.c): Use
+ build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
+
+2005-06-16 Geoffrey Keating <geoffk@apple.com>
+
+ * gengtype.c (adjust_field_rtx_def): Don't add a skip to
+ basic_block types.
+
+ * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
+ SHLIB_MINOR.
+ (SHLIB_REVISION): Delete.
+ (SHLIB_VERSTRING): Update to compensate.
+ (SHLIB_SONAME): Just use one '.' in the name.
+
+2005-06-16 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR tree-optimization/22018
+ * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
+
+2005-06-16 Richard Henderson <rth@redhat.com>
+
+ PR tree-opt/22035
+ * builtins.c (fold_builtin_complex_mul): Remove.
+ (fold_builtin_complex_div): Remove.
+ (fold_builtin_1): Don't call them.
+ * fold-const.c (fold_complex_add, fold_complex_mult_parts,
+ fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
+ (fold_binary): Don't call them. Don't expand complex comparisons to
+ elementary comparisons.
+ * tree-complex.c (init_dont_simulate_again): Enhance search for
+ stmts that require decomposition.
+ (complex_visit_stmt): Handle RETURN_EXPR properly.
+ (create_components): Handle no referenced variables properly.
+ * tree.h (fold_complex_mult_parts): Remove.
+ (fold_complex_div_parts): Remove.
+
+2005-06-16 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * doc/extend.texi: Document sseregparm target attribute.
+ Clarify fastcall and regparm documentation.
+ * config/i386/i386.h: Adjust float_in_sse documentation.
+ * config/i386/i386.c: Add new target attribute sseregparm.
+ (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
+ Merge into ...
+ (ix86_handle_cconv_attribute): ... here. Also handle
+ sseregparm attribute.
+ (ix86_comp_type_attributes): Compare sseregparm attributes.
+ (ix86_function_sseregparm): New function, split out from ...
+ (init_cumulative_args): ... here. Use to decide use
+ of SSE registers and error in case of missing support.
+ (ix86_value_regno): Likewise.
+ (function_arg_advance): Do not bail out for DFmode if we need
+ to pass doubles in registers.
+ (function_arg): Likewise.
+
+2005-06-16 Paolo Bonzini <bonzini@gnu.org>
+ Daniel Jacobowitz <dan@codesourcery.com>
+ Alan Modra <amodra.bigpond.net.au>
+
+ * configure.ac (gcc_version): Set near the beginning.
+ (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
+ found in the tree. Use gcc_AC_PROG to find the tools in the system.
+ (objdump): Do not look for it.
+ * Makefile.in (NM_FOR_TARGET): Point to ./nm
+ (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
+ ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
+ (as, ld, nm): New rules.
+ (libgcc.mk): Depend on them.
+ * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
+ gcc_AC_BUILD_EXEEXT): New.
+ (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
+ * configure: Regenerate.
+
+2005-06-16 Jan Hubicka <jh@suse.cz>
+
+ * basic-block.h (rtl_bb_info): Break out head_, end_,
+ global_live_at_start, global_live_at_end from ...
+ (basic_block_def): ... here; update all references
+ (BB_RTL): New flag.
+ (init_rtl_bb_info): Declare.
+ * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
+ flag.
+ * cfgrtl.c: Include ggc.h
+ (create_basic_block_structure): Init bb info.
+ (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
+ (init_rtl_bb_info): New function.
+ (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
+ * cfghooks.c (merge_block): Do not copy global_live_at_end here.
+ * cfg.c (clear_bb_flags): Skip BB_RTL flag.
+ (dump_flow_info): Gueard global_live_* dumping.
+
+ * Makefile.in (cfg.o): Add new dependencies.
+ * basic-block.h (reorder_block_def): Kill
+ original/copy/duplicated/copy_number fields.
+ (BB_DUPLICATED): New flag.
+ (initialize_original_copy_tables, free_original_copy_tables,
+ set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
+ * cfg.c: Include hashtab.h and alloc-pool.h
+ (bb_original, bb_copy, original_copy_bb_pool): New static vars.
+ (htab_bb_copy_original_entry): New struct.
+ (bb_copy_original_hash, bb_copy_original_eq): New static functions.
+ (initialize_original_copy_tables, free_original_copy_tables,
+ set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
+ global functions.
+ * cfghooks.c (duplicate_block): Update original/copy handling.
+ * cfglayout.c (fixup_reorder_chain): Likewise.
+ (cfg_layout_initialize): Initialize orignal_copy tables.
+ (cfg_layout_finalize): FInalize original_copy tables.
+ (can_copy_bbs_p): Use BB_DUPLICATED flag.
+ (copy_bbs): Likewise.
+ * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
+ (duplicate_loop_to_header_edge): Likewise; update handling of
+ copy_number.
+ (loop_version): Likewise.
+ * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
+ * except.c (expand_resx_expr): Check that reg->resume is not set.
+ * loop-unroll.c (unroll_loop_constant_iterations,
+ unroll_loop_runtime_iterations, apply_opt_in_copies): Update
+ copy/original handling.
+ * loop-unwitch.c (unswitch_loop): Likewise.
+ * tree-cfg.c (create_bb): Do not initialize RBI.
+ (disband_implicit_edges): Do not kill RBI.
+ (add_phi_args_after_copy_bb): Use new original/copy mapping.
+ (add_phi_args_after_copy): Use BB_DUPLICATED flag.
+ (tree_duplicate_sese_region): Update original/copy handling.
+ * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
+ * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
+ * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
+
+2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/21923
+ * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
+ integer types whos ranges are different are not useless.
+
+2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR tree-opt/22024
+ * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
+ rank.
+
+2005-06-15 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-ssa-structalias.c (dump_solution_for_var): Reformat
+ output.
+ (dump_sa_points_to_info): Make extern.
+ (debug_sa_points_to_info): New.
+ * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
+ TREE_ALIAS_COMMON.
+ (dump_sa_points_to_info): Declare.
+ (debug_sa_points_to_info): Declare.
+
+2005-06-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ * c-tree.h (default_function_array_conversion): Declare.
+ * c-typeck.c (default_function_array_conversion): Export. Correct
+ comment.
+ (default_conversion): Do not call
+ default_function_array_conversion. Do not allow FUNCTION_TYPE.
+ (build_function_call): Call default_function_array_conversion on
+ the function.
+ (convert_arguments): Do not call it on the function arguments.
+ (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
+ TRUTH_NOT_EXPR. Call default_function_array_conversion for taking
+ address of ARRAY_REF.
+ (build_compound_expr): Do not call
+ default_function_array_conversion.
+ (build_c_cast): Do not call default_function_array_conversion.
+ (convert_for_assignment): Do not call default_conversion.
+ (digest_init): Call default_function_array_conversion to convert
+ string constants and compound literals to pointers, but not
+ otherwise.
+ (output_init_element): Likewise.
+ (build_asm_expr): Do not call default_function_array_conversion.
+ (c_process_expr_stmt): Likewise.
+ (c_objc_common_truthvalue_conversion): Likewise. Do not allow
+ FUNCTION_TYPE.
+ * c-parser.c (c_parser_expression_conv): New.
+ (c_parser_asm_operands, c_parser_expr_list): Add convert_p
+ argument. All callers changed. Call
+ default_function_array_conversion if convert_p.
+ (c_parser_initializer, c_parser_initval): Call
+ default_function_array_conversion except for string constants and
+ compound literals.
+ (c_parser_initelt): Call default_function_array_conversion for
+ ObjC expression received.
+ (c_parser_statement_after_labels): Call c_parser_expression_conv
+ for return and expression statements.
+ (c_parser_paren_condition, c_parser_for_statement,
+ c_parser_conditional_expression): Call c_parser_expression_conv.
+ (c_parser_expr_no_commas, c_parser_conditional_expression,
+ c_parser_binary_expression, c_parser_cast_expression,
+ c_parser_unary_expression): Call
+ default_function_array_conversion.
+
+2005-06-15 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
+ when the result overflows.
+
+2005-06-15 David Ung <davidu@mips.com>
+
+ * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
+ 24k and 24kx.
+
+2005-06-15 Richard Sandiford <richard@codesourcery.com>
+
+ * doc/invoke.texi (-mips16): Fix typo.
+
+2005-06-15 David Ung <davidu@mips.com>
+
+ * config/mips/mips.h (GENERATE_MIPS16E): New definition.
+ * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
+ Changed expand condition to exclude generating of "and" if
+ GENERATE_MIPS16E is true.
+ (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
+ matching mips16e zeb/zeh.
+ (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
+ mips16e seb/seh.
+ (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
+ GENERATE_MIPS16E.
+ * doc/invoke.texi (MIPS Options): Add comment to -mips16
+ indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
+
+2005-06-15 Diego Novillo <dnovillo@redhat.com>
+
+ PR 22018
+ * tree-vrp.c (vrp_int_const_binop): New.
+ (extract_range_from_binary_expr): Call it.
+ Unify handling division and multiplication.
+
+2005-06-15 Aldy Hernandez <aldyh@redhat.com>
+
+ * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
+
+ * c-common.c (same_scalar_type_ignoring_signedness): New.
+
+ * c-typeck.c (build_binary_op): Check compatability of vector
+ types. Move error report after switch.
+ Do not clobber code[01] on *_DIV_EXPR case.
+
+ * testsuite/gcc.dg/simd-1.c: Update error messages.
+ * testsuite/gcc.dg/simd-1b.c: Re-enable tests. Update error
+ messages.
+ * testsuite/gcc.dg/simd-2.c: Update error messages.
+ * testsuite/gcc.dg/simd-4.c: New.
+
+2005-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
+ * local-alloc.c: Include "ggc.h" and "reload.h".
+ (struct equivalence): New member is_arg_equivalence.
+ (local_alloc): Always call update_equiv_regs.
+ (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
+ Detect equivalences made by stores to memory in a second pass.
+ Return early if not optimizing.
+ Initialize reg_equiv_init for all equivalences; treat equivalences for
+ REG_EQUIV notes existing before this pass specially.
+ (no_equiv): Don't clear reg_equiv_init or remove notes if the
+ is_arg_equivalence field is set.
+ * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
+ * reload1.c (reg_equiv_init): No longer static.
+ (reg_equiv_init_size): New variable.
+ (reload): Don't allocate reg_equiv_init; don't free it when done but
+ clear it.
+ Restructure equivalence set up code not to set reg_equiv_init, but to
+ clear it when we can't use an equivalence.
+ Undo change disabling equivalences for MEM_READONLY_P memrefs.
+ Dump equivalencing insns to dump_file.
+
2005-06-14 Richard Sandiford <richard@codesourcery.com>
* config/mips/mips.c (machine_function): Add varargs_size field.
* config/rs6000/predicates.md (scc_operand): Delete.
* config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
-2005-06-13 Jakub Jelinek <jakub@redhat.com>
-
- * trans-expr.c (gfc_conv_function_call): Return int instead of
- void. Use a local variable for has_alternate_specifier and
- return it. Avoid modification of function type's return value
- in place, since it may be shared.
- * trans.h (has_alternate_specifier): Remove.
- (gfc_conv_function_call): Change return type.
- * trans-stmt.c (has_alternate_specifier): Remove.
- (gfc_trans_call): Add a local has_alternate_specifier variable,
- set it from gfc_conv_function_call return value.
-
2005-06-13 Zdenek Dvorak <dvorakz@suse.cz>
PR middle-end/21985
2005-06-08 Dale Johannesen <dalej@apple.com>
- * config/darwin.c (darwin_binds_local_p): New.
- * config/darwin-protos.h (darwin_binds_local_p): Declare it.
- * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
- * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
- (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
+ * config/darwin.c (darwin_binds_local_p): New.
+ * config/darwin-protos.h (darwin_binds_local_p): Declare it.
+ * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
+ * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
+ (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
2005-06-08 Aldy Hernandez <aldyh@redhat.com>
- * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
- rs6000_isel, rs6000_spe, rs6000_alignment_string,
- rs6000_sched_restricted_insns_priority_str,
- rs6000_sched_restricted_insns_priority, rs6000_abi_string.
+ * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
+ rs6000_isel, rs6000_spe, rs6000_alignment_string,
+ rs6000_sched_restricted_insns_priority_str,
+ rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
2005-06-08 Richard Henderson <rth@redhat.com>
PR target/21721
- * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
+ * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2005-05-17 Paolo Bonzini <bonzini@gnu.org>
- * tree-ssa-math-opts.c: New file.
-
-2005-05-17 Paolo Bonzini <bonzini@gnu.org>
-
* Makefile.in: Add tree-ssa-math-opts.c.
* expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
* fold-const.c (distribute_real_division): New.